Container Use lets each of your coding agents have their own containerized environment. Go from babysitting one agent at a time to enabling multiple agents to work safely and independently with your preferred stack.
It's an open-source MCP server that works as a CLI tool with Claude Code, Cursor, and other MCP-compatible agents.
- 📦 Isolated Environments: Each agent gets a fresh container in its own git branch - run multiple agents without conflicts, experiment safely, discard failures instantly.
- 👀 Real-time Visibility: See complete command history and logs of what agents actually did, not just what they claim.
- 🚁 Direct Intervention: Drop into any agent's terminal to see their state and take control when they get stuck.
- 🎮 Environment Control: Standard git workflow - just
git checkout <branch_name>
to review any agent's work. - 🌎 Universal Compatibility: Works with any agent, model, or infrastructure - no vendor lock-in.
🦺 This project is in early development and actively evolving. Expect rough edges, breaking changes, and incomplete documentation - but also expect rapid iteration and responsiveness to feedback.
make
Make sure to put container-use
in your $PATH
Enabling container-use
requires 2 steps:
- Adding an MCP configuration for
container-use
- (Optional) Adding a rule so the agent uses containarized environments.
# Add the container-use MCP
npx @anthropic-ai/claude-code mcp add container-use -- <path to container-use> stdio
# Save the CLAUDE.md file at the root of the repository. Alternatively, merge the instructions into your own CLAUDE.md.
curl -o CLAUDE.md https://raw.githubusercontent.com/dagger/container-use/main/rules/agent.md
Add this to ~/.config/goose/config.yaml
:
extensions:
container-use:
name: container-use
type: stdio
enabled: true
cmd: container-use
args:
- stdio
envs: []
curl --create-dirs -o .cursor/rules/container-use.mdc https://raw.githubusercontent.com/dagger/container-use/main/rules/cursor.mdc
curl --create-dirs -o .github/copilot-instructions.md https://raw.githubusercontent.com/dagger/container-use/main/rules/agent.md
Example | Description |
---|---|
hello_world.md | Creates a simple app and runs it, accessible via localhost HTTP URL |
parallel.md | Creates and serves two variations of a hello world app (Flask and FastAPI) on different URLs |
security.md | Security scanning example that checks for updates/vulnerabilities in the repository, applies updates, verifies builds still work, and generates patch file |
Run with Claude Code
cat ./examples/hello_world.md | claude
Run with goose
goose run -i ./examples/hello_world.md -s
Your agents will automatically commit to a container-use remote on your local filesystem. You can watch the progress of your agents in real time by running:
container-use watch