Skip to content
4 changes: 2 additions & 2 deletions content/guides/claude-code-sandbox-model-runner.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ see the
Run Claude Code in the sandbox and pass the model flag through to the agent:

```console
$ sbx run claude-dmr -- --model ai/devstral-small-2
$ sbx run --name claude-dmr -- --model ai/devstral-small-2
```

Everything after `--` is forwarded to the Claude Code CLI.
Expand Down Expand Up @@ -181,7 +181,7 @@ Then point Claude Code at the packaged model the next time you run the
sandbox:

```console
$ sbx run claude-dmr -- --model gpt-oss:32k
$ sbx run --name claude-dmr -- --model gpt-oss:32k
```

## Clean up
Expand Down
4 changes: 2 additions & 2 deletions content/manuals/ai/sandboxes/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ params:

Docker Sandboxes run AI coding agents in isolated microVM sandboxes. Each
sandbox gets its own Docker daemon, filesystem, and network — the agent can
build containers, install packages, and modify files without touching your host
system.
build containers, install packages, and modify files without accessing host
resources beyond those you share.

> [!NOTE]
> The `sbx` CLI is free to use, including for commercial work. Only
Expand Down
14 changes: 8 additions & 6 deletions content/manuals/ai/sandboxes/agents/claude-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,18 @@ Launch Claude Code in a sandbox by pointing it at a project directory:
$ sbx run claude ~/my-project
```

The workspace parameter defaults to the current directory, so `sbx run claude`
from inside your project works too. To start Claude with a specific prompt:
To start Claude with a specific prompt in the current directory:

```console
$ sbx run claude --name my-sandbox -- "Add error handling to the login function"
$ sbx run --name my-sandbox claude -- "Add error handling to the login function"
```

Everything after `--` is passed directly to Claude Code. You can also pipe in a
prompt from a file with `-- "$(cat prompt.txt)"`.

To create a [mountless sandbox](../usage.md#choose-a-workspace), use
`sbx create` without a workspace path, then attach by name.

## Authentication

Claude Code requires either an Anthropic API key or a Claude subscription.
Expand Down Expand Up @@ -71,7 +73,7 @@ itself a flag (begins with `-`), so `--dangerously-skip-permissions` is
preserved:

```console
$ sbx run claude -- -c # runs claude --dangerously-skip-permissions -c
$ sbx run --name <sandbox-name> -- -c # runs claude --dangerously-skip-permissions -c
```

When the first argument is a bare word, such as the `agents` subcommand, it
Expand All @@ -88,7 +90,7 @@ starts background sessions that run tasks in parallel. Pair it with
sandbox:

```console
$ sbx run --clone claude -- agents
$ sbx run --clone claude . -- agents
```

This invocation replaces the
Expand All @@ -98,7 +100,7 @@ bypass-permissions mode inside the sandbox. To work around this, either
use Claude Code's auto mode or pass the flag explicitly:

```console
$ sbx run --clone claude -- --dangerously-skip-permissions agents
$ sbx run --clone claude . -- --dangerously-skip-permissions agents
```

Claude Code may use branches or worktrees to keep changes from its background
Expand Down
7 changes: 5 additions & 2 deletions content/manuals/ai/sandboxes/agents/codex.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@ Create a sandbox and run Codex for a project directory:
$ sbx run codex ~/my-project
```

The workspace parameter is optional and defaults to the current directory:
`sbx run` defaults the workspace to the current directory:

```console
$ cd ~/my-project
$ sbx run codex
```

To create a [mountless sandbox](../usage.md#choose-a-workspace), use
`sbx create` without a workspace path, then attach by name.

## Authentication

If you haven't stored an OpenAI credential, `sbx run codex` prompts you to
Expand Down Expand Up @@ -75,7 +78,7 @@ itself a flag (begins with `-`). A bare word — such as a prompt — replaces t
defaults instead, so lead with the flag to keep bypass mode:

```console
$ sbx run codex -- --dangerously-bypass-approvals-and-sandbox "fix the build"
$ sbx run --name <sandbox-name> -- --dangerously-bypass-approvals-and-sandbox "fix the build"
```

## Base image
Expand Down
7 changes: 5 additions & 2 deletions content/manuals/ai/sandboxes/agents/copilot.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@ Create a sandbox and run Copilot for a project directory:
$ sbx run copilot ~/my-project
```

The workspace parameter is optional and defaults to the current directory:
`sbx run` defaults the workspace to the current directory:

```console
$ cd ~/my-project
$ sbx run copilot
```

To create a [mountless sandbox](../usage.md#choose-a-workspace), use
`sbx create` without a workspace path, then attach by name.

## Authentication

Copilot requires a GitHub token with Copilot access. Store your token using
Expand Down Expand Up @@ -59,7 +62,7 @@ Arguments after `--` are added after the default flags when the first one is
itself a flag (begins with `-`), so `--yolo` is preserved:

```console
$ sbx run copilot -- -p "review this PR" # runs copilot --yolo -p "review this PR"
$ sbx run --name <sandbox-name> -- -p "review this PR" # runs copilot --yolo -p "review this PR"
```

When the first argument is a bare word — a subcommand or prompt — it replaces
Expand Down
7 changes: 5 additions & 2 deletions content/manuals/ai/sandboxes/agents/cursor.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@ Create a sandbox and run Cursor for a project directory:
$ sbx run cursor ~/my-project
```

The workspace parameter is optional and defaults to the current directory:
`sbx run` defaults the workspace to the current directory:

```console
$ cd ~/my-project
$ sbx run cursor
```

To create a [mountless sandbox](../usage.md#choose-a-workspace), use
`sbx create` without a workspace path, then attach by name.

## Authentication

Cursor supports two authentication methods: an API key or OAuth.
Expand Down Expand Up @@ -65,7 +68,7 @@ Arguments after `--` are added after the default flags when the first one is
itself a flag (begins with `-`), so `--yolo` is preserved:

```console
$ sbx run cursor -- -p "refactor this" # runs cursor-agent --yolo -p "refactor this"
$ sbx run --name <sandbox-name> -- -p "refactor this" # runs cursor-agent --yolo -p "refactor this"
```

When the first argument is a bare word — a subcommand or prompt — it replaces
Expand Down
9 changes: 6 additions & 3 deletions content/manuals/ai/sandboxes/agents/docker-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,11 @@ Create a sandbox and run Docker Agent for a project directory:
$ sbx run docker-agent ~/my-project
```

The workspace parameter defaults to the current directory, so
`sbx run docker-agent` from inside your project works too.
`sbx run docker-agent` defaults the workspace to the current directory, so you
can run it from inside your project.

To create a [mountless sandbox](../usage.md#choose-a-workspace), use
`sbx create` without a workspace path, then attach by name.

## Authentication

Expand Down Expand Up @@ -60,7 +63,7 @@ as the `run` subcommand or a config file — it replaces the defaults, so includ
`run --yolo` yourself:

```console
$ sbx run docker-agent -- run --yolo agent.yml
$ sbx run --name <sandbox-name> -- run --yolo agent.yml
```

## Base image
Expand Down
7 changes: 5 additions & 2 deletions content/manuals/ai/sandboxes/agents/droid.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,16 @@ Create a sandbox and run Droid for a project directory:
$ sbx run droid ~/my-project
```

The workspace parameter is optional and defaults to the current directory:
`sbx run` defaults the workspace to the current directory:

```console
$ cd ~/my-project
$ sbx run droid
```

To create a [mountless sandbox](../usage.md#choose-a-workspace), use
`sbx create` without a workspace path, then attach by name.

## Authentication

Droid requires a [Factory account](https://factory.ai). Both authentication
Expand Down Expand Up @@ -58,7 +61,7 @@ The sandbox runs `droid` with no implicit flags. Args after `--` are passed
straight through:

```console
$ sbx run droid -- exec "fix the build"
$ sbx run --name <sandbox-name> -- exec "fix the build"
```

## Base image
Expand Down
7 changes: 5 additions & 2 deletions content/manuals/ai/sandboxes/agents/gemini.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@ Create a sandbox and run Gemini for a project directory:
$ sbx run gemini ~/my-project
```

The workspace parameter is optional and defaults to the current directory:
`sbx run` defaults the workspace to the current directory:

```console
$ cd ~/my-project
$ sbx run gemini
```

To create a [mountless sandbox](../usage.md#choose-a-workspace), use
`sbx create` without a workspace path, then attach by name.

## Authentication

Gemini requires either a Google API key or a Google account with Gemini access.
Expand Down Expand Up @@ -65,7 +68,7 @@ Arguments after `--` are added after the default flags when the first one is
itself a flag (begins with `-`), so `--yolo` is preserved:

```console
$ sbx run gemini -- -p "explain this" # runs gemini --yolo -p "explain this"
$ sbx run --name <sandbox-name> -- -p "explain this" # runs gemini --yolo -p "explain this"
```

When the first argument is a bare word — a subcommand or prompt — it replaces
Expand Down
18 changes: 11 additions & 7 deletions content/manuals/ai/sandboxes/agents/kiro.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@ Create a sandbox and run Kiro for a project directory:
$ sbx run kiro ~/my-project
```

The workspace parameter is optional and defaults to the current directory:
`sbx run` defaults the workspace to the current directory:

```console
$ cd ~/my-project
$ sbx run kiro
```

To create a [mountless sandbox](../usage.md#choose-a-workspace), use
`sbx create` without a workspace path, then attach by name.

On first run, Kiro prompts you to authenticate using device flow.

## Authentication
Expand All @@ -53,7 +56,7 @@ repeated login unless you destroy and recreate the sandbox.
You can trigger the login flow manually:

```console
$ sbx run kiro --name <sandbox-name> -- login --use-device-flow
$ sbx run --name <sandbox-name> -- login --use-device-flow
```

This command initiates device flow authentication without starting a coding
Expand Down Expand Up @@ -86,14 +89,15 @@ kiro chat --trust-all-tools
```

When the first argument after `--` is a flag (begins with `-`), it's added
after the defaults — for example, `sbx run kiro -- --resume` runs
after the defaults — for example, `sbx run --name <sandbox-name> -- --resume` runs
`kiro chat --trust-all-tools --resume`. When the first argument is a bare word,
it replaces the defaults, which is why `sbx run kiro -- login --use-device-flow`
runs the login subcommand on its own. To run `chat` with extra arguments of
your own, include the subcommand:
it replaces the defaults, which is why
`sbx run --name <sandbox-name> -- login --use-device-flow` runs the login
subcommand on its own. To run `chat` with extra arguments of your own, include
the subcommand:

```console
$ sbx run kiro -- chat --trust-all-tools --resume
$ sbx run --name <sandbox-name> -- chat --trust-all-tools --resume
```

## Base image
Expand Down
7 changes: 5 additions & 2 deletions content/manuals/ai/sandboxes/agents/opencode.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@ Create a sandbox and run OpenCode for a project directory:
$ sbx run opencode ~/my-project
```

The workspace parameter is optional and defaults to the current directory:
`sbx run` defaults the workspace to the current directory:

```console
$ cd ~/my-project
$ sbx run opencode
```

To create a [mountless sandbox](../usage.md#choose-a-workspace), use
`sbx create` without a workspace path, then attach by name.

OpenCode launches a TUI (text user interface) where you can select your
preferred LLM provider and interact with the agent.

Expand Down Expand Up @@ -94,7 +97,7 @@ The sandbox runs `opencode` with no implicit flags. Args after `--` are passed
straight through. For example, to resume an existing session:

```console
$ sbx run opencode -- -s <session-id>
$ sbx run --name <sandbox-name> -- -s <session-id>
```

### TUI mode
Expand Down
10 changes: 9 additions & 1 deletion content/manuals/ai/sandboxes/agents/shell.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,21 @@ environment.
$ sbx run shell ~/my-project
```

The workspace path defaults to the current directory. To run a one-off
`sbx run` defaults the workspace to the current directory. To run a one-off
command instead of an interactive shell, pass it after `--`:

```console
$ sbx run shell -- -c "echo 'Hello from sandbox'"
```

To create a [mountless sandbox](../usage.md#choose-a-workspace), use
`sbx create` without a workspace path, then attach by name:

```console
$ sbx create --name scratch shell
$ sbx run --name scratch
```

## Default startup command

Without extra args, the sandbox runs `bash -l`. When the first argument after
Expand Down
Loading