sbx: add droid agent

Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
This commit is contained in:
David Karlsson committed 2026-04-20 17:28:32 +02:00
1 parent fd27751cae
commit f2eccfe389
7 files changed
+133 -2

No files matched your search

@@ -12,6 +12,7 @@ Docker Sandboxes runs the following agents out of the box:
- [Claude Code](claude-code/)
- [Codex](codex/)
- [Copilot](copilot/)
- [Droid](droid/)
- [Gemini](gemini/)
- [Kiro](kiro/)
- [OpenCode](opencode/)
@@ -79,6 +79,7 @@ CLI, and common development tools like Node.js, Python, Go, and Java.
| `codex` | [OpenAI Codex](https://github.com/openai/codex) |
| `copilot` | [GitHub Copilot](https://github.com/github/copilot-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) |
@@ -0,0 +1,75 @@
---
title: Droid
weight: 35
description: |
Use Droid in Docker Sandboxes with API key or OAuth authentication.
---
{{< summary-bar feature_name="Docker Sandboxes 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](../security/credentials.md#stored-secrets):
```console
$ sbx secret set -g droid
```
Alternatively, export the `FACTORY_API_KEY` environment variable in your shell
before running the sandbox. See
[Credentials](../security/credentials.md) for details on both methods.
**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.
The sandbox runs Droid without approval prompts by default. Pass additional
`droid` CLI options after `--`:
```console
$ sbx run droid --name <sandbox-name> -- <droid-options>
```
## Base image
Template: `docker/sandbox-templates:droid-docker`
Preconfigured to run without approval prompts. Authentication state is
persisted across sandbox restarts.
See [Custom environments](custom-environments.md) to pre-install tools or
customize this environment.
+1
View File
@@ -54,6 +54,7 @@ see_also:
- sbx create codex - Create a sandbox for codex
- sbx create copilot - Create a sandbox for copilot
- sbx create docker-agent - Create a sandbox for docker-agent
- sbx create droid - Create a sandbox for droid
- sbx create gemini - Create a sandbox for gemini
- sbx create kiro - Create a sandbox for kiro
- sbx create opencode - Create a sandbox for opencode
+53
View File
@@ -0,0 +1,53 @@
name: sbx create droid
synopsis: Create a sandbox for droid
description: |-
Create a sandbox with access to a host workspace for droid.
The workspace path is required and will be mounted inside the sandbox at the
same path as on the host. Additional workspaces can be provided as extra
arguments. Append ":ro" to mount them read-only.
Use "sbx run SANDBOX" to attach to the agent after creation.
usage: sbx create droid PATH [PATH...] [flags]
options:
- name: help
shorthand: h
default_value: "false"
usage: help for droid
inherited_options:
- name: branch
usage: Create a Git worktree on the given branch
- name: cpus
default_value: "0"
usage: |
Number of CPUs to allocate to the sandbox (0 = auto: N-1 host CPUs, min 1)
- name: debug
shorthand: D
default_value: "false"
usage: Enable debug logging
- name: memory
shorthand: m
usage: |
Memory limit in binary units (e.g., 1024m, 8g). Default: 50% of host memory, max 32 GiB
- name: name
usage: |
Name for the sandbox (default: <agent>-<workdir>, letters, numbers, hyphens, periods, plus signs and minus signs only)
- name: quiet
shorthand: q
default_value: "false"
usage: Suppress verbose output
- name: template
shorthand: t
usage: |
Container image to use for the sandbox (default: agent-specific image)
example: |4-
# Create in the current directory
sbx create droid .
# Create with a specific path
sbx create droid /path/to/project
# Create with additional read-only workspaces
sbx create droid . /path/to/docs:ro
see_also:
- sbx create - Create a sandbox for an agent
+1 -1
View File
@@ -8,7 +8,7 @@ description: |-
To create a sandbox without attaching, use "sbx create" instead.
Available agents: claude, codex, copilot, docker-agent, gemini, kiro, opencode, shell
Available agents: claude, codex, copilot, docker-agent, droid, gemini, kiro, opencode, shell
usage: sbx run [flags] SANDBOX | AGENT [PATH...] [-- AGENT_ARGS...]
options:
- name: branch
+1 -1
View File
@@ -3,7 +3,7 @@ synopsis: Create or update a secret
description: |-
Create or update a secret for a service.
Available services: anthropic, aws, github, google, groq, mistral, nebius, openai, xai
Available services: anthropic, aws, droid, github, google, groq, mistral, nebius, openai, xai
When no arguments are provided, an interactive prompt guides you through
scope and service selection.