Documentation lives in docs/ (Mintlify). Start with:
docs/index.mdxfor the overviewdocs/quickstart.mdxto run the daemondocs/http-api.mdxanddocs/cli.mdxfor API references
- Rust (latest stable)
- Node.js 20+
- pnpm 9+
- just (optional, but recommended)
Run the agent locally:
sandbox-agent --token "$SANDBOX_TOKEN" --host 127.0.0.1 --port 2468Extract API keys from local agent configs (Claude Code, Codex, OpenCode, Amp):
# Print env vars
sandbox-agent credentials extract-env
# Export to current shell
eval "$(sandbox-agent credentials extract-env --export)"Run the web console (includes all dependencies):
pnpm dev -F @sandbox-agent/inspector
# or
just dev# Run checks (cargo check, fmt, typecheck)
just check
# Run tests
just test
# Format code
just fmt
# Build the agent
just buildReleases are managed through a release script that handles version bumps, artifact uploads, npm/crates.io publishing, and GitHub releases.
-
Install dependencies in the release script directory:
cd scripts/release && pnpm install && cd ../..
-
Ensure you have the following configured:
ghCLI authenticated- npm authenticated (
npm login) CARGO_REGISTRY_TOKENfor crates.io (or runcargo login)- R2 credentials:
R2_RELEASES_ACCESS_KEY_IDandR2_RELEASES_SECRET_ACCESS_KEY(or 1Password CLI for local dev)
# Release with automatic patch bump
just release --patch
# Release with minor bump
just release --minor
# Release with specific version
just release --version 0.2.0
# Release a pre-release
just release --version 0.2.0-rc.1 --no-latestThe release process has three phases:
1. setup-local (runs locally via just release):
- Confirms release details with user
- Runs local checks (cargo check, fmt, typecheck)
- Updates version numbers across all packages
- Generates artifacts (OpenAPI spec, TypeScript SDK)
- Commits and pushes changes
- Triggers the GitHub Actions release workflow
2. setup-ci (runs in CI):
- Runs full test suite (Rust + TypeScript)
- Builds TypeScript SDK and uploads to R2 at
sandbox-agent/{commit}/typescript/
3. binaries (runs in CI, parallel with setup-ci completing):
- Builds binaries for all platforms via Docker cross-compilation
- Uploads binaries to R2 at
sandbox-agent/{commit}/binaries/
4. complete-ci (runs in CI after setup + binaries):
- Publishes crates to crates.io
- Publishes npm packages (SDK + CLI)
- Promotes artifacts from
{commit}/to{version}/(S3-to-S3 copy) - Creates git tag and pushes
- Creates GitHub release with auto-generated notes
To run specific steps manually:
# Run only local checks
cd scripts/release && pnpm exec tsx ./main.ts --version 0.1.0 --only-steps run-local-checks
# Build binaries locally
just release-build-allsandbox-daemon/
├── server/packages/ # Rust crates
│ ├── sandbox-agent/ # Main agent binary
│ ├── agent-schema/ # Agent-specific schemas (Claude, Codex, etc.)
│ └── ...
├── sdks/
│ ├── typescript/ # TypeScript SDK (npm: sandbox-agent)
│ └── cli/ # CLI wrapper (npm: @sandbox-agent/cli)
├── frontend/packages/
│ └── inspector/ # Web console UI
├── docs/ # Mintlify documentation
└── scripts/release/ # Release automation