Skip to main content

agent-box

agent-box

Management layer for organizing and running AI agent combinations. Keep model, agent framework, and configuration together as reusable profiles — isolated, parallel, and framework-agnostic.

English | 简体中文

License: MIT Python 3.9+ v1.0.0


What is an Agent?

When the community discusses AI coding agents, the conversation often centers on one dimension: the model (Claude, GPT-4, DeepSeek) or the agent framework (Claude Code, Codex, OpenCode).

In practice, an agent's behavior emerges from three layers working together:

Layer Examples
Model Claude, GPT-4, DeepSeek, MiniMax
Agent Framework Claude Code, Codex, Hermes, OpenCode
Configuration CLAUDE.md, permissions, hooks, MCP servers, tools, history

Different tasks call for different combinations. An architecture agent might use Claude with Claude Code and a restrictive permission set; a research agent might use a different model, a different framework, and an entirely different config stack. Coding, reviewing, debugging — each benefits from its own combination.

agent-box does not provide any of these layers. It does not ship a model, an agent framework, or a prompt library. What it provides is a way to organize, isolate, manage, and reuse the combinations you create.


Why agent-box?

When you work with multiple agent combinations, things get messy fast. Each combination needs its own:

  • System prompt (CLAUDE.md or equivalent)
  • Permissions (read-only vs. full access, tool allowlists)
  • Hooks (pre-commit validators, post-response actions)
  • MCP servers (different tools for different roles)
  • Conversation history (context shouldn't leak between tasks)

These configurations are easy to mix up. A reviewer accidentally running with edit permissions. A researcher's verbose hooks polluting a coding session. Conversation context bleeding from one task to another.

agent-box wraps each combination into an isolated profile. Each profile is its own directory on disk — plain JSON, YAML, and Markdown files. Launch a profile and the agent runs in a private namespace where only that profile's configuration is visible. The agent cannot see or affect anything outside.

  • Reusable — create a profile once, launch it whenever you need that role
  • Isolated — kernel-level bind-mounts keep configs from interfering
  • Parallel — run multiple profiles simultaneously on the same machine
agent-box create decision --type cc --preset decision-maker
agent-box create research --type cc --preset spec-writer
agent-box create reviewer  --type cc --preset blank

agent-box cc decision    # architecture + design decisions
agent-box cc research    # deep investigation
agent-box cc reviewer    # code review

Three combinations, three config stacks, three isolated histories. Same machine. Zero manual switching.


Installation

Windows (GUI + one-click installer)

Download the installer from GitHub Releases, run it, and you'll have a desktop shortcut, start menu entry, and uninstaller. Requires WSL2 (Ubuntu recommended).

The GUI does everything: manage profiles, edit configs, launch agents, check health — no terminal needed.

Linux / WSL (CLI)

# 1. System dependency
sudo apt install bubblewrap

# 2. Install agent-box
pip install agent-box-cli

# 3. Install your agents (at least one)
npm install -g @anthropic-ai/claude-code   # Claude Code
# and/or: npm install -g @openai/codex       # Codex
# and/or: pip install hermes-agent            # Hermes
# and/or: npm i -g @opencode-ai/opencode      # OpenCode

macOS users: bwrap is Linux-only. Use agent-box inside a Linux VM or WSL2. See docs/troubleshooting/desktop-launch.md.


Quick Start

Home Profiles

Profile Detail Library

GUI (Windows)

  1. Install from the latest release
  2. Click a profile → Launch — a terminal opens with your agent inside its isolated environment
  3. Use the tabs to edit settings, hooks, auth, and CLAUDE.md directly

CLI (Linux / WSL)

# Create a profile
agent-box create dev --type cc --preset python-dev

# Set your API key (opens profile config in $EDITOR)
agent-box edit dev
#  → edit settings.json and replace the placeholder API key

# Launch
agent-box cc dev

That's it. The agent runs in a bwrap namespace where ~/.claude/ IS your profile's config. Ctrl-C, terminal colors, and signals all work normally.


Features

🔒 Kernel-level isolation bwrap bind-mount replaces the agent's config directory at the VFS layer. No $HOME tricks — the agent CANNOT see the host's real config.
🎛 Multi-agent Claude Code, Codex, Hermes, OpenCode — same CLI, same profile tree, same launcher.
📦 Presets python-dev, decision-maker, spec-writer — one command to create a fully-configured profile with custom CLAUDE.md, hooks, and settings.
📜 Session tracking agent-box sessions logs every launch. Know what ran, when, how long, and whether it exited clean.
🪟 Windows GUI Manage profiles, edit raw config, track sessions — all from a desktop app. Dark/light themes.
⚡ Zero Python deps CLI: stdlib only. bwrap and agent CLIs are system deps, not Python deps.
📂 Filesystem-native Every profile is plain JSON/YAML/Markdown on disk. Edit with anything. No database for profile storage.

Framework-Agnostic

agent-box does not try to unify agent frameworks behind a common interface. Claude Code, Codex, Hermes, and OpenCode each have their own CLI conventions, their own config layout, and their own strengths. That diversity is intentional.

Different scenarios suit different frameworks. A quick refactor might work best in Codex; a deep architecture discussion might benefit from Claude Code's permission model; a research task might fit OpenCode's workflow. agent-box supports multiple frameworks not to make them look the same, but to make it easy to pick the right one for each profile — and to switch between them without reconfiguring everything from scratch.


Supported Agents

Agent CLI command Config directory
Claude Code agent-box cc <name> dot-claude/
Codex agent-box codex <name> dot-codex/
Hermes agent-box hermes <name> dot-hermes/
OpenCode agent-box opencode <name> dot-opencode/

How It Works

Host (real filesystem)          bwrap namespace (what the agent sees)
┌─────────────────────┐         ┌─────────────────────────────┐
│ ~/.claude/          │         │ ~/.claude/  ─────────────── │
│  (untouched)        │◄ ─ ─ ─ ┤   bind-mount from profile    │
│                     │         │                              │
│ ~/.agent-box/       │         │ • settings.json (yours)      │
│  profiles/dev/      │         │ • CLAUDE.md   (yours)        │
│   dot-claude/ ──────┘         │ • hooks/      (yours)        │
│   dot-claude.json ─────────── │ • credentials (yours)        │
│                               └─────────────────────────────┘
  • os.execvpe — the agent replaces our process in the same terminal
  • --share-net — API access works normally
  • --tmpfs /tmp — fresh temp space per session
  • PID/IPC/UTS namespaces — clean process isolation

→ Full details: docs/ARCHITECTURE.md


CLI Commands

Command What it does
agent-box create <name> --type cc | codex | hermes | opencode Create a new profile
agent-box list List all profiles
agent-box edit <name> Open profile config in $EDITOR
agent-box cc | codex | hermes | opencode <name> Launch a profile
agent-box presets List available presets
agent-box sessions View launch history
agent-box --version Print version

agent-box --help for the full reference.


Presets

Shipped presets jump-start a profile with a purpose-built CLAUDE.md:

Preset Use case
blank Clean slate — empty CLAUDE.md, template defaults
decision-maker Architecture + design decisions (V4 Pro style)
python-dev Python development with testing + linting habits
spec-writer Spec-first workflow; writes before coding
agent-box create planner --type cc --preset decision-maker
agent-box presets --type cc          # list all CC presets

Development

git clone https://github.com/mmm-05610/agent-box.git
cd agent-box
pip install -e .[dev,gui]
pytest -q                           # 53 tests, hermetic
cd gui-web && npm run build && cd ..  # build frontend
python gui-web/bridge.py --prod       # launch GUI from source

→ docs/ARCHITECTURE.md → docs/ROADMAP.md


License

MIT — see LICENSE.

Metadata

Release files for agent-box-cli 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agent-box-cli 1.0.0
File Size Uploaded Provenance
agent_box_cli-1.0.0.tar.gz 74.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-box-cli 1.0.0
File Interpreter ABI Platform
agent_box_cli-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 144.7 kB

Release files / agent_box_cli-1.0.0.tar.gz

Download URL agent_box_cli-1.0.0.tar.gz
Size 74.9 kB
Tags Source
SHA-256 checksum
How to use checksums
35907622292c4eda2b5a1add64a94f14dfb3ea6c5c71fb90eaaf5d66b67add31
BLAKE2b-256 checksum
How to use checksums
32cdf6d24872707f07b584cc8c6c4d677f3fab8ec1676bb69dee21c425b04f6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / agent_box_cli-1.0.0-py3-none-any.whl

Download URL agent_box_cli-1.0.0-py3-none-any.whl
Size 69.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
77ae20660c07bb15cdf26724ef7e09b9daba3227d52f116eb005274361e99990
BLAKE2b-256 checksum
How to use checksums
f84471488bf76c0d2a83cde31b3f47b45375abb1aa4411cde6091138bd3c17e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for agent-box-cli 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page