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.
makeThis will build the cu binary but NOT install it to your $PATH. If you want to build and install the binary into your $PATH, run:
make install && hash -rThe make install command will put cu in your $PATH. In order to use it, you will need to restart your terminal or run hash -r to refresh your $PATH (or equivalent for your shell).
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 cu> 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.mdAdd this to ~/.config/goose/config.yaml:
extensions:
container-use:
name: container-use
type: stdio
enabled: true
cmd: cu
args:
- stdio
envs: []curl --create-dirs -o .cursor/rules/container-use.mdc https://raw.githubusercontent.com/dagger/container-use/main/rules/cursor.mdccurl --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 | claudeRun with goose
goose run -i ./examples/hello_world.md -sYour 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:
cu watch
