Skip to content
MCP Shelf

Container Use

View on GitHub

Each coding agent gets its own container and git branch, so several can work at once.

  • Needs your setup first
  • ★ 4.1K GitHub stars
  • Last commit 21 Sept 2026

At a glance

Container Use comes from Dagger, the team behind the CI engine. Instead of letting an agent edit your working copy directly, each task runs in a fresh container on its own git branch. You can run several agents side by side, read the full log of commands each one ran, open a terminal inside an agent's environment when it gets stuck, and review the result with an ordinary git checkout.

It is a command line tool that also speaks MCP, and Dagger still marks it experimental. It needs Docker or another container runtime that Dagger supports.

Made by
Dagger (dagger/container-use)
GitHub stars
4.1K
Last commit
21 Sept 2026
Tools
15
Runs on
Your computer

Our check: It needs something our Linux test machine does not have (an account, a desktop app, a Mac or a running service), so on 27 Oct 2026 we read its tools from the source code instead of running this config.

What's in the pod: its tools

We found 15 tools in its source code on 27 Oct 2026. 0 only read. The rest can change things, so keep your app's "ask before each tool call" setting on for them.

How we tested it: Read from the Go source on the main branch. Container Use ships as a compiled binary that needs Docker and Dagger, which our test machine could not run.

Runs commands1 tool · Can start programs or run code.

ToolWhat it is for
environment_run_cmdRuns a shell command in a fresh container inside the environment, in the background if needed, and can expose ports.

Changes things14 tools · Can create, edit, send or delete.

ToolWhat it is for
environment_add_serviceAdds a side container, such as a database or a cache, that the environment can reach.
environment_checkpointSaves the environment's current state as a container image.
environment_configChanges the base image and setup commands for an environment.
environment_createStarts a new environment from your repository: a container plus its own git branch, built from a base image and your setup commands.
environment_diffShows everything the agent changed since the environment was created, as one diff.
environment_file_deleteDeletes a file in the environment.
environment_file_editReplaces a piece of text in a file in the environment.
environment_file_listLists a folder in the environment.
environment_file_readReads a file in the environment, whole or by line range.
environment_file_writeWrites a whole file in the environment.
environment_listLists the environments that exist for the repository.
environment_logShows the commits the agent made and the commands it ran.
environment_openReopens an environment created earlier.
environment_update_metadataChanges an environment's title, the note that says what work it holds.

Grouped and described by us. The README on GitHub lists the inputs each tool takes.

Set it up

  1. Install the CLI: brew install dagger/tap/container-use on macOS, or the install script from the repository on Linux.
  2. In Claude Code, from your repository: claude mcp add container-use -- container-use stdio. Other clients use the config below.
  3. Optional: append the project's agent rules file to your CLAUDE.md or AGENTS.md so the agent always works inside an environment.

Pick your app for the exact snippet and where it goes.

Where it goes: claude_desktop_config.json (Settings → Developer → Edit Config)

Claude Desktop
{
  "mcpServers": {
    "container-use": {
      "command": "container-use",
      "args": [
        "stdio"
      ]
    }
  }
}

The shorter cu command works too: cu stdio.

New to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.

Settings

Names are exactly as the project spells them. Required ones are marked.

SettingWhat it does
cu config base-image setConfigThe container image new environments start from.cu config base-image set python:3.12
cu config setup-command addConfigCommands that run when an environment is built, such as installing system packages.cu config setup-command add "apt-get install -y postgresql-client"
cu config env setConfigEnvironment variables available inside every environment.
cu log / cu diffCommand line flagShow an environment's history or changes from your own terminal.
cu terminalCommand line flagOpens a shell inside an agent's environment so you can look around or take over.
cu checkout / cu apply / cu mergeCommand line flagBring an environment's work into your repository: switch to its branch, stage its changes, or merge it.

What it can touch

It can read

  • Your git repository, which it copies into each environment

It can change

  • Files inside environment containers, never your working copy directly
  • New git branches for each environment
  • Containers and images on your machine, through Docker

Safer setup: That is the point of the tool: the agent works in containers on separate branches, and nothing reaches your branch until you run cu apply or cu merge.

Before you start

  • macOS or Linux (Windows is not supported)
  • Docker (or another runtime Dagger supports)
  • git

If it does not work

Creating an environment fails straight away
Docker (or another runtime Dagger supports) must be running. Container Use reports Docker errors with the fix.
The agent edits your files directly instead
Add the project's agent rules file to CLAUDE.md or AGENTS.md, and turn off the client's own file and shell tools for that session.
Every environment reinstalls the same packages
Move the installs into cu config setup-command so they are part of the environment's build.
A service the agent started is not reachable
Ask it to expose the port in environment_run_cmd; the result gives the address to open.

Peas in a pod: similar servers

How Container Use lines up against other agent helpers and desktop control servers on the shelf.

ServerToolsRuns onLicenceStars
Container Use15Your computer–4.1K
Sequential Thinking1Your computer–91.6K
Windows-MCP21Your computerMIT10.4K
Mobile MCP34Your computerApache-2.010K

Questions

Which agents does it work with?

Any MCP client that can start a command: Claude Code, Cursor, Goose, VS Code, Codex and others.

Is it stable?

Dagger labels it experimental and it changes between releases. It works, but expect rough edges.

Does it run on Windows?

No. Its installer refuses Windows because the tool relies on Unix system calls; use macOS or Linux.

Is it free?

Yes, Apache-2.0.

Full docs on GitHubdagger/container-use

Something wrong on this page? Tell us.

More in Agent helpers and desktop control