CALLANYTHING
DOCS · DEPLOYABILITY · EN

Deployability profiles
management and safety boundaries

This page turns CALL ANYTHING deployment into six operator-readable paths: Local Agent Loop, All-in-One Demo, Selfhost Platform, Recovery & Evidence, Public Stack, and Management Console. The ecosystem PRD goal is daily-deployable: the same clarity people expect from projects like Sub2API or CLIProxyAPI, with one obvious quick-start path before you start, inspect, open /console/, or expose anything publicly.

All-in-OneSelfhostRecoveryPublic StackConsoleSafety

Local Agent Loop · ready now

Prove one Hotline call on your machine first

Use this path for local development and first proof. dev:local:plan, up, status, logs, and down cover the managed local loop boot order, startup steps, relay/supervisor state, log-file metadata, and stop steps, with --json for dashboards or scripts. The core acceptance commands are dev:doctor, dev:doctor -- --json, test:agent-e2e, test:mcp-golden-four, and mcp:golden-four; they check supervisor health, caller-skill, MCP adapter wiring, the bundled workspace-summary Hotline, and signed result recovery. The command catalog labels dev:doctor as runtime_diagnostic and test:agent-e2e plus mcp:golden-four as runtime_acceptance, with no unmapped fallback. dev:doctor JSON emits prerequisites, runtime health, caller-skill checks, blockers, and next commands without raw logs or secret values.

Selfhost Platform · ready now

Run Platform as a private control plane

Use this path when a team wants private routing, catalog, token, and console management. selfhost:profiles first lists built-in profiles, deploy directories, services, and host ports, and --json makes the same profile selector data available to consoles, dashboards, or scripts; selfhost:quickstart gives the copy-paste command sequence for the selected profile, and --json lets management surfaces render those steps; selfhost:plan gives the selected profile purpose, deploy paths, services, URLs, safety checks, and notes, and --json lets generated docs, dashboards, or management scripts consume that map; selfhost:readiness -- --all gives a read-only readiness matrix for every built-in profile, while selfhost:readiness combines selected-profile files, .env, secret hygiene, public-stack origin/routes, URLs, host ports, and next commands into a deployment overview, and both forms can use corepack pnpm --silent run ... --json for clean JSON in CI, dashboards, or management scripts; selfhost:doctor then diagnoses local tools, profile files, .env, and secret/public-origin hygiene, and --json lets diagnostic panels show blockers; selfhost:init creates or hardens the .env with strong generated secrets, while corepack pnpm --silent run selfhost:init -- --json emits created/hardened metadata, secret hygiene, warnings, and next commands without printing secret values or URL prose; selfhost:summary gives a read-only one-screen overview of deploy paths, URLs, host ports, secret status, and next commands, and --json lets dashboards render that overview card; selfhost:urls shows URLs before startup, and --json lets dashboards or deployment scripts consume the URL inventory; selfhost:ports shows host ports before startup, and --json lets dashboards or deployment scripts consume the declared port inventory; selfhost:ops-report writes a non-secret handoff report with URLs, host ports, and secret status, and --json lets dashboards or management scripts consume the same handoff data; selfhost:preflight checks compose config, routes, and secret hygiene before services start, and --json lets deployment controllers consume the same gate; selfhost:status summarizes Docker compose service state, secret hygiene, and health endpoints after startup, and --json lets dashboards or management scripts consume runtime blockers; selfhost:config validates Docker compose config, and --json gives CI, dashboards, or management scripts pass/fail, blockers, and stderr metadata while omitting compose stdout that may contain environment values; selfhost:security-review is the pre-exposure review, and --json lets dashboards or deployment controllers consume blockers and the route contract; selfhost:audit-export saves audit evidence; selfhost:backup-plan emits a non-executing backup plan, and --json lets recovery rehearsal scripts consume the backup directory, steps, and next validation command; selfhost:backup-validate checks backup artifacts, and --json lets recovery rehearsal scripts consume file status and blockers; selfhost:restore-plan explains recovery rehearsal, and --json emits ordered recovery steps without running them; selfhost:rotate-plan emits a non-executing secret rotation checklist, and --json lets operator runbooks render backup-first, dry-run, confirm, restart, and smoke steps; selfhost:rotate --json / --confirm --json emits secret rotation dry-run or confirmed rotation metadata without printing new secret values.

All-in-One Demo · ready now

See the full product shape in one local profile

Use this path when a fresh operator wants caller, responder, relay, and platform together before splitting components. selfhost:quickstart -- --profile all-in-one gives the copy-paste path; selfhost:readiness -- --profile all-in-one, selfhost:init -- --profile all-in-one, selfhost:preflight -- --profile all-in-one, selfhost:up -- --profile all-in-one, selfhost:status -- --profile all-in-one, and selfhost:smoke -- --profile all-in-one form the inspect, env, start, and acceptance loop. The matching --json entry points appear in the deployability:commands all_in_one_demo pipeline / track and inherit the selfhost inherited safety posture without printing secret values into dashboards or handoff reports.

Recovery & Evidence · ready now

Make handoff, audit, backup, and rotation a filterable path

Use this path when an operator needs recovery readiness and evidence before launch or handoff. deployability:overview, deployability:dashboard, deployability:action-plan, deployability:handoff, and deployability:commands now expose recovery_evidence as a ready_now pipeline; corepack pnpm run deployability:commands -- --pipeline recovery_evidence filters the catalog to selfhost:ops-report, selfhost:audit-export, selfhost:backup-plan, selfhost:backup-validate, selfhost:restore-plan, selfhost:rotate-plan, and selfhost:rotate. The ops report writes a non-secret Markdown handoff, audit export reports export metadata, and backup / restore / rotate plans rehearse before execution; the safety matrix labels the commands as writes_report, exports_evidence, read_only, or writes_env so dashboards can show risk posture before services start.

Public Stack · ready now

Expose edge routes only after safety checks

Use this path when an operator is preparing public gateway, relay, platform-api, and console exposure. The public-stack profile lists the /healthz, /platform/healthz, /relay/healthz, /gateway/healthz, and /console/ route contract and fails when localhost public origins or placeholder secrets are still present.

Management Console · ready now

Move status, logs, approval, and onboarding into a surface

The console direction is to reduce terminal-only debugging. deployability:console / corepack pnpm --silent run deployability:console -- --json emits console_management_index, a read-only management index for runtime_status, settings_approval_policy, logs_guidance, billing_readiness, public_stack_console, and gateway_session surfaces. Runtime, Preferences, and Help explain profiles, adapter health, approval policy, logs, and billing readiness. Platform Console now also includes an admin-only Billing page. Public Stack exposes verifiable Operator Onboarding through /console/, the gateway session flow, published-image:plan --json, published-image:smoke, published-image:smoke -- --dry-run --json, published-image:smoke -- --image-tag <candidate-tag>, and operator:onboarding:check; operator:onboarding:plan --json emits the first-use phases, while operator:onboarding:check --json emits check results and blockers for CI, dashboards, or management scripts.

Overview command map

corepack pnpm run deployability:overview
corepack pnpm --silent run deployability:overview -- --json
corepack pnpm run deployability:quickstart
corepack pnpm --silent run deployability:quickstart -- --json
corepack pnpm run deployability:safety
corepack pnpm --silent run deployability:safety -- --json
corepack pnpm run deployability:explain
corepack pnpm --silent run deployability:explain -- --json
corepack pnpm run deployability:production
corepack pnpm --silent run deployability:production -- --json
corepack pnpm run deployability:hardening-plan
corepack pnpm --silent run deployability:hardening-plan -- --json
corepack pnpm run deployability:readiness
corepack pnpm --silent run deployability:readiness -- --json
corepack pnpm run deployability:roadmap
corepack pnpm --silent run deployability:roadmap -- --json
corepack pnpm run deployability:status
corepack pnpm --silent run deployability:status -- --json
corepack pnpm run deployability:gates
corepack pnpm --silent run deployability:gates -- --json
corepack pnpm run deployability:exposure
corepack pnpm --silent run deployability:exposure -- --json
corepack pnpm run deployability:release -- --image-tag <candidate-tag>
corepack pnpm --silent run deployability:release -- --image-tag <candidate-tag> --json
corepack pnpm run deployability:operator-checklist -- --profile public-stack --image-tag <candidate-tag>
corepack pnpm --silent run deployability:operator-checklist -- --profile public-stack --image-tag <candidate-tag> --json
corepack pnpm run deployability:doctor
corepack pnpm --silent run deployability:doctor -- --json
corepack pnpm run deployability:dashboard
corepack pnpm --silent run deployability:dashboard -- --json
corepack pnpm run deployability:dashboard -- --profile public-stack
corepack pnpm --silent run deployability:dashboard -- --profile public-stack --json
corepack pnpm run deployability:next
corepack pnpm --silent run deployability:next -- --json
corepack pnpm run deployability:next -- --profile public-stack
corepack pnpm --silent run deployability:next -- --profile public-stack --json
corepack pnpm run deployability:profiles
corepack pnpm --silent run deployability:profiles -- --json
corepack pnpm run deployability:profiles -- --profile public-stack
corepack pnpm --silent run deployability:profiles -- --profile public-stack --json
corepack pnpm run deployability:action-plan
corepack pnpm --silent run deployability:action-plan -- --json
corepack pnpm run deployability:action-plan -- --list-profiles
corepack pnpm --silent run deployability:action-plan -- --list-profiles --json
corepack pnpm run deployability:action-plan -- --profile public-stack
corepack pnpm --silent run deployability:action-plan -- --profile public-stack --json
corepack pnpm run deployability:commands
corepack pnpm --silent run deployability:commands -- --json
corepack pnpm run deployability:runbook
corepack pnpm --silent run deployability:runbook -- --json
corepack pnpm run deployability:menu
corepack pnpm --silent run deployability:menu -- --json
corepack pnpm run deployability:menu -- --profile public-stack
corepack pnpm --silent run deployability:menu -- --profile public-stack --json
corepack pnpm run deployability:runbook -- --profile public-stack
corepack pnpm --silent run deployability:runbook -- --profile public-stack --json
corepack pnpm run deployability:commands -- --profile public-stack
corepack pnpm --silent run deployability:commands -- --profile public-stack --json
corepack pnpm run compat:status
corepack pnpm --silent run compat:status -- --json
corepack pnpm run deployability:handoff
corepack pnpm --silent run deployability:handoff -- --json
corepack pnpm run deployability:handoff -- --profile public-stack
corepack pnpm --silent run deployability:handoff -- --profile public-stack --json
corepack pnpm run test:deployability
corepack pnpm run test:deployability-operations

Local Agent Loop

corepack pnpm run dev:local:plan
corepack pnpm --silent run dev:local:plan -- --json
corepack pnpm run dev:local:up
corepack pnpm --silent run dev:local:up -- --json
corepack pnpm run dev:local:status
corepack pnpm --silent run dev:local:status -- --json
corepack pnpm run dev:local:logs
corepack pnpm --silent run dev:local:logs -- --json
corepack pnpm run dev:local:down
corepack pnpm --silent run dev:local:down -- --json
corepack pnpm run dev:doctor
corepack pnpm --silent run dev:doctor -- --json
corepack pnpm run test:agent-e2e
corepack pnpm run mcp:golden-four

Selfhost preflight

corepack pnpm run selfhost:profiles
corepack pnpm --silent run selfhost:profiles -- --json
corepack pnpm run selfhost:quickstart
corepack pnpm --silent run selfhost:quickstart -- --json
corepack pnpm run selfhost:plan
corepack pnpm --silent run selfhost:plan -- --json
corepack pnpm run selfhost:readiness -- --all
corepack pnpm --silent run selfhost:readiness -- --all --json
corepack pnpm run selfhost:readiness
corepack pnpm --silent run selfhost:readiness -- --json
corepack pnpm run selfhost:doctor
corepack pnpm --silent run selfhost:doctor -- --json
corepack pnpm run selfhost:init
corepack pnpm --silent run selfhost:init -- --json
corepack pnpm run selfhost:summary
corepack pnpm --silent run selfhost:summary -- --json
corepack pnpm run selfhost:urls
corepack pnpm --silent run selfhost:urls -- --json
corepack pnpm run selfhost:ports
corepack pnpm --silent run selfhost:ports -- --json
corepack pnpm run selfhost:preflight
corepack pnpm --silent run selfhost:preflight -- --json
corepack pnpm run selfhost:up
corepack pnpm --silent run selfhost:up -- --json
corepack pnpm run selfhost:status
corepack pnpm --silent run selfhost:status -- --json
corepack pnpm run selfhost:smoke
corepack pnpm --silent run selfhost:smoke -- --json
corepack pnpm run selfhost:logs
corepack pnpm --silent run selfhost:logs -- --json
corepack pnpm run selfhost:down
corepack pnpm --silent run selfhost:down -- --json
corepack pnpm run selfhost:config
corepack pnpm --silent run selfhost:config -- --json

All-in-one demo

corepack pnpm run selfhost:quickstart -- --profile all-in-one
corepack pnpm --silent run selfhost:quickstart -- --profile all-in-one --json
corepack pnpm run selfhost:readiness -- --profile all-in-one
corepack pnpm --silent run selfhost:readiness -- --profile all-in-one --json
corepack pnpm run selfhost:init -- --profile all-in-one
corepack pnpm --silent run selfhost:init -- --profile all-in-one --json
corepack pnpm run selfhost:preflight -- --profile all-in-one
corepack pnpm --silent run selfhost:preflight -- --profile all-in-one --json
corepack pnpm run selfhost:up -- --profile all-in-one
corepack pnpm --silent run selfhost:up -- --profile all-in-one --json
corepack pnpm run selfhost:status -- --profile all-in-one
corepack pnpm --silent run selfhost:status -- --profile all-in-one --json
corepack pnpm run selfhost:smoke -- --profile all-in-one
corepack pnpm --silent run selfhost:smoke -- --profile all-in-one --json

Recovery & evidence

corepack pnpm run deployability:commands -- --pipeline recovery_evidence
corepack pnpm --silent run deployability:commands -- --pipeline recovery_evidence --json
corepack pnpm run selfhost:ops-report
corepack pnpm --silent run selfhost:ops-report -- --json
corepack pnpm run selfhost:audit-export
corepack pnpm --silent run selfhost:audit-export -- --json
corepack pnpm run selfhost:backup-plan
corepack pnpm --silent run selfhost:backup-plan -- --json
corepack pnpm run selfhost:backup-validate -- --backup-dir backups/selfhost/platform/<stamp>
corepack pnpm --silent run selfhost:backup-validate -- --backup-dir backups/selfhost/platform/<stamp> --json
corepack pnpm run selfhost:restore-plan -- --backup-dir backups/selfhost/platform/<stamp>
corepack pnpm --silent run selfhost:restore-plan -- --backup-dir backups/selfhost/platform/<stamp> --json
corepack pnpm run selfhost:rotate-plan
corepack pnpm --silent run selfhost:rotate-plan -- --json
corepack pnpm --silent run selfhost:rotate -- --json

Public stack safety

corepack pnpm run selfhost:quickstart -- --profile public-stack
corepack pnpm --silent run selfhost:quickstart -- --profile public-stack --json
corepack pnpm run selfhost:plan -- --profile public-stack
corepack pnpm --silent run selfhost:plan -- --profile public-stack --json
corepack pnpm run selfhost:readiness -- --profile public-stack
corepack pnpm --silent run selfhost:readiness -- --profile public-stack --json
corepack pnpm run selfhost:doctor -- --profile public-stack
corepack pnpm --silent run selfhost:doctor -- --profile public-stack --json
corepack pnpm run selfhost:init -- --profile public-stack
corepack pnpm --silent run selfhost:init -- --profile public-stack --json
corepack pnpm run selfhost:summary -- --profile public-stack
corepack pnpm --silent run selfhost:summary -- --profile public-stack --json
corepack pnpm run selfhost:urls -- --profile public-stack
corepack pnpm --silent run selfhost:urls -- --profile public-stack --json
corepack pnpm run selfhost:ports -- --profile public-stack
corepack pnpm --silent run selfhost:ports -- --profile public-stack --json
corepack pnpm run selfhost:public-origin -- --profile public-stack --origin <public-origin>
corepack pnpm --silent run selfhost:public-origin -- --profile public-stack --origin <public-origin> --json
corepack pnpm --silent run selfhost:public-origin -- --profile public-stack --origin <public-origin> --confirm --json
corepack pnpm run selfhost:ops-report -- --profile public-stack
corepack pnpm --silent run selfhost:ops-report -- --profile public-stack --json
corepack pnpm run selfhost:preflight -- --profile public-stack
corepack pnpm --silent run selfhost:preflight -- --profile public-stack --json
corepack pnpm run selfhost:up -- --profile public-stack
corepack pnpm --silent run selfhost:up -- --profile public-stack --json
corepack pnpm run selfhost:status -- --profile public-stack
corepack pnpm --silent run selfhost:status -- --profile public-stack --json
corepack pnpm run selfhost:smoke -- --profile public-stack
corepack pnpm --silent run selfhost:smoke -- --profile public-stack --json
corepack pnpm run selfhost:logs -- --profile public-stack
corepack pnpm --silent run selfhost:logs -- --profile public-stack --json
corepack pnpm run selfhost:down -- --profile public-stack
corepack pnpm --silent run selfhost:down -- --profile public-stack --json
corepack pnpm run selfhost:config -- --profile public-stack
corepack pnpm --silent run selfhost:config -- --profile public-stack --json
corepack pnpm run selfhost:security-review -- --profile public-stack
corepack pnpm --silent run selfhost:security-review -- --profile public-stack --json
corepack pnpm run selfhost:audit-export -- --profile public-stack
corepack pnpm --silent run selfhost:audit-export -- --profile public-stack --json
corepack pnpm run selfhost:backup-plan -- --profile public-stack
corepack pnpm --silent run selfhost:backup-plan -- --profile public-stack --json
corepack pnpm run selfhost:backup-validate -- --profile public-stack --backup-dir backups/selfhost/public-stack/<stamp>
corepack pnpm --silent run selfhost:backup-validate -- --profile public-stack --backup-dir backups/selfhost/public-stack/<stamp> --json
corepack pnpm run selfhost:restore-plan -- --profile public-stack --backup-dir backups/selfhost/public-stack/<stamp>
corepack pnpm --silent run selfhost:restore-plan -- --profile public-stack --backup-dir backups/selfhost/public-stack/<stamp> --json
corepack pnpm run selfhost:rotate-plan -- --profile public-stack
corepack pnpm --silent run selfhost:rotate-plan -- --profile public-stack --json
corepack pnpm --silent run selfhost:rotate -- --profile public-stack --json
corepack pnpm --silent run selfhost:rotate -- --profile public-stack --confirm --json

Operator onboarding

corepack pnpm run operator:onboarding:plan
corepack pnpm --silent run operator:onboarding:plan -- --json
corepack pnpm run operator:onboarding:check
corepack pnpm --silent run operator:onboarding:check -- --json
corepack pnpm run published-image:plan
corepack pnpm --silent run published-image:plan -- --json
corepack pnpm run published-image:smoke -- --image-tag latest
corepack pnpm run published-image:smoke -- --image-tag <candidate-tag>
corepack pnpm --silent run published-image:smoke -- --dry-run --image-tag <candidate-tag> --json

DEPLOYABILITY FAQ

3 questions before first deployment

These answers only claim what the current stack can verify. Planned surfaces stay visibly planned.

How is this different from the quick starts?

The quick starts help you run the smallest Caller or Responder loop first. Deployability Profiles explain when to use Local Agent Loop, Selfhost Platform, Public Stack, and Management Console, including what is ready now and what remains planned.

Why should public-stack fail in some configurations?

Because public exposure should fail before unsafe defaults go live. The public-stack preflight checks placeholder secrets, unsafe public origins, compose config, and edge route contracts.

Is Selfhost a different product?

No. Selfhost is the same Platform control-plane shape deployed privately. The protocol and call shape stay the same; the operator controls data, secrets, logs, console, and exposure boundaries.

NEXT

Where to continue

This page explains profiles and safety boundaries. Continue into one runnable loop, one architecture boundary page, or the console management prototype.