OpenShell
一句话简介
NVIDIA 开源的 Rust 实现跨平台 Shell 工具库,提供高性能、可扩展的命令行外壳功能与组件,用于构建定制化 Shell 环境。
标签
适用应用场景
- 构建自定义命令行 Shell
- 开发嵌入式终端环境
- 实现跨平台脚本执行器
- 作为 Shell 功能模块集成到应用中
README 中文摘要
项目概述
OpenShell 是一个面向自主 AI 智能体集群的安全私有运行时。智能体需要读取文件、安装软件包、调用 API 并使用凭证才能发挥作用,OpenShell 让它们具备这些能力,同时限制其对数据、凭证和网络的未授权访问。用户通过策略声明每个智能体的权限边界,由 OpenShell 强制执行。
0.1.x 版本引入了稳定的发布节奏、新的隔离原语、扩展接口以及新的 API。
工作原理
OpenShell 从两个层面管控智能体的行为:
- 内核级强制执行。每个智能体运行在独立的沙箱中,内核控制机制限制其可访问的文件与可执行的系统调用;所有出站网络连接在离开沙箱前都要经过策略检查。智能体永远看不到真实凭证,OpenShell 仅在请求指向已批准的端点时才注入凭证。
- 形式化验证的策略变更。在策略变更生效前,OpenShell 使用形式化验证标记出该变更将带来的风险性新权限(例如使用凭证访问新主机、调用新的 API 方法),此类变更必须等待人工复核。
快速安装
环境要求:Linux、Apple Silicon 上的 macOS,或启用 WSL 2 的 Windows(实验性);同时需要 Docker、Podman 或主机虚拟化支持。
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
openshell sandbox create --name demo # 安装 CLI 与本地网关,并创建一个沙箱
默认沙箱镜像是精简的 Ubuntu,未预装智能体。若要运行真实智能体,可参考“运行第一个智能体”教程,该教程演示了 OpenCode 接入免费的 OpenRouter 模型,以及如何在智能体需要新权限时进行审批。
核心模块
- Sandboxes(沙箱):镜像、运行时、GPU 配置与生命周期管理。
- Policies(策略):文件系统、网络与进程规则;包含 advisor(建议器)与 prover(证明器),用于审查策略变更。
- Providers(凭证提供方):仅在已批准端点上生效的凭证,包括推理服务接入。
- Gateways(网关):沙箱、策略与访问的控制平面。
- Kubernetes 部署:通过 Helm 部署网关,底层 CNI 必须支持 NetworkPolicy。
- Extensibility(扩展性):中间件、拦截器与计算驱动。
智能体技能
通过以下命令为编码智能体安装 OpenShell 官方技能包,使其掌握 CLI 调用、策略编写与网关、推理路由调试:
npx skills add NVIDIA/OpenShell # 安装 OpenShell 技能
技能定义位于 skills/ 目录,无需克隆源码即可使用。
SDK 多语言支持
各语言 SDK 用于将应用接入 OpenShell 网关,不包含 CLI。部署时 SDK 与网关版本尽量保持一致。
| 语言 | 安装命令 | 文档 |
|---|---|---|
| Python | uv add openshell |
python/openshell/ |
| TypeScript | npm install @nvidia/openshell-sdk(GitHub Packages) |
sdk/typescript/README.md |
| Go | go get github.com/NVIDIA/OpenShell/sdk/go@latest |
sdk/go/README.md |
| Rust | cargo add openshell-sdk --git https://github.com/NVIDIA/OpenShell --tag <release-tag> |
docs/sdk/rust.mdx |
遥测与许可
OpenShell 默认采集匿名的运营类计数遥测,用于改进项目;不收集沙箱名、主机名、文件路径、提示词、凭证、提供方或模型名称以及用户内容。关闭方式:在网关上设置环境变量 OPENSHELL_TELEMETRY_ENABLED=false,或在 Helm 安装中将 server.telemetryEnabled 设为 false,也可在编译时移除遥测模块。
本软件可能自动获取、访问或交互外部材料,这些材料不随本软件分发,遵循各自的条款与许可。用户须自行审查其合规性与适用性。本软件按“现状”提供,不附带任何形式的担保。
本项目基于 Apache License 2.0 授权。
摘要更新于 2026-10-16 00:34:57
· 原文 8050 字符
· md5 902125791bc9…