Mudroom
在 Linux 微虚拟机里跑编码智能体,改动像 Pull Request 一样审阅后再落地到项目。
- Star 数
- ★ 11
- 最近更新
- 今天
- License
- MIT
- 主语言
- Swift
- FA 评分
- 78/100 · 表现良好
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配ChatGPT · Codex · Claude Code · Claude.ai · OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 在 Apple 芯片 Mac 上想关掉权限确认、放心让 Claude Code 或 Codex 大改代码的开发者
- 不适合
- 需要完全隔离主机本地服务(如 AirPlay、开发服务器)的团队
- 以 Linux 为主要桌面、又需要图形化审阅界面的用户
- 要求稳定 API、不愿承受早期原型破坏性变更的团队
- 源码审查
- 78/100 · 表现良好
这个 Agent 能做什么,适合哪些场景?
Mudroom 是一个运行编码智能体的沙箱工具:它把你的项目以写时复制克隆(APFS clone)复制一份,在 Linux 微虚拟机或 Docker/Podman 容器中运行 Claude Code、Codex、Gemini CLI、opencode、Aider 或任意命令,真实目录从不会被挂载。网络默认处于 Locked 模式,VM 只连到本机代理,代理按允许列表放行主机并把每条连接写入 network.jsonl。会话结束后,你在 macOS 应用或终端里查看 diff,按文件、按 hunk 选择应用,每次应用都可一步撤销。它由 Swift 编写:MudroomCore(无 UI)、MudroomApp(SwiftUI,macOS 26+)和 mudroom 命令行三部分组成,macOS 用 Apple 的 container 后端,其他平台用 Docker 或 Podman。项目自述为早期原型,接口与行为可能变动。
mudroom new/run 先把项目克隆到 sessions/<id>/base 和 work,后端选择 apple(Apple container,每个会话一个轻量 VM)、docker 或 podman,在沙箱里把 work/ 挂到 /workspace 并启动智能体;mudroom start 期间运行本机 HTTP 代理,VM 通过 HTTP_PROXY/HTTPS_PROXY 走允许列表,代理执行 CONNECT、拒绝内网/回环解析结果、限制请求头与并发,并把连接记录写入 network.jsonl。智能体运行时每 5 分钟对 work/ 做一次快照(snapshots/<n>-<time>),可用 mudroom diff --from/--to 查看任意时间点之后的变更。mudroom diff 以内容哈希而非时间戳比较 base 与 work,输出 M/A/D/P/L/T 标记、二进制提示、.git 折叠行以及 ?、!、~ 风险标记;mudroom hunks 列出编号 hunk,mudroom apply last --all、按路径或 --hunks 1,3 应用,应用前核对项目是否等于 base、写临时文件再改名、用 rollback 包记录并在 mudroom undo 中恢复。凭据通过名称以 --env NAME 传入,Claude 令牌存 Keychain(Linux 为 0600 文件,Windows 为 Credential Manager)。
- 在 Apple 芯片 Mac 上想关掉权限确认、放心让 Claude Code 或 Codex 大改代码的开发者
- 需要在应用前逐 hunk 检查、还能一键回滚改动的代码审阅流程
- 担心智能体联网上传代码或访问内网,希望按主机白名单限制出口的团队
- 在 Linux/Windows 上用 Docker 或 Podman 给编码智能体加隔离层,并用 CLI 完成 diff 与 apply 的工程师
- 项目不是 git 仓库或包含大量未跟踪/忽略文件,无法用 git 审阅的场合
- 想让本地 Ollama / LM Studio 模型在受限网络下被智能体调用的用户
如何安装或部署这个 Agent?
Apple 芯片 Mac(macOS 26+)可用安装脚本或 Homebrew,二者都会处理隔离标记;脚本不需要 sudo:
curl -fsSL https://raw.githubusercontent.com/Kernel-Hunter/mudroom/main/install.sh | shbrew install --cask kernel-hunter/tap/mudroomWindows 可用 Scoop 或 release 压缩包:
scoop bucket add kernel-hunter https://github.com/Kernel-Hunter/scoop-bucket
scoop install mudroom从源码构建(需 Xcode 26+ / Swift 6.2+):
git clone https://github.com/Kernel-Hunter/mudroom
cd mudroom
scripts/build-app.sh
open build/Mudroom.app只装命令行(macOS 或 Linux):
swift build -c release
cp .build/release/mudroom /usr/local/bin/安装后必须完成运行时准备:安装并启动 VM 运行时、构建一次 agent 镜像(约 1.5 GB)、检查 VM 网络并登录智能体。
如何使用这个 Agent?
首次使用运行 Setup,或无人值守执行:
mudroom setup
mudroom setup --yes --no-sign-in登录智能体(例如 Claude 账号)并构建镜像:
mudroom agent login claude
mudroom image build --backend docker
mudroom network check --backend docker启动一个会话并在结束后审阅与应用:
mudroom run ~/code/myapp -- claude --dangerously-skip-permissions
mudroom diff last
mudroom hunks last src/parser.swift
mudroom apply last src/parser.swift --hunks 1,3
mudroom undo last配置网络允许列表与密钥:
mudroom network allow registry.npmjs.org '*.githubusercontent.com'
mudroom network mode offline
mudroom keys set OPENROUTER_API_KEY在 macOS 应用中则是:New Session(⌘N)选目录、智能体和网络模式 → 智能体在 Terminal.app 中运行 → 在 Review 的 Files/Network/Timeline 标签中查看 → Apply Selected(⌘↩)、Apply All(⇧⌘↩)或 Undo(⌥⌘Z)。
这个 Agent 有哪些优点和局限?
- 真实项目目录从不挂载:会话在写时复制克隆上工作,只有你 apply 时改动才进入原目录
- 审阅粒度细:按文件、按 hunk 应用,每次 apply 都写入 rollback 包,可一步 undo,并对你期间自己改过的文件报冲突不覆盖
- Locked 网络通过本机代理按主机白名单放行,
network check给出可复核的隔离结果,包括忽略代理的裸连接、DNS 与 UDP - 同时提供 SwiftUI 桌面应用和 CLI,macOS 用 Apple container 每会话一个 VM,其他平台可切 Docker/Podman
- 覆盖未跟踪、被忽略和非 git 项目,不依赖 git 审阅;
?、!、~标记未读条目、会由宿主执行的敏感文件并默认不选中
- 项目自述为 early prototype,预期会有粗糙之处和破坏性变更
- macOS 应用要求 macOS 26+ 与 Apple 芯片;Linux 和 Windows 只有 CLI,没有图形化审阅界面
- apple 后端下 VM 仍可通过 host-only 网关访问 Mac 上监听所有接口的服务(如 7000 端口),目前无法用包过滤封闭
- 会话运行期间令牌和密钥以明文留在运行时的配置或 inspect 输出中;Docker 后端在 Linux 与宿主共享内核,隔离弱于 VM
- Locked 模式依赖代理变量,忽略代理或开原始套接字的工具会失败;允许主机即完全放行,不检查 TLS 内容
- Windows 上没有 Unix 权限位,NTFS 上克隆是完整拷贝,Claude 通过宿主 claude CLI 登录尚未实现
这个 Agent 与同类方案有什么区别?
README 中与 Docker Sandboxes(--clone 模式)、Apple containerization 示例 sandboxy、ArcBox 以及 Claude Code 自身的 sandboxing 做了对比:Docker Sandboxes 默认把目录以读写方式挂载、靠 git 审查;sandboxy 直接共享目录立即写入;ArcBox 不挂载任何东西但也没有审阅界面;Claude Code sandboxing 在真实目录上用操作系统级限制而非 VM。Mudroom 的差异点在于 VM/clone 隔离加上按文件与 hunk 的应用与撤销。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Mudroom 当前 | 78 · 表现良好 | 桌面应用免费 + 模型费 | ★ 11 | 今天 | Swift | ChatGPT · Codex · Claude Code · Claude.ai · OpenAI API · Claude API |
| ABCA | 74 · 存在缺口 | 自托管服务免费 + 模型费 | ★ 161 | 3 天前 | TypeScript | Claude Code |
| Concord MCP | 67 · 存在缺口 | — | ★ 558 | 今天 | TypeScript | Codex · Claude Code |
| Pi Subagent | 65 · 存在缺口 | Agent 插件 / 技能免费 + 模型费 | ★ 82 | 10 天前 | JavaScript | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 明确说明沙箱设计:真实目录从不挂载,使用写时复制克隆,默认 Locked 模式仅允许白名单主机,网络日志逐条记录;应用前需人工审阅 diff 并支持部分应用与撤销,用户确认与回滚做得充分。但敏感数据处理存在自述弱点:Apple container 以 0644 明文写入含环境变量的 config.json,Docker/Podman 可通过 inspect 读取密钥,且 opencode/Aider/自定义命令会拿到全部 API key,属于已知暴露面,故扣分。依赖安全方面仅见 CI 使用 actions/checkout@v7 等,未见依赖锁定或漏洞扫描证据,给 1。外部效应方面 Open 模式完全不过滤不记录,属用户可选但默认安全,给 2。来源归属仅 README 与 LICENSE 署名,无发布者验证,给 1。
README 与 CI 描述一致(macOS/Linux/Windows 构建与测试、Windows 沙箱端到端检查),自洽性尚可;但状态自述为 early prototype,且 README 中版本号示例不一致(0.1.1 与 0.2.1 混用),扣分。依赖可用性依赖 Apple container 1.5+、Swift 6.2、Docker/Podman 等外部运行时,文档说明清楚但未提供离线或降级路径,给 2。失败信息方面 README 提到 Aider 缺 key 立即报错、Windows 防火墙缺规则时给出 New-NetFirewallRule 提示,有具体证据,但整体错误处理未系统化,给 2。
受众与场景覆盖 macOS 应用、Linux/Windows CLI、多 agent(Claude Code、Codex、Gemini、opencode、Aider、自定义命令),场景描述充分。能力边界明确列出平台矩阵、后端差异、Open/Offline 模式限制。触发精度方面 CLI 子命令众多但缺少对参数冲突或误用的系统说明,给 2。环境适配对 Apple silicon、Intel、Linux、Windows 分别给出安装与构建路径,较完整。
信息架构清晰,目录与章节完整;安装说明覆盖 curl、Homebrew、Scoop、源码构建,非常详尽;示例与截图丰富。命名稳定性因 early prototype 与 breaking changes 声明而扣分。已知限制章节存在但内容被截断,仅见部分,给 2。许可证为 MIT 且文件完整。版本化与变更日志方面仅见 tag 发布流程,无 CHANGELOG,给 1。维护责任方面发布者未经验证,仅 LICENSE 署名 Karim Masmoudi,给 1。
输出可用性高:diff 审阅、按文件/按 hunk 应用、撤销、冲突检测、网络日志,直接服务于“审阅后应用”的核心工作流。边际价值明显:为编码 agent 提供 VM 隔离与网络白名单,填补权限提示关闭后的安全缺口。成本收益方面需构建约 1.5GB 镜像、依赖 Apple container 或 Docker,且仅 macOS 26+ 有完整应用,门槛较高,给 2。
README 的多数声明可在 CI 工作流中找到对应(构建、测试、Windows 沙箱检查、发布校验和),有一定可追溯性;但关键安全声明(如代理仅放行白名单、密钥不经命令行)未在可见文件中给出测试证据,给 2。跨源佐证限于 README 与 CI 两个文件,LICENSE 仅佐证许可,给 2。事实与推断分离方面 README 明确标注 early prototype 并区分已实现与限制,但部分表述(如“你的真实文件夹从不挂载”)缺少代码级佐证,给 2。
- 发布者身份未经验证,安装脚本通过 curl | sh 从 main 分支执行,存在供应链风险,建议固定版本并核对 SHA-256。
- Apple container 以 0644 明文写入含环境变量的 config.json,Docker/Podman 可通过 inspect 读取密钥;opencode/Aider/自定义命令会获得全部 API key,需谨慎使用。
- Open 网络模式完全不过滤、不记录,可能造成数据外泄,应优先使用默认 Locked 模式。
- 项目自述为 early prototype,存在破坏性变更,且 README 中版本号示例不一致。
- 完整应用仅支持 macOS 26+ Apple silicon,其他平台为 CLI,需 Docker/Podman 及约 1.5GB 镜像构建。
常见问题
它自己收费吗?
智能体的改动什么时候会进到我的项目?
mudroom undo 可撤销,且智能体仍在运行时 apply 和 undo 会拒绝执行。网络隔离到底有多强?
mudroom network check 会实测 DNS、IPv4、IPv6、UDP 和绕过代理的裸连接。README 同时明确:apple 后端下 VM 仍能访问 Mac 上监听所有接口的服务,Docker 后端在 Linux 上共享宿主内核,因此并非与宿主完全隔离。除了 macOS 还能用吗?
mudroom review、diff、hunks、apply --hunks 完成审阅与应用。Windows 还存在无权限位、NTFS 全量拷贝、宿主 Claude 登录缺失等差异。