diff --git a/content/manuals/ai-overview.md b/content/manuals/ai-overview.md index d43e99ae296..261da2e4154 100644 --- a/content/manuals/ai-overview.md +++ b/content/manuals/ai-overview.md @@ -34,7 +34,7 @@ run them from your terminal. Docker Agent is a general-purpose agent runtime, not specific to Docker tasks. **Docker Sandboxes** provides isolated microVM environments for running coding -agents. It supports multiple agents including Claude Code, Codex, Copilot, +agents. It supports multiple agents including Claude Code, Codex, Devin, Gemini, and Docker Agent. Sandboxes is the isolation layer — the agents themselves are separate tools. diff --git a/content/manuals/ai/sandboxes/agents/_index.md b/content/manuals/ai/sandboxes/agents/_index.md index d50303b3f5e..8049de63927 100644 --- a/content/manuals/ai/sandboxes/agents/_index.md +++ b/content/manuals/ai/sandboxes/agents/_index.md @@ -3,21 +3,31 @@ title: Supported agents linkTitle: Agents weight: 40 description: AI coding agents supported by Docker Sandboxes. -keywords: docker sandboxes, ai agents, claude code, codex, cursor, gemini +keywords: docker sandboxes, ai agents, claude code, codex, copilot, cursor, devin, droid, gemini, kiro, sandbox kits +aliases: + - /ai/sandboxes/agents/copilot/ + - /ai/sandboxes/agents/droid/ + - /ai/sandboxes/agents/kiro/ --- Docker Sandboxes runs the following agents out of the box: - [Claude Code](claude-code/) - [Codex](codex/) -- [Copilot](copilot/) - [Cursor](cursor/) +- [Devin](devin/) - [Docker Agent](docker-agent/) -- [Droid](droid/) - [Gemini](gemini/) -- [Kiro](kiro/) - [OpenCode](opencode/) - [Shell](shell/) — agent-less sandbox for manual setup or testing +Copilot, Droid, and Kiro are available as community kits: + +```console +$ sbx run docker.io/sbx/copilot-kit:latest +$ sbx run docker.io/sbx/droid-kit:latest +$ sbx run docker.io/sbx/kiro-kit:latest +``` + Want to pre-install tools or customize an agent's environment? See [Customize](../customize/). diff --git a/content/manuals/ai/sandboxes/agents/copilot.md b/content/manuals/ai/sandboxes/agents/copilot.md deleted file mode 100644 index feb5b68b92b..00000000000 --- a/content/manuals/ai/sandboxes/agents/copilot.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Copilot -weight: 30 -description: | - Use GitHub Copilot in Docker Sandboxes with GitHub token authentication and - trusted folder configuration. -keywords: docker sandboxes, github copilot, ai agent, github token, sbx ---- - -This guide covers authentication, configuration, and usage of GitHub Copilot -in a sandboxed environment. - -Official documentation: [GitHub Copilot CLI](https://docs.github.com/en/copilot/how-tos/copilot-cli) - -## Quick start - -Create a sandbox and run Copilot for a project directory: - -```console -$ sbx run copilot ~/my-project -``` - -The workspace parameter is optional and defaults to the current directory: - -```console -$ cd ~/my-project -$ sbx run copilot -``` - -## Authentication - -Copilot requires a GitHub token with Copilot access. Store your token using -[stored secrets](../configuration/credentials.md#stored-secrets): - -```console -$ sbx secret set github --command 'gh auth token' -``` - -## Configuration - -Sandboxes don't pick up user-level configuration from your host. Only -project-level configuration in the working directory is available inside the -sandbox. See -[Why doesn't the sandbox use my user-level agent configuration?](../faq.md#why-doesnt-the-sandbox-use-my-user-level-agent-configuration) -for workarounds. - -Copilot is configured to trust the workspace directory by default, so it -operates without repeated confirmations for workspace files. - -### Default startup command - -Without extra args, the sandbox runs: - -```text -copilot --yolo -``` - -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" -``` - -When the first argument is a bare word — a subcommand or prompt — it replaces -the defaults instead. - -## Base image - -Template: `docker/sandbox-templates:copilot` - -Preconfigured to trust the workspace directory. - -See [Customize](../customize/) to pre-install tools or customize this -environment. diff --git a/content/manuals/ai/sandboxes/agents/devin.md b/content/manuals/ai/sandboxes/agents/devin.md new file mode 100644 index 00000000000..18c2f7cb0b2 --- /dev/null +++ b/content/manuals/ai/sandboxes/agents/devin.md @@ -0,0 +1,55 @@ +--- +title: Devin +weight: 45 +description: Use Devin CLI in Docker Sandboxes with reusable, proxy-managed authentication. +keywords: docker sandboxes, devin, cognition, ai agent, sbx +--- + +Official documentation: [Devin CLI](https://docs.devin.ai/work-with-devin/devin-cli) + +## Quick start + +Create a sandbox and run Devin for a project directory: + +```console +$ sbx run devin ~/my-project +``` + +The workspace parameter is optional and defaults to the current directory: + +```console +$ cd ~/my-project +$ sbx run devin +``` + +## Authentication + +On first run, Devin prompts you to sign in interactively inside the sandbox. +After you sign in, Docker Sandboxes manages the reusable credential on the host +and supplies it to future Devin sandboxes through the proxy. + +## Configuration + +Sandboxes don't pick up user-level Devin configuration from your host. Only +project-level configuration in the working directory is available inside the +sandbox. See +[Why doesn't the sandbox use my user-level agent configuration?](../faq.md#why-doesnt-the-sandbox-use-my-user-level-agent-configuration) +for workarounds. + +Devin reads `AGENTS.md` from the workspace for agent-specific instructions and +uses the [shared agent skills](../workflows/agent-skills.md) store. + +### Default startup command + +Without extra args, the sandbox runs: + +```text +devin --permission-mode dangerous --respect-workspace-trust=false +``` + +## Base image + +Template: `docker/sandbox-templates:devin-docker` + +See [Customize](../customize/) to pre-install tools or customize this +environment. diff --git a/content/manuals/ai/sandboxes/agents/droid.md b/content/manuals/ai/sandboxes/agents/droid.md deleted file mode 100644 index 40bfaddb74c..00000000000 --- a/content/manuals/ai/sandboxes/agents/droid.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Droid -weight: 60 -description: | - Use Droid in Docker Sandboxes with API key or OAuth authentication. -keywords: docker sandboxes, droid, factory, ai agent, sbx ---- - -This guide covers authentication, configuration, and usage of Droid, an AI -coding agent by Factory, in a sandboxed environment. - -Official documentation: [Droid](https://docs.factory.ai/) - -## Quick start - -Create a sandbox and run Droid for a project directory: - -```console -$ sbx run droid ~/my-project -``` - -The workspace parameter is optional and defaults to the current directory: - -```console -$ cd ~/my-project -$ sbx run droid -``` - -## Authentication - -Droid requires a [Factory account](https://factory.ai). Both authentication -methods authenticate you to Factory's service directly — unlike other agents -where you supply a model provider key, Factory manages model access through -your Factory account. - -**API key**: Store your Factory API key using -[stored secrets](../configuration/credentials.md#stored-secrets): - -```console -$ sbx secret set droid -``` - -**OAuth**: If no API key is set, Droid prompts you to authenticate -interactively on first run. The proxy handles the OAuth flow, so credentials -aren't stored inside the sandbox. - -## Configuration - -Sandboxes don't pick up user-level configuration from your host. Only -project-level configuration in the working directory is available inside the -sandbox. See -[Why doesn't the sandbox use my user-level agent configuration?](../faq.md#why-doesnt-the-sandbox-use-my-user-level-agent-configuration) -for workarounds. - -### Default startup command - -The sandbox runs `droid` with no implicit flags. Args after `--` are passed -straight through: - -```console -$ sbx run droid -- exec "fix the build" -``` - -## Base image - -Template: `docker/sandbox-templates:droid-docker` - -Preconfigured to run without approval prompts. Authentication state is -persisted across sandbox restarts. - -See [Customize](../customize/) to pre-install tools or customize this -environment. diff --git a/content/manuals/ai/sandboxes/agents/kiro.md b/content/manuals/ai/sandboxes/agents/kiro.md deleted file mode 100644 index b9d7bc6940a..00000000000 --- a/content/manuals/ai/sandboxes/agents/kiro.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: Kiro -weight: 80 -description: | - Use Kiro in Docker Sandboxes with device flow authentication for interactive - AI-assisted development. -keywords: docker sandboxes, kiro, ai agent, authentication, sbx ---- - -This guide covers authentication, configuration, and usage of Kiro in a -sandboxed environment. - -Official documentation: [Kiro CLI](https://kiro.dev/docs/cli/) - -## Quick start - -Create a sandbox and run Kiro for a project directory: - -```console -$ sbx run kiro ~/my-project -``` - -The workspace parameter is optional and defaults to the current directory: - -```console -$ cd ~/my-project -$ sbx run kiro -``` - -On first run, Kiro prompts you to authenticate using device flow. - -## Authentication - -Kiro uses device flow authentication, which requires interactive login through -a web browser. This method provides secure authentication without storing API -keys directly. - -### Device flow login - -When you first run Kiro, it prompts you to authenticate: - -1. Kiro displays a URL and a verification code -2. Open the URL in your web browser -3. Enter the verification code -4. Complete the authentication flow in your browser -5. Return to the terminal - Kiro proceeds automatically - -The authentication session is persisted in the sandbox and doesn't require -repeated login unless you destroy and recreate the sandbox. - -### Manual login - -You can trigger the login flow manually: - -```console -$ sbx run kiro --name -- login --use-device-flow -``` - -This command initiates device flow authentication without starting a coding -session. - -### Authentication persistence - -Kiro stores authentication state in `~/.local/share/kiro-cli/data.sqlite3` -inside the sandbox. This database persists as long as the sandbox exists. If -you destroy the sandbox, you'll need to authenticate again when you recreate -it. - -## Configuration - -Sandboxes don't pick up user-level configuration from your host. Only -project-level configuration in the working directory is available inside the -sandbox. See -[Why doesn't the sandbox use my user-level agent configuration?](../faq.md#why-doesnt-the-sandbox-use-my-user-level-agent-configuration) -for workarounds. - -Kiro requires minimal configuration. The agent runs with trust-all-tools mode -by default, which lets it execute commands without repeated approval prompts. - -### Default startup command - -Without extra args, the sandbox runs: - -```text -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 -`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: - -```console -$ sbx run kiro -- chat --trust-all-tools --resume -``` - -## Base image - -Template: `docker/sandbox-templates:kiro` - -Authentication state is persisted across sandbox restarts. - -See [Customize](../customize/) to pre-install tools or customize this -environment. diff --git a/content/manuals/ai/sandboxes/customize/kits.md b/content/manuals/ai/sandboxes/customize/kits.md index 92e5bef2bf8..1174602afa3 100644 --- a/content/manuals/ai/sandboxes/customize/kits.md +++ b/content/manuals/ai/sandboxes/customize/kits.md @@ -111,10 +111,9 @@ file removes. In this table, `~` is `/home/agent`. | ------------------ | --------------------------- | | `claude` | `~/.claude.json`, `~/.claude/settings.json`, `~/.claude/.config.json` | | `codex` | `~/.codex/config.toml` | -| `copilot` | `~/.copilot/config.json` | | `cursor` | `~/.cursor/cli-config.json` | +| `devin` | `~/.config/devin/config.json`, `~/.config/devin/mcp_config.json` | | `gemini` | `~/.gemini/settings.json` | -| `kiro` | `~/.kiro/settings/mcp.json` | | `opencode` | `~/.config/opencode/opencode.json` | Use a separate settings layer when the agent supports one. For example, Claude diff --git a/content/manuals/ai/sandboxes/customize/templates.md b/content/manuals/ai/sandboxes/customize/templates.md index 72bcade5d94..195090f1b8f 100644 --- a/content/manuals/ai/sandboxes/customize/templates.md +++ b/content/manuals/ai/sandboxes/customize/templates.md @@ -43,12 +43,10 @@ CLI, and common development tools like Node.js, Python, Go, and Java. | `claude-code` | [Claude Code](https://claude.ai/download) | | `claude-code-minimal` | Claude Code with a minimal toolset (no Node.js, Python, Go, or Java) | | `codex` | [OpenAI Codex](https://github.com/openai/codex) | -| `copilot` | [GitHub Copilot](https://github.com/github/copilot-cli) | | `cursor-agent` | [Cursor](https://cursor.com/cli) | +| `devin` | [Devin CLI](https://docs.devin.ai/work-with-devin/devin-cli) | | `docker-agent` | [Docker Agent](https://github.com/docker/docker-agent) | -| `droid` | [Droid](https://www.factory.ai) | | `gemini` | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | -| `kiro` | [Kiro](https://kiro.dev) | | `opencode` | [OpenCode](https://opencode.ai) | | `shell` | No agent pre-installed. Use for manual agent setup. | diff --git a/content/manuals/ai/sandboxes/mcp-gateway.md b/content/manuals/ai/sandboxes/mcp-gateway.md index 81ef547e8e6..19150585713 100644 --- a/content/manuals/ai/sandboxes/mcp-gateway.md +++ b/content/manuals/ai/sandboxes/mcp-gateway.md @@ -26,7 +26,7 @@ loading, live updates, and organization governance. - Sign in with `sbx login`. - Use an agent integration that configures MCP at startup: Claude Code, Codex, - Gemini, Kiro, or OpenCode. + Devin, Gemini, or OpenCode. - For remote servers that require OAuth without Dynamic Client Registration, register an OAuth client with the server provider. - For `--local --url` registrations that resolve to OCI packages, use a host diff --git a/content/manuals/ai/sandboxes/workflows/agent-skills.md b/content/manuals/ai/sandboxes/workflows/agent-skills.md index 8efaf6069e1..31ae4adcac8 100644 --- a/content/manuals/ai/sandboxes/workflows/agent-skills.md +++ b/content/manuals/ai/sandboxes/workflows/agent-skills.md @@ -3,7 +3,7 @@ title: Share agent skills linkTitle: Agent skills weight: 40 description: Import skills from supported host agents into a persistent store shared with Docker Sandboxes. -keywords: docker sandboxes, sbx, agent skills, shared skills, claude code, codex, copilot, cursor, droid +keywords: docker sandboxes, sbx, agent skills, shared skills, claude code, codex, copilot, cursor, devin, droid --- Shared agent skills make skills from supported agents on your host available @@ -27,7 +27,7 @@ store at the path the agent reads inside the sandbox. | Agent | Host source | Sandbox mount target | | ----------- | ------------------- | ----------------------------- | | Claude Code | `~/.claude/skills` | `/home/agent/.claude/skills` | -| Codex | `~/.agents/skills` | `/home/agent/.agents/skills` | +| Codex and Devin | `~/.agents/skills` | `/home/agent/.agents/skills` | | Copilot | `~/.copilot/skills` | `/home/agent/.copilot/skills` | | Cursor | `~/.cursor/skills` | `/home/agent/.cursor/skills` | | Droid | `~/.factory/skills` | `/home/agent/.factory/skills` |