Skip to main content
Use a Boat API key for Docker images, servers, CI jobs, and hosted workers. Create and store the key as BOAT_API_KEY; see API Keys for setup, rotation, and deletion.

Docker image

Install the Boat CLI and OpenSSH client in the image. Authenticate at runtime.
Debian / Ubuntu
Alpine

Runtime login

Run boat login before the first sandbox command in your process:
For a Railway start command, use the same pattern:
If your app starts sandboxes directly, keep login in the entrypoint:
boat login --key-stdin --json <<< "$BOAT_API_KEY" emits:
For scripts, prefer --json on login too. It keeps stdout machine-readable and makes failed auth return the standard JSON error line. See API Keys for key setup guidance.

JSON and JSONL

Most read/update commands emit one JSON object:
Long-running commands emit JSON Lines:
Each line is a complete JSON object with an event field. Most runtime failures in --json mode emit a final {"event":"error",...} line. Argument parsing errors can still be emitted by the CLI parser on stderr before Boat’s JSON error handler runs. See Use in Code for exact schemas, error formats, and parsers. When every user of your product needs a sandbox with the same stack pre-installed, build it once and fork it per user. See Template Sandboxes. For secrets used inside sandboxes, see Environments.