claudebox
将 Claude Code 封装进 Docker 容器,实现项目级环境隔离与多会话并发管理的 CLI
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
将 Claude Code 封装进 Docker 容器,实现项目级环境隔离与多会话并发管理的 CLI
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
如果你用过 Claude Code(Anthropic 官方 AI 编程助手),会发现它在本地环境运行时有几个恼人的问题:依赖冲突(比如 Python 项目 A 用 Django 4.1,项目 B 用 Django 3.2)、环境污染(全局安装的工具相互影响)、多项目并发时认证状态混乱,以及在不同机器上难以复现同一套开发环境。ClaudeBox 正是为了解决这些问题而诞生的——它的核心理念是把 Claude Code 跑在一个完全隔离的 Docker 容器里,让每个项目拥有独立的"小宇宙"。

图1:ClaudeBox 作者 Richard Graver 头像
ClaudeBox 由独立开发者 Richard Graver(Crius Technology Group)创建,于 2025 年 6 月开源,至今(2026 年 6 月)已积累 1098 颗 Stars 和 123 个 Forks,在 Docker + AI 工具这个细分领域算得上是小有名气的项目。项目采用 MIT 许可证,完全开源。
ClaudeBox 最大的设计亮点是项目级隔离。当你 cd 到一个项目目录后执行 claudebox,它会:
claudebox-<校验和> 的专属 Docker 镜像这样做的好处是:项目 A 和项目 B 拥有完全独立的 Python 环境、系统工具、配置文件和认证状态。你可以同时在终端的多个标签页里运行不同项目的 Claude Code,它们互相不会干扰。
ClaudeBox 内置了丰富的开发 Profile(开发环境配置),覆盖主流语言和场景:
| 类别 | Profile 名 | 包含内容 |
|---|---|---|
| 核心工具 | core | 编译器、VCS、Shell 工具 |
| 构建工具 | build-tools | CMake、autotools、Ninja |
| C/C++ | c | GDB、Valgrind、Boost、ncurses、cmocka |
| Python | python | 通过 uv 管理虚拟环境(比 pip 更快) |
| Rust | rust | rustup 安装 |
| Go | go | 从上游归档直接安装 |
| Flutter | flutter | 通过 fvm 版本管理 |
| Java | java | SDKMAN 安装最新 LTS,Maven/Gradle/Ant |
| JS/TS | javascript | nvm 管理 Node.js |
| 数据库 | database | 主流数据库客户端 |
| 数据科学 | datascience | Python + Jupyter + R |
| 机器学习 | ml | Python 构建层(ML 框架按需安装) |
| 安全研究 | security | 扫描器、暴力破解工具、网络分析工具 |
Profile 之间还支持依赖解析——比如安装 c Profile 时会自动带上 core 和 build-tools,用户无需手动处理层级关系。
ClaudeBox 引入了一个巧妙的 Slot 机制来解决同一个项目内多会话的问题。每个 Slot 有独立的认证状态、MCP 上下文和容器配置,通过 CRC32 链式哈希生成唯一标识——Slot 0 是项目基础哈希,Slot 1 是 Slot 0 哈希的哈希,以此类推。Slot 信息持久化在 ~/.claudebox/ 目录中。
安装方式极为简单:
wget https://github.com/RchGrav/claudebox/releases/latest/download/claudebox.run
chmod +x claudebox.run
./claudebox.run
这个 .run 文件实际上是一个自解压的 Bash 脚本,内部嵌入了整个项目打包成的 tar.gz 归档。它会:
~/.claudebox/source/~/.local/bin/claudeboxClaudeBox 的 CLI 实现采用了一种优雅的四桶标志分类架构(Four-Bucket Architecture),所有命令行参数在入口处一次性解析完毕,分成四类:
--verbose、rebuild、tmux)--enable-sudo、--disable-firewall)profiles、projects、info、allowlist)--model opus、-c)这种设计的优势在于:参数解析逻辑集中在 lib/cli.sh 一个文件,行为可预测,不会出现参数被多处代码重复处理的混乱。
项目维护两套 Dockerfile:
build/Dockerfile:基础镜像构建,使用 Debian Bookworm,安装了 GitHub CLI、git-delta、zsh(通过 zsh-in-docker 脚本)、fzf、tmux、iptables 等开发工具链,并通过 --mount=type=cache 复用 apt 缓存加速镜像构建。
build/Dockerfile.project:项目特定镜像,基于基础镜像,按需安装各 Profile 的依赖。Profile 安装内容通过模板变量 {{PROFILE_INSTALLATIONS}} 注入,支持动态生成。
值得注意的是,ClaudeBox 选择用 uv(Astral 公司的极速 Python 包管理器)来管理 Python 环境,而不是传统的 pip 或 conda。在 Docker 镜像中通过 curl -LsSf https://astral.sh/uv/install.sh | sh 一键安装,配合虚拟环境(.venv/)和标志文件(.venv_flag)的机制,确保 Python 环境只在真正需要时初始化,避免每次启动都重装依赖。
每个项目有独立的 iptables 防火墙配置,保存在 build/allowlist 中。容器启动时通过 init-firewall 脚本配置网络隔离规则,只有白名单内的地址才能从容器内访问。这一设计对于 Claude Code 执行 curl/wget 等网络请求提供了可控的安全边界。
ClaudeBox 不是一个 Web 服务,而是一个增强型 CLI 工具——它让 Claude Code 跑在容器里,但交互方式完全在终端。需要注意的是:
ClaudeBox 最大的局限在于它本质上是一个本地开发工具,不提供任何云端或 Web 访问能力。此外:
ClaudeBox 代表了一个有趣的趋势:将 AI 编程助手与容器化环境深度结合。随着 Claude Code、GitHub Copilot CLI 等工具越来越流行,如何管理 AI 编程助手与本地开发环境的交互成为一个新课题。ClaudeBox 的项目隔离、多 Profile 管理和防火墙控制,提供了一种系统化的解决思路。
它的 Slot 系统和 CRC32 链式哈希的设计也很有意思——用极简的工具(Bash 脚本 + Docker)实现了一套可靠的多会话状态管理机制,且完全无需外部数据库或状态服务。这种"轻量级基础设施"的思路值得借鉴。