Greywall 智能编码沙箱

为 AI 编码工具隔离文件、网络和系统调用,降低越权访问风险。

Star 数
★ 311
最近更新
6 天前
License
Apache-2.0
主语言
Go

30 秒速览

运行形态
命令行工具代码库 / SDK
可在哪里用
通用 · 跨平台Codex · Claude Code
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
bubblewrapsocatgreyproxyShell / 命令行网络访问本地文件系统
典型场景
希望在本机运行 Claude Code、Codex 或 Cursor,并限制其访问 SSH 密钥和工作目录之外文件的开发者。
不适合
  • 需要 macOS 上完整透明网络捕获和 DNS 捕获的团队

这个 Agent 能做什么,适合哪些场景?

Greywall 是面向 Linux 和 macOS 的命令行沙箱,可在本机运行 AI 编码代理及其他命令,无需容器。默认的 greywall 模式按拒绝优先策略限制文件、网络和系统调用;greywatch 则提供默认允许的观测模式,并将网络请求记录到 GreyProxy 仪表板。Linux 上使用 bubblewrap、Landlock、Seccomp BPF、eBPF 监控和 TUN 网络捕获等机制,macOS 上使用 Seatbelt。用户可通过内置代理配置文件、JSON 设置和命令行选项控制访问,也可用学习模式跟踪文件访问并生成配置。它作为本地 CLI 部署,也可作为 Go 包使用。

用户通过 greywall -- <command> 启动命令,Greywall 根据所选配置限制工作目录以外的文件访问、网络连接和系统调用,并可阻止配置中的危险命令。内置代理配置文件可为 Claude Code、Codex、Cursor 等工具及多种语言工具链授予所需访问;--profile 可组合配置文件,--allow-path 和 --allow-read-path 可为单次运行额外开放路径。网络连接经 GreyProxy 转发;在 greywatch 或 --watch 模式下,网络请求被允许并记录,文件系统策略也变为宽松。--learning 跟踪文件访问并生成最小权限配置文件;用户还可通过 -m 监控沙箱违规。配置可从 ~/.config/greywall/greywall.json 或 macOS 的应用支持目录读取。

  1. 希望在本机运行 Claude Code、Codex 或 Cursor,并限制其访问 SSH 密钥和工作目录之外文件的开发者。
  2. 想先了解某个编码代理会访问哪些文件和网络目标,再决定限制范围的工程师,可用 greywatch 观察并查看 GreyProxy 仪表板。
  3. 需要为代理和语言工具链分别设置文件权限的团队,可组合内置代理与工具链配置文件。
  4. 希望从实际文件访问记录生成最小权限配置的开发者,可使用 --learning 跟踪命令。
  5. 需要在 Linux 或 macOS 上对命令执行设置本地访问边界、且不希望依赖 Docker 的工程团队。

如何安装或部署这个 Agent?

macOS 可通过 Homebrew 安装,Linux 和 Mac 也可运行安装脚本。Linux 需要 bubblewrap 和 socat;xdg-dbus-proxy 与 libsecret-tools 是可选依赖。Homebrew 和安装脚本会安装 GreyProxy 作为依赖;使用其他方式时,README 也将 GreyProxy 列为网络代理组件。安装后可用 greywall check 检查依赖和状态。

brew tap greyhavenhq/tap
brew install greywall
curl -fsSL https://raw.githubusercontent.com/GreyhavenHQ/greywall/main/install.sh | sh
greywall check

如何使用这个 Agent?

用 greywall -- <command> 运行受限命令;可用代理配置文件或学习模式调整访问范围。以下示例分别启动 Claude、观察其行为,以及跟踪 OpenCode 的文件访问。

greywall -- claude
greywatch -- claude
greywall --learning -- opencode

可通过 --profile 组合代理和工具链配置文件,并将额外设置保存在 JSON 配置文件中。

greywall --profile claude,python -- claude
{
  "network": {
    "proxyUrl": "socks5://localhost:1080",
    "dnsAddr": "localhost:5353"
  },
  "filesystem": {
    "defaultDenyRead": true,
    "allowRead": ["~/.config/myapp"],
    "allowWrite": ["."],
    "denyWrite": ["~/.ssh/**"],
    "denyRead": ["~/.ssh/id_*", ".env"]
  },
  "command": {
    "deny": ["git push", "npm publish"]
  }
}

这个 Agent 有哪些优点和局限?

优点
  • Linux 上结合 bubblewrap、Landlock、Seccomp BPF、eBPF 和 TUN 捕获提供多层隔离。
  • 默认拒绝文件和网络访问,并提供内置代理配置文件及单次运行的路径授权选项。
  • greywatch 与 --learning 支持先观察命令行为,再逐步生成和收紧配置。
  • 支持 Linux 和 macOS,且不要求使用容器。
局限
  • Linux 安装需要 bubblewrap 和 socat;代理网络功能还依赖 GreyProxy。
  • macOS 不支持完整透明网络捕获或 DNS 捕获,学习模式需要 sudo。
  • Linux 的网络隔离和透明捕获依赖 TUN;不同平台的隔离实现和可用功能并不完全相同。
  • README 未说明商业支持、服务等级或托管服务;团队需自行安装和维护本地工具。

这个 Agent 与同类方案有什么区别?

README 将 Greywall 描述为无需容器的沙箱,并将 greywatch 定位为默认拒绝模式的观测对应模式。它说明 Greywall 是 Fence 的分支,并提及 Anthropic 的 sandbox-runtime 是灵感来源;没有提供功能或性能对比数据。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Greywall 智能编码沙箱 当前 80 · 表现良好 命令行工具免费 ★ 311 6 天前 Go Codex · Claude Code
NVIDIA NemoClaw 65 · 存在缺口 命令行工具免费 + 模型费 ★ 23k 今天 TypeScript —
h5i —— 面向 AI Agent 的安全优先无头浏览器 84 · 表现良好 命令行工具免费 ★ 805 今天 Rust Codex · Claude Code
Node9 82 · 表现良好 命令行工具免费版 + 付费版 ★ 219 3 天前 TypeScript Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
表现良好
80/ 100 五分制 4.0 / 5
信任安全 22/29
可靠稳定 9/14
适用触发 16/18
规范维护 15/18
有效结果 12/13
证据核验 6/8
查看各维度的扣分理由
信任安全22 / 29 · 3.8/5

默认拒绝、可配置路径/命令规则、Linux 多层隔离及 macOS Seatbelt 支持最小权限;启动配置前会展示授权项并允许编辑、跳过。文档具体说明流量经代理、凭据替换、D-Bus 隔离及 SSH/GPG socket 暴露后果,Apache 许可和源项目归属也有说明。依赖安全仅有依赖清单,未见漏洞审查或锁定策略;setup 会下载并启动代理、安装脚本通过管道执行且有校验和说明,但副作用和恢复流程仍不够完整。

可靠稳定9 / 14 · 3.2/5

README、配置文档和安全模型大体一致地描述默认限制和代理职责,并说明容器环境及 TUN 不可用时的降级;Linux 安全文档还列出内核能力缺失的影响。依赖有版本化 Go 模块和平台安装指引,但外部代理及系统工具可用性依赖环境;错误排查有 check、monitor、debug 和 FAQ 支持,仍缺少更完整的失败情形与恢复说明。

适用触发16 / 18 · 4.4/5

明确面向半可信命令、AI 编码代理、构建脚本和 CI,列出适用与不适用的威胁模型。配置、代理、端口转发、学习及观察模式划定了具体能力边界和触发方式;Linux/macOS 支持细节充分,但 Windows 不支持,且 Linux 容器网络隔离能力会因权限而下降。

规范维护15 / 18 · 4.2/5

文档按快速入门、配置、安全模型、平台、安全功能和 FAQ 组织;安装步骤覆盖多种方式与 Linux 依赖。示例丰富,限制说明具体,Apache-2.0 许可清楚。greywatch 别名、greywall --watch、greyproxy 等命名关系已有解释但略繁复;提供版本标签和发布入口,但所给材料没有变更日志;维护联系和漏洞披露期限明确,维护者身份仍有限。

有效结果12 / 13 · 4.6/5

产品把文件系统、网络和 syscall 限制与学习、监控及代理仪表板结合,输出可用于收紧配置的路径线索和网络可见性。学习模式与内置 Agent/工具链配置降低手动策略成本。收益受代理配置、平台差异及权限条件影响,观察模式会放开网络和文件系统默认限制,需由用户正确选择模式。

证据核验6 / 8 · 3.8/5

安全主张在 README、安全模型、Linux 功能文档、配置与 FAQ 中有相应解释,具体边界和降级条件较容易追溯。多处材料相互印证,但主要仍是同一仓库文档的陈述,未提供独立验证证据。文档通常区分产品行为、依赖条件和限制,并明确声明不适用于抵御主动逃逸攻击;本评估未执行项目。

风险与缓解建议
  • Greywall 明确定位为半可信代码的纵深防御,不应当作抵御主动恶意逃逸代码的强隔离边界。
  • 观察模式默认允许网络并放宽文件系统限制;Linux 容器或无 TUN 环境下,忽略代理环境变量的程序可能绕过网络限制。
  • SSH/GPG agent socket、音频/视频相关 socket 的开放会扩大身份或设备访问能力;按需开放并理解相应后果。
证据充分度:低 评估于 2026年10月22日 审查版本 60ab1b5bfd41
查看完整评分方法 →

常见问题

运行时会默认允许访问我的文件吗?
不会。greywall 默认限制访问,通常仅工作目录可用;可用内置配置文件或 --allow-path、--allow-read-path 增加权限。README 还提到强制拒绝规则会在观测模式中保留。
网络请求会直接连接互联网吗?
README 说明两种模式都会通过 GreyProxy 路由网络。普通模式按策略限制请求;greywatch 会允许并记录请求。Linux 支持 TUN 透明捕获,macOS 则不支持完整透明捕获和 DNS 捕获。
可以先观察代理会做什么,再启用限制吗?
可以。运行 greywatch -- <command> 或 greywall --watch -- <command> 可在允许网络请求的观测模式下查看 GreyProxy 仪表板记录。
使用时需要 Docker 或付费模型服务吗?
Greywall 是无需容器的本地沙箱,README 没有说明需要付费服务。使用 AI 编码工具时,相关工具自身是否需要账户或付费服务取决于该工具;README 未列出这些要求。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents