Skip to content
JacqOS
Get started

Publish With The Cloud CLI

Use the CLI path when you want copyable commands, CI-friendly deployment steps, or infrastructure automation. The flow is the same as Studio: verify locally, publish a package handoff, promote it, interact with the hosted runtime, and replay hosted evidence.

If this is your first publish and you want a guided UI, use the Studio path.

Run from a JacqOS app directory:

Terminal window
jacqos verify

jacqos verify must pass before Cloud publish. A failed fixture, invariant, or redaction check blocks deployment locally; Cloud never receives an unverified package.

Terminal window
jacqos cloud login \
--management-url https://cloud.jacqos.io \
--runtime-cell-url https://runtime.cloud.jacqos.io \
--wait

If your account was issued an invite code, keep it in a JACQOS_ variable and pass it explicitly:

Terminal window
export JACQOS_CLOUD_INVITE_CODE="<invite-code>"
jacqos cloud login \
--management-url https://cloud.jacqos.io \
--runtime-cell-url https://runtime.cloud.jacqos.io \
--invite-code "$JACQOS_CLOUD_INVITE_CODE" \
--wait

The CLI stores session metadata under .jacqos/cloud/. It stores digests and scope metadata, not WorkOS provider secrets or runtime token plaintext.

Check account readiness:

Terminal window
jacqos cloud readiness --json

Select or create the project, app, and environment you want to publish into:

Terminal window
jacqos cloud select \
--project appointment-booking \
--project-name "Appointment Booking" \
--app appointment-booking \
--app-name "Appointment Booking" \
--environment prod \
--environment-name "Production" \
--json

The selected scope is organization-bound. If your WorkOS session belongs to a different organization, management writes fail before any runtime command is dispatched.

Terminal window
jacqos verify
jacqos cloud deploy --json
jacqos cloud promote --json
jacqos cloud status --json

jacqos cloud deploy creates the verified package handoff. jacqos cloud promote makes that package the live evaluator for the selected app and environment. Shadow or failed packages cannot execute effects.

jacqos cloud status --json returns deployment summaries and usage metrics: health, lifecycle, request count, observation count, effect count, storage bytes, degraded/error counts, and last replay-export status. These are operational metrics, not canonical facts.

Pause effect execution without deleting evidence:

Terminal window
jacqos cloud pause \
--lineage lineage_first_user \
--reason "operator maintenance" \
--json

Rollback to an eligible prior package digest:

Terminal window
jacqos cloud rollback \
--lineage lineage_first_user \
--package-digest sha256:<previous-package-digest> \
--reason "restore previous verified package" \
--json

Archive a deployment record that should no longer appear in the normal active path:

Terminal window
jacqos cloud archive \
--lineage lineage_first_user \
--reason "superseded by production app" \
--json

Pause, rollback, and archive are management lifecycle actions. They preserve audit receipts and hosted export evidence.

Issue a token that can send observations and fetch hosted evidence:

Terminal window
jacqos cloud token issue \
--scope observe \
--scope export \
--expires-in-seconds 2592000 \
--json > runtime-token.json
export JACQOS_RUNTIME_TOKEN="$(jq -r .token runtime-token.json)"
export JACQOS_CLOUD_ENDPOINT="https://runtime.cloud.jacqos.io/v0/apps/appointment-booking/envs/prod"

The token value is returned once. Store it in your own secret store for your application. JacqOS persists token digests, scopes, expiry, and Cell Control receipts, not plaintext token material.

Rotate or revoke tokens explicitly:

Terminal window
jacqos cloud token rotate \
--from-token-id runtime-prod-1 \
--token-id runtime-prod-2 \
--json
jacqos cloud token revoke \
--token-id runtime-prod-2 \
--reason "client rotated" \
--json
Terminal window
jacqos cloud endpoint-smoke \
--token-env JACQOS_RUNTIME_TOKEN \
--json

This checks that the selected app and environment have a promoted evaluator and that the runtime token can reach the scoped runtime cell.

Use the CLI:

Terminal window
jacqos cloud observe \
--lineage lineage_first_user \
--class appointment.requested \
--payload-json '{"customer_id":"cust_123","requested_time":"2026-05-01T10:00:00Z"}' \
--token-env JACQOS_RUNTIME_TOKEN \
--json

Or call the public endpoint directly from your product:

Terminal window
curl --fail \
-H "Authorization: Bearer $JACQOS_RUNTIME_TOKEN" \
-H "Content-Type: application/json" \
--data '{
"lineage_id": "lineage_first_user",
"class": "appointment.requested",
"payload": {
"customer_id": "cust_123",
"requested_time": "2026-05-01T10:00:00Z"
}
}' \
"$JACQOS_CLOUD_ENDPOINT/observe"

Runtime tokens are checked against the app id, environment id, operation scope, expiry, and revocation state. Missing, invalid, revoked, or wrong-scope tokens are rejected before observations are appended.

When Studio appends to the same hosted lineage, it uses the selected cloud work view, requires the cloud append warning, evaluates the declared write policy, checks package identity, and refuses stale hosted projections.

Fetch hosted evidence and validate the local round trip:

Terminal window
jacqos cloud replay-export \
--lineage lineage_first_user \
--token-env JACQOS_RUNTIME_TOKEN \
--output hosted-export.json \
--json

The export includes evaluator identity, package identity, mapper-output digests, redacted observations, hosted facts, intents, effects, and provenance. Replay must recompute the same semantic identities. If package, evaluator, or mapper-output digests drift, treat the export as failed evidence rather than a successful proof.

Use jacqos cloud export --json when you need the hosted evidence receipt without the local replay handoff.

NeedCLIAPI surface
Sign injacqos cloud loginWorkOS-backed management auth
Select scopejacqos cloud selectProject/app/environment management records
Publish packagejacqos cloud deployPOST /api/v0/deployments
Promote packagejacqos cloud promoteCell Control activation handoff
Pause effectsjacqos cloud pausePOST /api/v0/deployments/lifecycle
Rollback activationjacqos cloud rollbackPOST /api/v0/ops/rollback
Archive deploymentjacqos cloud archivePOST /api/v0/deployments/lifecycle
Health and metricsjacqos cloud statusGET /api/v0/health plus deployment summaries
Issue tokenjacqos cloud token issuePOST /api/v0/tokens/runtime
Rotate tokenjacqos cloud token rotatePOST /api/v0/tokens/runtime/rotate
Revoke tokenjacqos cloud token revokePOST /api/v0/tokens/runtime/revoke
Append observationjacqos cloud observePOST /v0/apps/<app-id>/envs/<environment-id>/observe
Export evidencejacqos cloud replay-exportGET /v0/apps/<app-id>/envs/<environment-id>/export?lineage_id=<lineage-id>