Open Source · Apache 2.0 · ★ GitHub · Releases · ·
DevCell is a local-first sandbox for AI coding agents. Run Claude Code,
Codex, OpenCode, or Gemini inside an isolated cell. Agents write, delete,
and install freely. Your host is untouched.
No account. No API key with Max/Pro. brew install and go.
"Run this in a container, not your actual machine."
— Anthropic, Claude Code documentation
Claude Code · Opus 4.6 · Claude Max /myproject
Getting started
brew install devcell-sh/tap/devcell. Requires docker.
Platforms: macOS, Linux.
cd my-project && devcell claude. First run scaffolds config and builds. Works with devcell codex, devcell opencode, and devcell gemini too. Claude Max, Pro, and API keys all work — it's the client you already use, inside the cell.
Features
Every devcell <agent> runs inside an isolated cell. SSH keys, other repos, and host credentials are unreachable. The container is the guardrail, not the approval loop.
devcell claude --solitary denies all outbound traffic except allow-listed domains. The agent cannot phone home, push to the wrong remote, or exfiltrate tokens.
brew install devcell-sh/tap/devcell, cd your-project, devcell claude. No Docker Hub login, no cloud dashboard, no API key required with Claude Max/Pro.
You don't install MCP servers; they come ready. The backing tools ship too: the agent can run tofu plan or edit PCBs because OpenTofu and KiCad are installed, not just their MCP servers. 11 servers, each pinned to a commit hash.
Linux container (Docker), macOS VM (Tart), Windows VM (winkit)e. Same commands, same config. Pick the guest with --os and the engine follows.
CLAUDE.md, hooks, skills, and MCP config mount into the cell. Your project-level setup works unchanged. 1Password secrets inject at runtime on a RAM-only tmpfs, gone when the cell stops.
~/.ssh, ~/.aws, your real home: unreachable. Docker by default. When your threat model demands a real kernel boundary, --engine tart runs the same cell in a VM.
DevCell starts and controls
Docker container. Zero config. Starts in seconds.
devcell claude
Tart VM. Full macOS guest.
devcell claude --os macos Same commands, same config, same toolchain. DevCell provisions the environment, mounts your project, and launches the agent. Pick the guest with --os.
Comparison
| DevCell | Docker Sandboxes | Daytona | Microsandbox | Raw docker run | |
|---|---|---|---|---|---|
| Host isolation | container, VM | microVM | container | libkrun | manual |
| Account / login required | no | yes | yes | no | no |
| Claude Max/Pro (no API key) | yes | documented, broken | no | no | manual |
| CLAUDE.md + hooks preserved | yes | no | no | no | manual |
| MCP servers + backing tools | yes, auto-config | catalog (manual) | no | own MCP | manual |
| macOS + Windows VMse | yes | no | no | no | no |
| Egress lockdown | yes | yes | yes | yes | manual |
| Local-first | yes | yes | cloud only | yes | yes |
| Credential brokering | not yet | yes (proxy) | yes (API) | yes | manual |
| Snapshot / restore | not yet | not yet | yes | yes | no |
Use Docker Sandboxes for microVM isolation. Use Daytona for ephemeral cloud sandboxes with an SDK. Use Microsandbox for libkrun microVMs. Use DevCell when the agent needs full auto-approve with your toolchain and Claude setup intact, and no account or cloud dependency.
What's inside
Every cell anchors to one devcell.toml. Each stack ships only what its
MCP servers need — Playwright cells have Chromium, IaC cells have OpenTofu, GUI cells
have a display server. Start with base (~1.3 GB), adopt more when the work needs it.
First run scaffolds devcell.toml and builds the default stack. Change it
anytime in the config, and the agent can install whatever else the project needs.
Everything in the image is defined in devcell-sh/home —
read it, fork it, or reuse the modules standalone. Drop a .tool-versions for runtime
versions, extend a stack with nix overlays. Upstream updates still merge cleanly.
| base | ultimate | bbb | electronics | |
|---|---|---|---|---|
| Dev essentials | ✓ | ✓ | ✓ | ✓ |
| Go + Node + Python | — | ✓ | ✓ | — |
| Infra tools | — | ✓ | ✓ | — |
| Browser + sessions | — | ✓* | ✓* | — |
| GUI desktop | — | ✓ | ✓ | ✓ |
| Security / RE | — | — | ✓ | — |
| Electronics | — | — | — | ✓ |
| 11 MCP servers with backing tools | — | ✓ | ✓ | ✓ |
* Headless only. GUI desktop (VNC/RDP) ships in the ultimate stack; other stacks add it via modules.
Need a different mix? Set stack and modules in devcell.toml. Multi-arch (amd64/arm64), published to ghcr.io/devcell-sh/devcell.
Common questions
Bring your own license or model. Claude Max, Pro, and API keys all work — DevCell starts the same client you already use, just inside a container. Same goes for Codex, OpenCode, and Gemini.
You can — the afternoon is the demo; the maintenance is the product. A hand-rolled container needs MCP wiring, backing apps, a display server, secrets handling, UID mapping, and per-agent flags — and needs them again after every client update. Everything DevCell ships is defined in the open devcell-sh/home modules: read them, fork them, or reuse them standalone if you'd rather keep your own setup.
Docker Sandboxes use microVMs for stronger isolation and integrate with the Docker ecosystem. DevCell is local-first with no account required, preserves your CLAUDE.md and hooks, ships MCP servers with their backing tools pre-installed, and supports macOS and Windows VMse. Docker Sandboxes require a Docker account and drop your Claude config.
Yes. The agent can run apt, npm install, pip install, nix — whatever the project needs. Network access is unrestricted by default. devcell claude --solitary locks down egress to allow-listed domains only. Port forwarding and extra volume mounts are configurable in devcell.toml.
Your project-level config (CLAUDE.md, .claude/) is mounted with your project. Host ~/.claude/skills is mounted read-write, the rest of ~/.claude is read-only. Your host-machine config stays safe.
Base is ~1.3 GB and builds in under 2 minutes; ultimate is ~20 GB. First run builds the default stack. No Docker? --os macos provisions the same cell as a VM (tart, Apple Silicon) — same toolchain, same commands.