Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

Sandbox CLI workflows

The CLI is a typed request surface, not a shell wrapper around a host. It sends workload specifications and argv arrays to the controller, then exposes the resulting operations and bounded output to a human or script.

Install and connect

The full setup path installs the client, daemon, MCP bridge, and supported agent integration. Use the binaries-only installer if that is all a machine needs.
curl -fsSL https://tools.yshubham.com/sandbox/setup.sh | sh sandbox config set-server https://sandbox.example.com export SANDBOX_TOKEN='read-from-your-secret-store' sandbox doctor
The CLI stores only the non-secret controller URL. Use SANDBOX_URL or --server for a one-off target, and keep the bearer token in an environment or secret store rather than shell history.

Create deliberately

Classify the work before creating it. State repository trust, generated code, secret needs, network mode, resources, and TTL instead of relying on an ambiguous agent prompt.
sandbox create \ --tenant platform \ --image ubuntu:24.04 \ --cpu-millis 2000 \ --memory-mib 4096 \ --ttl 3600 \ --network restricted \ --untrusted-repo \ --generated-code
Use isolation: auto unless policy specifically requires microvm. A client must never weaken a server isolation decision to find capacity.

Execute, inspect, and delete

Arguments after -- remain argv. They are not interpolated into a shell, which makes the execution boundary easier to audit.
sandbox exec "$SANDBOX_ID" --cwd /workspace --timeout 900 -- cargo test --workspace sandbox inspect "$SANDBOX_ID" sandbox delete "$SANDBOX_ID"
Check the returned operation state, exit code, stderr, and truncated flag. A transport-success result does not prove the remote command succeeded. Delete disposable environments when their work ends; TTL is a backstop, not a cleanup policy.

Share a service intentionally

Use sandbox http PORT for a local development server and keep the command attached until sharing should stop. For a service inside a managed Sandbox, bind it to 0.0.0.0 and use a controller-managed tunnel.
sandbox http 3000 sandbox tunnel create "$SANDBOX_ID" --port 3000
Every generated URL is public and unauthenticated unless an operator has placed a real access layer in front of it. Read public tunnels and Sandbox security before exposing a service.
Keep mutation IDs. --no-wait is useful only when the caller will save the operation ID and inspect it with sandbox wait rather than retry blindly.