---
title: CLI reference
description: "Every sproutboat command, grouped by task, plus every environment variable it reads."
---

Run commands with `bunx sproutboat <command>` or `npx sproutboat <command>`. Run `sproutboat` with no arguments for the grouped list.

## Project

| Command | Does |
| --- | --- |
| `init [name]` | Scaffold `sproutboat.jsonc` + `src/index.js` in `./<name>`. |
| `check [dir]` | Validate the config and entry point. No build. |
| `types [dir]` | Write `sproutboat-env.d.ts` from the config — see [Generated types](/concepts/types). |
| `build [dir] [--standalone]` | Cross-compile the sprout (Porffor + Zig). `--standalone` emits one executable with its bindings compiled in — see [Standalone binaries](/get-started/standalone). |

## Deployment

| Command | Does |
| --- | --- |
| `deploy [dir] [--dry-run] [--no-wait] [--no-provision] [--artifact <dir>]` | Build, auto-provision id-less bindings, upload, wait until the URL serves. `--dry-run` stops before upload. `--artifact` uploads a prebuilt directory. |
| `login [--api-url <url>] [--token <token>]` | Device-code browser flow, or store a token directly — see [Get access](/get-started/access). |
| `tail [dir] [--sprout]` | Recent request logs. `--sprout` streams the sprout + broker stdout/stderr. |
| `versions list [dir]` | List deployed versions. |
| `rollback <version-id> [dir]` | Re-activate a previous version. |
| `delete [dir] [--name <project>] --yes` | Delete the project, every version, and its route. |

## Domains

| Command | Does |
| --- | --- |
| `domains list \| add <host> \| verify <host> \| delete <host> [dir]` | Attach a custom domain — see [Custom domains](/platform/custom-domains). |

## Secrets

| Command | Does |
| --- | --- |
| `secrets list \| put <NAME> [--value <value>] \| delete <NAME> [dir]` | Manage encrypted project secrets — see [Secrets](/bindings/secrets). |

## Storage

| Command | Does |
| --- | --- |
| `kv <list \| create \| info \| rename \| delete>` | Manage account-level KV namespaces. `kv key`, `kv bulk`, and `kv export` manage their contents — see [Manage and export KV data](/storage/manage-kv-data). |
| `d1 <list \| create \| info \| rename \| delete>` | Manage account-level D1 databases. |
| `r2 <list \| create \| info \| rename \| delete>` | Manage account-level R2 buckets. |
| `queues <list \| create \| info \| rename \| delete>` | Manage account-level queues. |

## Environment variables

| Variable | Purpose |
| --- | --- |
| `SPROUTBOAT_API_URL` | Control-plane URL. Overrides the saved endpoint. |
| `SPROUTBOAT_TOKEN` | API token. Overrides the saved credential. Set both to run fully headless. |
| `SPROUTBOAT_CONFIG_DIR` | Directory for `credentials.json` (default `~/.config/sproutboat`). |
| `SPROUTBOAT_ZIG` | Path to a Zig binary instead of the downloaded one. |
| `SPROUTBOAT_UWS_TARBALL` | uWebSockets source tarball to seed the build cache with, instead of the one vendored in the package. |
| `SPROUTBOAT_COMPILE_TIMEOUT_MS` | Porffor compile timeout (default 600000). |
| `CC` / `AR` | C compiler and archiver for building uSockets on a host build (default `cc` / `ar`). |
| `SB_REQUEST_BODY_MAX` | Largest inbound request body, in bytes (default 1048576). Larger is refused with 413 before the handler runs. |
| `SB_FETCH_MAX_BYTES` | Largest outbound `fetch()` response body a sprout will read (default 33554432). |
| `NO_COLOR` | Plain output. Output is also plain when stdout is not a TTY. |
| `SPROUTBOAT_NO_UPDATE_CHECK` | Skip the daily npm version check. |
