Skip to content
aicagePublic

About

Give coding agents your project files, not your whole computer.

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Repository files navigation

aicage

Give coding agents your project files, not your whole computer.

aicage runs AI coding agents in containers while you work on the same local project files.

Why use aicage?

Agents need deep access (read code, run commands, install dependencies). Their built-in safety checks are naturally limited.

Running agents in containers gives a hard boundary – with aicage the experience stays the same.

  • Work with the same project files as the agent
  • Configure shared folders, agent images, and runtime options
  • Same paths and user inside the container1
  • Pre-built and tested images
  • Automatic updates for agents and images

See Why cage agents? for the full rationale.

Built-in agents

Use one of these builtin CLI agents or add your own.

Amp CLI · amp Auggie CLI · auggie Claude Code · claude
Codex CLI · codex GitHub Copilot CLI · copilot Factory CLI · droid
Goose CLI · goose Kiro CLI · kiro-cli OpenCode · opencode
Qwen Code · qwen Mistral Vibe CLI · vibe

Quick start

Install:

pipx install aicage

First run

In your project directory, start the agent you want to use:

aicage <agent>

Accept the setup choices, then sign in or confirm that the agent is already signed in.

  • Prefer file-based credential storage or API keys; keyring-based auth does not work.
  • If sign-in fails, sign in with the agent on the host, then try again.

Use aicage in your IDE

Use your agent in your IDE while Aicage runs it in a Docker container.

IDE Configuration examples

Add the configuration for your IDE, plugin and agent from these example configuration files:

IDE Plugin Linux / macOS Windows
VS Code ACP Client ~/.config/Code/User/settings.json %APPDATA%\Code\User\settings.json
JetBrains AI Assistant ~/.jetbrains/acp.json %USERPROFILE%.jetbrains\acp.json
  1. Install the IDE plugin
  2. Configuration
    • Visual Studio Code: In the plugin settings, add your agent’s config into the settings.json.
    • JetBrains IDE: In the plugin’s settings add your agent as a custom ACP agent. Replace /path/to/aicage with the full path to aicage.

ACP Bridge for Amp, Claude, and Codex

These agents need one additional ACP bridge. Install the bridge for the agent you use:

# Run only the command for your agent.
npm install -g amp-acp
npm install -g @agentclientprotocol/claude-agent-acp
npm install -g @agentclientprotocol/codex-acp

For JetBrains IDEs, replace the bridge's /path/to/... in the plugin settings with its full path.

Change a project's setup

Run aicage <agent> from the project directory to change the agent's container setup. Your IDE uses the saved project configuration.

Configuration menu

After aicage <agent> starts, you will see this setup overview:

Overview screen

  • Configuration Scope: use Global or Directory tree to reuse settings.
  • Bind Mounts: extra host files and directories the container should be able to access.
  • Extensions: optional local additions that install tools or request extra host shares.
  • Docker Args: extra docker run arguments such as -e, -p, or --network.
  • Base: the base image used for the agent image. The suggested default is best for most users.
  • Docker socket: lets the agent use Docker on the host when you explicitly enable it.
  • OK: saves the current project config for that agent and starts the container.

Common project changes

Bind mounts

Use Bind Mounts when the agent needs access to files or directories outside the project.

Docker args

To adjust how the container starts, open Docker Args in the setup screen.

Docker args

Use it for normal docker run arguments such as:

-e FOO=bar
-p 3000:3000
--network my-net

See Docker run pass-through args.

Extensions

Extensions let you add tools on top of an existing agent image. Quick start:

Extensions

git clone https://github.com/aicage/aicage-custom-samples.git $HOME/.aicage-custom

Then rerun aicage <agent> and select the extension in the setup screen. See Extensions.

Docker socket access

If you want the agent to run Docker commands, enable Docker socket in the setup screen.

Full documentation

The complete user documentation lives in the aicage.wiki.

Common scenarios

  • First-use setup issues:
  • On Windows:
    • Set git config --global core.autocrlf true on the Windows host to avoid line-ending diffs.
  • Pass arguments to the agent:
    • aicage <agent> resume <session-id>
  • Share additional host folders:
    • Use Shares or extension-provided shares in the setup UI.
  • Use proxies:
    • aicage forwards HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, and NO_PROXY.
    • See CLI options.
  • Use host networking or custom networks:
  • On macOS with native Docker:
  • Add custom tools, agents, or base images:

Customization

aicage lets you customize images at three levels:

  • extensions: Add software and shared files/folders
  • agents: Add other agents
  • base images: Custom agent environments

The sample repo is a fast way to see working examples and copy a template.

Quick start:

git clone https://github.com/aicage/aicage-custom-samples.git $HOME/.aicage-custom

Then run any agent:

aicage <agent>

These are only samples. Use them to learn the structure, then replace or edit them with your own definitions. aicage detects whatever you place under ~/.aicage-custom and offers it during selection.

Extensions can install tools and request additional host mounts.

After adding or changing custom definitions, restart aicage.

Image updates are handled automatically; see Updates.

Why cage agents?

You should not have to choose between approving every small step and giving an agent access to your whole computer.

Agent restrictions and approval prompts get in the way of real work. But turning them off gives the agent access to everything your user account can read or change, far beyond the project.

aicage gives the agent a container with your project files and only the extra access you choose. The rest of your computer stays out of reach.

Footnotes

  1. On Windows, run aicage from WSL for matching paths and user. Native Windows paths are mounted under /mnt/<drive> and the container runs as root. ↩

About

Give coding agents your project files, not your whole computer.

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages