Deploy & promote
Deploy a version to the sandbox, promote it to production, and manage environment data.
These commands move a spec through the environments workflow: deploy activates it in the sandbox, and promote ships the tested version to production.
sunboard deploy
Upload a spec to Sunboard as a new, immutable version and activate it in the
sandbox (the development environment), where it's live for testing against
your pk_test_ key. It never touches production.
Sunboard is fileless: there are no spec files in your repo. Your coding agent
composes the spec and pipes it to deploy on stdin (an explicit [file] is
supported for scripts and CI, but isn't required).
# The agent normally pipes the spec it authored:
sunboard deploy --json <<'YAML'
key: trial-activation
name: Trial activation
title: Welcome
type: guide
goal:
event: workflow.created
checklist:
steps:
- key: first-workflow
title: Create your first workflow
completeWhen:
event: workflow.created
YAML| Argument / Option | Description |
|---|---|
[file] | Optional path to a spec. Defaults to reading the spec from stdin. |
--app <path> | Path to the app root, relative to the current directory. |
--framework <next|vite> | Framework of the app whose env contains the publishable key. |
--json | Print machine-readable JSON output. |
The server validates
The spec is validated, normalized, and hashed server-side on deploy, so an
invalid spec is rejected. Run sunboard validate (piping the spec on stdin)
for fast local feedback first.
sunboard promote
Copy a version you tested in the sandbox to production. It shows a diff and confirms before writing; production analytics are untouched, and you can roll back by promoting an earlier version.
sunboard promote <experience> [--from <env>] [--to <env>] [--dry-run] [--yes] [--json]
sunboard promote --survey [--from <env>] [--to <env>] [--dry-run] [--yes] [--json]| Argument / Option | Description |
|---|---|
<experience> | Experience key to promote. Carries the rules of the segment(s) it's bound to. |
--survey | Promote the active onboarding survey instead of an experience. |
--from <env> | Source environment. Defaults to development. |
--to <env> | Destination environment. Defaults to production. |
--dry-run | Print the diff without applying it. |
--yes, -y | Skip the confirmation prompt (required in --json mode). |
Promotion is per-experience by design: ship one thing at a time, each with its own diff. There is no "promote everything" command.
sunboard env
Manage an environment's data and content.
sunboard env clear --environment development [--yes]
sunboard env clone [--from production] [--to development] [--yes]| Command | Description |
|---|---|
env clear | Delete the sandbox's test users and their runtime data (responses, events, progress). Content and config are kept. Refuses production. |
env clone | Clear the destination sandbox's users and hosted content, then rebuild it from the source environment's live experiences, bindings, segments, and survey. Source users and analytics are not copied; cloning into production is refused. |
sunboard pull
Print an environment's live experience spec as YAML to stdout. This is how the agent reads the current spec into its context to revise it, then re-deploys the edited version. Nothing is written to disk; the server stays the source of truth.
sunboard pull <key> [--environment <key>] [--app <path>]| Argument / Option | Description |
|---|---|
<key> | Experience key to read. |
--environment <key> | Environment to read from. Defaults to production. |
--app <path> | Path to the app root, relative to the current directory. |
sunboard skills update
Refresh the installed agent skill files to match your current CLI version. Run
this after upgrading sunboard.
sunboard skills update [--yes]| Option | Description |
|---|---|
--yes, -y | Accept prompts and update modified owned sections. |