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 / OptionDescription
[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.
--jsonPrint 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 / OptionDescription
<experience>Experience key to promote. Carries the rules of the segment(s) it's bound to.
--surveyPromote the active onboarding survey instead of an experience.
--from <env>Source environment. Defaults to development.
--to <env>Destination environment. Defaults to production.
--dry-runPrint the diff without applying it.
--yes, -ySkip 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]
CommandDescription
env clearDelete the sandbox's test users and their runtime data (responses, events, progress). Content and config are kept. Refuses production.
env cloneClear 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 / OptionDescription
<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]
OptionDescription
--yes, -yAccept prompts and update modified owned sections.

On this page