CLI reference
The core loop is five commands — init, dev, check, preview, publish — over the committed snoozestack/ folder: a preview runs your checkout in your own temporary copy of the project, and a publish ships it to production as a new release (see Releases & previews). Project-scoped commands use the [project] name declared in snoozestack/project.toml (written by snoozestack link), or an explicit --project <ref>. Most resource groups accept --dev / --preview <name> to scope an operation to that namespace. Add --help to any command for the full detail.
Nearly every command below has a counterpart tool on the project's MCP endpoint, so an AI client can do this work directly instead of shelling out to the CLI on your behalf.
snoozestack init [name] # scaffold project.toml + a starter function + schema.mjssnoozestack check # validate the manifest — file and line on failuresnoozestack dev [--port <n>] # run the whole runtime natively; prints the dashboard linksnoozestack dev reset # throw away local state, rebuild + reseed snoozestack preview # run this checkout in your own preview (preview-@<handle>)snoozestack preview status # its URL, health, seed outcome, schema plan, expirysnoozestack preview outbox # mail it tried to send — captured, never deliveredsnoozestack preview delete # clean it up now (it expires 30 minutes after it last came up) snoozestack publish # ship this checkout to production as a new releasesnoozestack publish --yes # same, answering the "this release drops data" promptsnoozestack publish --release r11 # deploy release 11 again — a rollback (code, not data)snoozestack releases # every release, newest first: live? who? what it droppedsnoozestack releases show r12 # the full package: artifacts, checksums, schema plan, dropssnoozestack releases deployments # every publish and rollback, who, and how production answeredsnoozestack user login # opens your browser to sign in (password or Google); stores a tokensnoozestack user # who this machine is signed in assnoozestack user token # print that token, for scripts calling the management APIsnoozestack user logout # forget + revoke the stored tokensnoozestack link --project my-app # record the project in snoozestack/project.toml snoozestack projects listsnoozestack projects create <name> # provision a hosted project (refused at the plan's project limit)snoozestack projects rename <name> # change the display name; the ref (hostname, database) never changessnoozestack projects stop <ref> # pause it: runtime stops, API and sites answer "paused", nothing deletedsnoozestack projects start <ref> # resume it (needs a free slot under the plan's allowance)snoozestack projects keys [<ref>] # SNOOZESTACK_URL + API keyssnoozestack projects tokens create <name> # project-scoped credential for CIsnoozestack projects tokens list | revoke <id> | rotate <id>snoozestack projects delete <ref> [--yes]snoozestack schema build # schema.mjs → snoozestack/schema.json (offline); publish ships itsnoozestack functions list # the declared functions, as the project runs themsnoozestack functions create <name> [--mcp] # scaffold snoozestack/functions/<name>/index.ts + its [[functions]] entrysnoozestack functions schedules list | create <name> --function <fn> --cron "<expr>" [--payload <json>]snoozestack functions schedules enable <name> | disable <name> | delete <name> [--yes]snoozestack functions schedules run <name> # fire it now through the scheduler; prints the row, exits 1 unless it ran oksnoozestack mcp list # the MCP endpoints you declared, with their client URLssnoozestack secrets set KEY=value # hosted default — running runtimes pick it upsnoozestack secrets set KEY=value --dev # local-only override for snoozestack devsnoozestack secrets set KEY=value --preview ada # override for one preview (name from preview status)snoozestack secrets list # names + which namespaces override; never valuessnoozestack secrets unset KEYsnoozestack storage list # buckets are their [[storage]] entries; publish applies themsnoozestack data tables # every table, with row and column countssnoozestack data rows <table> # one page of rows (100), tab-separatedsnoozestack data rows <table> --all # every pagesnoozestack data rows <table> --offset 100 --jsonsnoozestack data rows <table> --preview ada # that preview's own database# read-only, and a management credential — never the project's anon/service keysnoozestack queues list # messages / in flight / delayed per queuesnoozestack queues create <name> [--max-receives <n>]snoozestack queues send <name> <message> # enqueue a test messagesnoozestack queues dead-letters <name> # what exhausted its retriessnoozestack queues delete <name> [--yes] snoozestack triggers create <name> --queue <q> --function <fn> [--notify <service>]snoozestack triggers list | enable <name> | disable <name> | delete <name> snoozestack webhooks create <name> --queue <q># → https://<ref>.snzzz.com/api/webhooks/<name>/<token>snoozestack webhooks list | delete <name> [--yes]snoozestack notifications enable [<name>] # imperative shortcutsnoozestack notifications list | delete <name> [--yes]snoozestack notifications devices # registered device tokenssnoozestack notifications register-device --token <hex> # let dev send to a real devicesnoozestack notifications test --service <name> --device <id> --title … --body …snoozestack sites versions <name> # version history + preview URLssnoozestack sites primary <name> # serve this one at the project host rootsnoozestack sites list | delete <name> [--yes] snoozestack domains claim <domain> # start connecting (idempotent)snoozestack domains status [<domain>] # the setup checklistsnoozestack domains primary platform|custom # which URL generated links usesnoozestack domains records list|add|delete <domain> …snoozestack domains list | retry <domain> | delete <domain> [--yes]snoozestack auth pull [--force] # write the email/page templates into the project as filessnoozestack signals # hosted event stream, newest firstsnoozestack signals --range 24h --event page_view --lines 100snoozestack signals tail [--type log] # the LOCAL dev store, livesnoozestack signals query | clear # read / empty the local store snoozestack logs runtime --lines 100 # the runtime's log — auth, functions and storage are one processsnoozestack logs runtime --preview # your preview's runtime instead of production'ssnoozestack logs queues | sites # queue and website activity snoozestack audit # who changed what — console, CLI, and MCPsnoozestack audit --area auth --actor mcpFunction code lives at ./snoozestack/functions/<name>/index.ts and table definitions in ./snoozestack/schema.mjs. The login token is stored in ~/.snoozestack/config.json (APP_CONFIG_DIR overrides it); CI should skip login entirely and pass a project token via --token or APP_SERVICE_TOKEN. snoozestack update upgrades the CLI in place.