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.
| Command | What it does |
|---|---|
dawn login | Log in with an API token. Flags: --url, --token. |
dawn logout | Forget the saved token. The token stays valid until you revoke it in the dashboard. |
dawn whoami | Show the current user, the server, the token type and your workspaces. |
In CI, set DAWNROSE_URL and DAWNROSE_TOKEN instead of running dawn login.
Projects and linking
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.
| Command | What it does |
|---|---|
dawn init [name] | Create a project and link this directory to its production environment. Flags: -w, --workspace, --region. |
dawn link | Link this directory to an existing project, environment and service. Prompts for anything missing in a terminal. |
dawn unlink | Remove the link. |
dawn status | Show the linked project, environment and service, the active deployment, domains, private hostname and pending changes. Without a linked service it lists all services. |
dawn projects | List your projects. Alias: dawn list. |
dawn open | Open the project in the dashboard. --print only prints the URL. |
dawn env | List the environments of the linked project. |
dawn env new NAME | Create an environment and switch this directory to it. --from ENV copies another environment; --no-link keeps the current link. |
dawn env use NAME | Switch this directory to another environment, keeping the same service name. |
dawn env delete NAME | Delete an environment with its services and volumes. Asks for confirmation. |
Deploy
| Command | What it does |
|---|---|
dawn up [path] | Pack and upload the directory, then stream the build and deploy logs. Flags: -d, --detach, -m, --message. |
dawn deploy | Deploy 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 redeploy | Redeploy 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 restart | Restart the running replicas without rebuilding. |
dawn down | Stop the active deployment. Asks for confirmation. |
dawn deployments | List 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
| Command | What it does |
|---|---|
dawn logs | Runtime 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 --build | Build log of the latest deployment (-b). |
dawn logs --deployment ID | Build and deploy log of one deployment (-d). Works with -f. |
dawn metrics | CPU, 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
| Command | What it does |
|---|---|
dawn vars | List 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 pull | Print 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 shell | Open 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
| Command | What it does |
|---|---|
dawn add | Add 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 HOSTNAME | Check the DNS records of a custom domain and activate it. |
dawn domain remove HOSTNAME | Detach a domain. Alias: domain rm. |
dawn domains | List 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
| Command | What it does |
|---|---|
dawn mcp | Run a stdio MCP server that forwards to <url>/mcp with your saved token, for clients that only support stdio servers. |
dawn mcp config | Print ready-to-paste configuration for Claude Code and Claude Desktop. The output contains your token. |
Other commands
dawn completion bash|zsh|fishprints a shell completion script, for examplesource <(dawn completion bash).dawn help [command]shows help.dawn versionprints the CLI version.
Global flags
| Flag | Meaning |
|---|---|
--url URL | Dawnrose URL (or DAWNROSE_URL). The saved token is not sent to a different URL. |
--token TOKEN | API token (or DAWNROSE_TOKEN). |
-p, --project | Project name or id, instead of the linked one. |
-e, --environment | Environment name or id. |
-s, --service | Service name or id. |
--json | Print machine-readable JSON. Errors go to stderr as JSON. |
-y, --yes | Skip confirmation prompts. Required for destructive commands when not in a terminal. |
--no-color | Disable colors (or set NO_COLOR). |
-h, --help | Show help. |
-V, --version | Print the CLI version. |
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success. |
| 1 | Failure: an API error or a failed deployment. |
| 2 | Usage error. |
| 3 | Not logged in, or the token was rejected. |
| 130 | Interrupted. |
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.