
一句话介绍
OpenShell 是 NVIDIA 开源的 AI Agent 安全运行时,用 Rust 编写,基于 Docker+K3s 部署,通过四层防御(文件系统/网络/进程/推理)把 AI 智能体关在沙箱里运行,做到零信任、最小权限,既能用 AI 提效又不用担心数据泄露。

OpenShell 目前在 GitHub 上 13.9K Stars,Alpha 版本但核心架构已经很扎实。NVIDIA 官方团队在维护,长期迭代有保障。
为什么你需要 OpenShell
先说说痛点。现在用 Claude Code、OpenCode、Cursor 这些 AI 编程工具的人越来越多,但你有没有想过——这些工具运行在你的电脑上,意味着什么?
- 它能读取你硬盘上所有文件,包括
~/.ssh私钥、.env里的数据库密码 - 它能自由访问网络,把你的代码片段发到任何服务器
- 它能执行任意命令,万一被 prompt injection 攻击了呢?
我自己用 Claude Code 的时候就有点担心——让它改代码,它会不会不小心 rm -rf 了重要目录?会不会把公司代码泄露出去?OpenShell 就是为了解决这个问题的。
四层防御,一个比一个硬核
OpenShell 的安全设计不是单一防火墙,而是四层纵深防御,层层递进:
| 层级 | 技术 | 作用 | 能否热更新 |
|---|---|---|---|
| 文件系统 | Linux Landlock LSM | 只能访问策略允许的目录 | 否(创建时锁定) |
| 网络 | OPA/Rego + HTTP CONNECT 代理 | 逐连接审查出站请求 | 是(30秒热加载) |
| 进程 | seccomp BPF | 过滤危险系统调用,阻止提权 | 否(创建时锁定) |
| 推理 | Privacy Router | API Key 永不接触智能体内存 | 是(热加载) |
最有意思的是第四层——推理层。传统做法是把 API Key 当环境变量注入 Agent 进程,Agent 被攻破 Key 就丢了。OpenShell 反过来:Agent 看到的是占位符,请求发出时代理层才把真实 Key 注进去,然后转发给后端。Agent 从头到尾都碰不到真实凭据。

架构上分为 Gateway(控制平面)和 Sandbox(数据平面)。Gateway 管策略、凭据、沙箱生命周期;每个 Sandbox 是一个独立的 K8s Pod,里面跑着 Agent 进程和安全代理。
安装配置完整教程
前置条件
- Docker 已安装并运行(Docker Desktop 或 Docker Daemon)
- Linux/macOS 系统(Windows 用 WSL2 也可以)
- 至少 2GB 内存(K3s + 沙箱需要一些资源)
第一步:安装 CLI
推荐用官方安装脚本,一条命令搞定(脚本地址见文末 GitHub 仓库根目录的 install.sh):
curl -LsSf [官方安装脚本地址] | sh
也可以用 uv 从 PyPI 装:
uv tool install -U openshell
装完验证一下:
openshell --version
第二步:启动第一个沙箱
以 Claude Code 为例,确保你已经设置了 ANTHROPIC_API_KEY 环境变量:
# 1. 从环境变量自动发现并创建 Provider
openshell provider create --type claude --from-existing
# 2. 创建沙箱并启动 Claude Code
openshell sandbox create -- claude
第一次运行会自动在 Docker 里拉起一个包含 K3s 的容器,部署 Gateway 和沙箱。等个 1-2 分钟,你就进入了沙箱内的 Claude Code 终端。
关键区别:这个 Claude 运行在隔离环境里,默认只能访问 Anthropic API,其他网络全部拒绝。即使它被攻击了,也碰不到你主机上的文件。
第三步:配置网络策略
默认策略是「全部拒绝」,太保守用不了。我们来加一个 GitHub 只读策略。创建一个 policy.yaml:
version: 1
filesystem_policy:
include_workdir: true
read_only:
- /usr
- /lib
- /proc
- /app
- /etc
read_write:
- /sandbox
- /tmp
network_policies:
github_api:
name: github-api-readonly
endpoints:
- host: api.github.com
port: 443
protocol: rest
enforcement: enforce
access: read-only
binaries:
- { path: /usr/bin/curl }
- { path: /usr/bin/git }
应用到运行中的沙箱(无需重启!):
openshell policy set my-sandbox --policy policy.yaml --wait
验证一下:
# 进入沙箱
openshell sandbox connect my-sandbox
# GET 请求应该放行(访问 GitHub API 的 /zen 接口)
curl -sS "$GITHUB_API/zen"
# → Anything added dilutes everything else.
# POST 请求应该被拦截(创建 issue 操作被 L7 策略拒绝)
curl -sS -X POST "$GITHUB_API/repos/octocat/hello-world/issues" \
-d '{"title":"oops"}'
# → {"error":"policy_denied","detail":"POST /repos/... not permitted by policy"}
L7 级别的控制——允许 GET 但拒绝 POST,这个粒度在同类工具里很少见。

上图展示了沙箱里的 Agent 是怎么连出去的:控制指令、DNS 解析、每条 TCP 流都封装在同一条双向认证的 HTTP/2 连接里,由受信任的 Supervisor 统一代理,除此之外的所有出站请求一律拒绝。
实际使用场景和效率提升
场景一:企业内部用 AI 写代码
以前:不敢让 AI 碰生产环境的代码,怕泄露。 现在:OpenShell 沙箱 + 策略,只允许访问指定的 Git 仓库和内部 API,推理走本地模型,数据完全不出内网。
场景二:跑第三方 Agent 工具
以前:不确定社区 Agent 的安全性,不敢随便用。 现在:丢沙箱里跑,就算有后门也出不来,用完直接删掉沙箱,干干净净。
场景三:教学和演示
以前:给学员演示 AI 编程,担心学员操作不当搞坏环境。 现在:每人一个沙箱,互不影响,用完即焚。
支持的智能体和生态
目前内置支持的 Agent:
| 智能体 | 类型 | 所需凭据 |
|---|---|---|
| Claude Code | 内置 | ANTHROPIC_API_KEY |
| OpenCode | 内置 | OPENAI_API_KEY / OPENROUTER_API_KEY |
| Codex | 内置 | OPENAI_API_KEY |
| GitHub Copilot CLI | 内置 | GITHUB_TOKEN |
| OpenClaw | 社区镜像 | OPENCLAW_API_KEY |
| Ollama | 社区镜像 | 无需 Key(本地运行) |
还支持 --from 参数从任意 Docker 镜像创建沙箱,自由度很高。
同类项目对比
| 项目 | 隔离方式 | 策略引擎 | 推理凭据保护 | 部署方式 |
|---|---|---|---|---|
| OpenShell | K8s Pod + Landlock + seccomp | OPA/Rego | ✅ Privacy Router | Docker/K3s 自托管 |
| E2B | Firecracker microVM | 自定义 | 部分 | 云服务 + SDK |
| Sandboxd | nsjail | 简单规则 | ❌ | 本地 |
| Modal gVisor | gVisor | 网络策略 | ❌ | 云服务 |
OpenShell 的优势在于:自托管、四层防御、推理层凭据保护、声明式 YAML 策略热更新。缺点是 Alpha 阶段,功能还在快速迭代中。
总结
OpenShell 解决的是一个很实在的问题——AI Agent 越来越强,但我们不敢给它太高权限,结果反而用不爽。有了沙箱之后,你可以放心地让 Agent 去执行更复杂的任务,不用担心里外都被它看光了。
适合入手的人群:
- 经常用 AI 编程工具的开发者
- 对数据安全有要求的企业团队
- 研究 AI Agent 安全的技术人员
- 安全工程师,想给团队的 AI 工具加保护层
项目目前是 Alpha 版本,变化可能比较快,但核心架构已经很扎实了。NVIDIA 出品,长期维护有保障,值得跟进一下。
项目地址
- GitHub:https://github.com/NVIDIA/OpenShell
- 官方文档:https://docs.nvidia.com/openshell/latest/index.html
- 社区镜像:https://github.com/NVIDIA/OpenShell-Community
温馨提示:Alpha 阶段不建议在生产环境跑核心业务,但用来隔离个人开发环境里的 AI 工具,完全够用了。装一个试试,你会发现用 AI 的胆子都变大了



