Dawnrose

Docs Getting started

dawn CLI

dawn is the command-line client for Dawnrose. It deploys the folder you are in, streams build and runtime logs, manages variables and domains, and runs local commands with a service’s variables. It needs Node.js 22 or later, and tar for dawn up.

Install

Install it with npm. The package is served from this site, not from the npm registry.

npm install -g https://dawnrose.ai/sdk/dawnrose-cli-0.1.0.tgz

To check the download before installing, fetch it, check its SHA-256, then install the file you checked. On Linux, use sha256sum -c in place of shasum -a 256 -c.

curl -fLO https://dawnrose.ai/sdk/dawnrose-cli-0.1.0.tgz
echo "b97bef28ebc1e74d16e595740a2dc091710ee6e4dc02c20af2c85006c65a518b  dawnrose-cli-0.1.0.tgz" | shasum -a 256 -c
npm install -g ./dawnrose-cli-0.1.0.tgz

Then dawn --version prints the version, and dawn help lists the commands. dawn help <command> shows the flags and examples of one.

Log in

Create a token under Account → Tokens (or an agent token on the Connect agent page), then:

dawn login --url https://app.dawnrose.ai --token drt_…

dawn login checks the token and saves the URL and token to ~/.dawnrose/config.json with mode 0600. Without --token in a terminal, it asks for both. Later commands use the saved URL.

CommandWhat it does
dawn loginLog in with an API token. Flags: --url, --token.
dawn logoutForget the saved token. The token stays valid until you revoke it in the dashboard.
dawn whoamiShow the current user, the server, the token type and your workspaces.

In CI, set DAWNROSE_URL and DAWNROSE_TOKEN instead of running dawn login.

Most commands act on the project, environment and service linked to the current directory. The link lives in .dawnrose/link.json, found by walking up from the current directory like git does. Add .dawnrose to .gitignore; the CLI reminds you when it is missing.

CommandWhat it does
dawn init [name]Create a project and link this directory to its production environment. Flags: -w, --workspace, --region.
dawn linkLink this directory to an existing project, environment and service. Prompts for anything missing in a terminal.
dawn unlinkRemove the link.
dawn statusShow the linked project, environment and service, the active deployment, domains, private hostname and pending changes. Without a linked service it lists all services.
dawn projectsList your projects. Alias: dawn list.
dawn openOpen the project in the dashboard. --print only prints the URL.
dawn envList the environments of the linked project.
dawn env new NAMECreate an environment and switch this directory to it. --from ENV copies another environment; --no-link keeps the current link.
dawn env use NAMESwitch this directory to another environment, keeping the same service name.
dawn env delete NAMEDelete an environment with its services and volumes. Asks for confirmation.

Deploy

CommandWhat it does
dawn up [path]Pack and upload the directory, then stream the build and deploy logs. Flags: -d, --detach, -m, --message.
dawn deployDeploy the service from its source: the repository, the image or the last upload. --all deploys every service in the environment that has pending changes. Flags: -d, --detach, -m, --message.
dawn redeployRedeploy the active deployment’s build with the current variables. -d, --detach.
dawn rollback [deploymentId]Roll back to a deployment, by default the previous successful one. Restores its image, settings and variables. Asks for confirmation. -d, --detach.
dawn restartRestart the running replicas without rebuilding.
dawn downStop the active deployment. Asks for confirmation.
dawn deploymentsList recent deployments. -n, --limit (default 15).

dawn up respects .gitignore and .dawnignore files at every level and always skips .git, node_modules and .dawnrose. The compressed upload can be up to 100 MB on Trial and 500 MB on Hobby and Pro. If the directory has no linked service, dawn up asks which service to deploy to or creates a new one named after the directory, with a public domain, and links it. If the target service deploys from a repository or image, the upload replaces that source for this deployment only.

Deploy commands exit with a non-zero code unless the deployment succeeds. Press Ctrl+C to stop following the logs; the deployment continues on the server.

dawn up
dawn up ./web --service web --detach -m "try new cache"
dawn deploy --all

Logs and metrics

CommandWhat it does
dawn logsRuntime logs of the service. -f, --follow keeps streaming; --filter QUERY filters lines; -n, --lines sets how many (default 200); --since takes an ISO date or 10m, 2h, 1d.
dawn logs --buildBuild log of the latest deployment (-b).
dawn logs --deployment IDBuild and deploy log of one deployment (-d). Works with -f.
dawn metricsCPU, memory, network and HTTP stats. -r, --range takes 15m, 1h (default), 6h, 24h, 7d, up to 30 days.
dawn logs -f --filter '@level:error'

The filter syntax is described in Logs, metrics and alerts.

Variables and local commands

CommandWhat it does
dawn varsList the service’s variables with resolved values. --shared lists the environment’s shared variables; --kv prints KEY=VALUE lines; --provided adds the DAWNROSE_* variables.
dawn vars set KEY=VALUE…Set variables, then redeploy. Without arguments it reads a .env file from stdin. Flags: --shared, --sealed, --skip-deploy.
dawn vars unset KEY…Remove variables, then redeploy. Aliases: vars delete, vars rm. Flags: --shared, --skip-deploy.
dawn vars pullPrint the resolved variables as a .env file. --no-provided leaves out DAWNROSE_*.
dawn run -- <command>Run a local command with the service’s resolved variables in its environment.
dawn shellOpen a local subshell with the service’s variables.

With --shared, vars set and vars unset deploy every service whose configuration changed. Sealed variables are never sent to your machine, so vars pull, run and shell leave them out and print a warning.

dawn vars set NODE_ENV=production
dawn vars set API_KEY=s3cr3t --sealed
dawn vars set --skip-deploy < .env
dawn vars pull > .env
dawn run -- npx prisma migrate deploy

Services and networking

CommandWhat it does
dawn addAdd a service: --database postgres|mysql|redis|mongo, --template ID, -r, --repo OWNER/NAME (with --branch), -i, --image IMAGE, or -n, --name NAME for an empty service. --var KEY=VALUE is repeatable; --no-deploy creates without deploying. dawn add --template list lists templates.
dawn exec -- <command>Run a command with sh -c in the first running replica and exit with its exit code. -t, --timeout in seconds (default 60, max 600).
dawn domain [hostname]Without a hostname, print the generated domain, creating one if there is none (--new makes another). With a hostname, attach a custom domain and print its DNS records. Flags: --port, --wildcard.
dawn domain verify HOSTNAMECheck the DNS records of a custom domain and activate it.
dawn domain remove HOSTNAMEDetach a domain. Alias: domain rm.
dawn domainsList the service’s domains, their status and the private hostname.
dawn exec -- 'ls | wc -l'
dawn exec --service api -- npx prisma migrate deploy
dawn domain app.example.com

A single argument after -- is passed to the shell verbatim, so pipes work when you quote the whole command.

MCP bridge

CommandWhat it does
dawn mcpRun a stdio MCP server that forwards to <url>/mcp with your saved token, for clients that only support stdio servers.
dawn mcp configPrint ready-to-paste configuration for Claude Code and Claude Desktop. The output contains your token.

Other commands

  • dawn completion bash|zsh|fish prints a shell completion script, for example source <(dawn completion bash).
  • dawn help [command] shows help.
  • dawn version prints the CLI version.

Global flags

FlagMeaning
--url URLDawnrose URL (or DAWNROSE_URL). The saved token is not sent to a different URL.
--token TOKENAPI token (or DAWNROSE_TOKEN).
-p, --projectProject name or id, instead of the linked one.
-e, --environmentEnvironment name or id.
-s, --serviceService name or id.
--jsonPrint machine-readable JSON. Errors go to stderr as JSON.
-y, --yesSkip confirmation prompts. Required for destructive commands when not in a terminal.
--no-colorDisable colors (or set NO_COLOR).
-h, --helpShow help.
-V, --versionPrint the CLI version.

Exit codes

CodeMeaning
0Success.
1Failure: an API error or a failed deployment.
2Usage error.
3Not logged in, or the token was rejected.
130Interrupted.

dawn exec exits with the command’s own exit code, or 124 if it timed out. dawn run and dawn shell exit with the local command’s code.