OpenShell
SHA-256NVIDIA がオープンソース化した AI エージェントのセキュアランタイム:カーネルレベルのサンドボックスでファイルとネットワークを制御し、クレデンシャルはプロキシ経由で注入。エージェントが本物のキーに触れることはない。
スマートダウンロード
Download 版をダウンロード
v0.1.4 · 72.5 MB
AI エージェントにセキュリティサンドボックスをかぶせるランタイム。
主な機能
- カーネルレベルのサンドボックス分離により、ファイルアクセス、システムコール、ネットワーク接続に対してポリシーを一つずつ適用
- ポリシー変更はまず形式的検証を経て、高リスクの権限付与を自動的にフラグ付けし、人間による承認を待機
- 認証情報はゲートウェイプロキシによって注入され、エージェントが実際のキーに触れることは一切ない
- GPUサンドボックス、Python/TypeScript/Go/Rust SDK、Kubernetes Helmデプロイメントをサポート
できないこと
- •Windows では WSL2 のみが実験的にサポートされており、ネイティブな Windows 版は存在しません。これはすぐに使える独立したアプリケーションではなく、Docker、Podman、またはホストの仮想化に依存する必要があります。デフォルトのサンドボックスは最小構成の Ubuntu で、エージェントは一切含まれておらず、モデルを自分で接続してポリシーを設定する必要があります。匿名テレメトリはデフォルトで有効になっており、OPENSHELL_TELEMETRY_ENABLED=false で無効にできます。これは万能ではなく、ポリシーの設定を緩くしすぎるとエージェントに過剰な権限を与えることになり、Kubernetes でのデプロイでは CNI が NetworkPolicy をサポートしていることも求められます。
使用例
- OpenCode などの AI コーディングエージェントをローカルで安全に実行し、ファイルの読み書きやパッケージのインストールも安心して任せられる
- 企業が自律型エージェントを一括デプロイし、各エージェントの権限を集中的に承認・監査する
- エージェントにサードパーティ API を呼び出させながら、実際の認証情報は常にゲートウェイで管理され、外部に漏洩しない
詳細説明
OpenShell は NVIDIA がオープンソース化した自律 AI エージェント向けのセキュアランタイムです。通常の Docker サンドボックスや E2B が分離のみを提供するのとは異なり、2 つの大きな独自の強みがあります。カーネル層であらゆるファイルアクセス、システムコール、ネットワーク接続に対してポリシー制御を実行し、ポリシー変更前に形式検証で高リスクな権限付与をマークして人間の承認を待ちます。さらに、ゲートウェイ経由でクレデンシャルをプロキシし、承認済みエンドポイントへのリクエストにのみシークレットを注入するため、エージェントが実際のクレデンシャルに触れることは決してありません。プロジェクトはコマンドラインツール、宣言的なファイル/ネットワーク/プロセスポリシー、GPU サンドボックス、Python/TypeScript/Go/Rust SDK、および Kubernetes Helm デプロイを提供しており、個人がローカルでプログラミングエージェントを安全に実行するのにも、企業が大規模なエージェントクラスターを統一的に管理制御するのにも適しています。匿名テレメトリはデフォルトで有効になっており、ワンクリックで無効化するか、コンパイル時に完全に削除することができます。
トラブルシューティング & FAQ (2)
設定OpenShell サンドボックスのサービスアカウントは、OpenShift 上で privileged SCC を必要としますか?
いいえ。SCC 対応の UID 解決が追加されて以来(PR #3110、および #4054 のアノテーション待機修正)、ほとんどのデプロイメントでは openshell-sandbox への privileged SCC 付与は不要になっています。Kubernetes ドライバーは namespace の sa.scc.uid-range アノテーションを読み取り、その範囲からサンドボックス Pod に UID を割り当てます(例: 範囲 1001150000/10000 から runAsUser: 1001150000)。そのため、Pod は privileged な付与が一切なくてもデフォルトの restricted-v2 SCC アドミッションを満たします。
付与なしでデプロイするには:
1. values-openshift-scc.yaml オーバーレイを使って Helm チャート経由でゲートウェイをインストールします。これによりハードコードされた runAsUser/fsGroup が null になり、restricted-v2 が namespace に割り当てられた UID 範囲を注入できるようになります。
2. oc adm policy add-scc-to-user privileged -z openshell-sandbox は実行しないでください。oc get scc privileged -o jsonpath='{.users}' で SA のエントリが存在しないことを確認してください。
3. サンドボックスの create/exec/delete は restricted-v2 下で正常に動作し、プロセスは期待どおり SELinux の container_t ラベルで実行されます。
フォールバック(明示的な付与が依然として必要な場合): 固定 UID に依存するワークロード(例えば e2e/python/Dockerfile.workload のように UID 1000 としてファイルを所有するイメージ)は、代わりに namespace 割り当ての UID で実行されます。そのような場合は、sandbox_uid を明示的に設定するか、その特定のワークロードに対して SCC 付与を維持してください。なお、古いドキュメント(デバッグスキル skills/debug-openshell-cluster/SKILL.md および e2e/with-kube-gateway.sh)はこの修正より前のものであり、依然として付与が必要であると記載しています。
トラブル対応なぜ最初のKubernetes conformanceテストは、ゲスト起動直後にワークロードPodを待機してタイムアウトするのですか?また、どのように修正すればよいですか?
原因: conformance プレイブックは各ゲストブート後にゲートウェイ接続のみを待機しますが、ゲートウェイ接続とコントローラー Deployment の可用性では、Agent Sandbox ワークロードコントローラーが Pod を作成できることは証明されません。新規ブート後、コントローラーはまだ回復中の場合があります — Kubernetes API 証明書検証エラーで再起動し、続いて leader election を待機します — ワークロード Pod を reconcile するまでに約11秒のギャップが生じます。そのため、最初のサンドボックス作成は 30 秒のタイムアウトに達しますが、後続のシナリオはパスします。
回避策: CI レーンを再実行します。この失敗は断続的であり、変更なしの再実行は通常パスしますが、CI リソースを浪費します。
恒久対策: 各ゲストブート後に、シナリオを実行する前にコントローラー所有の Pod 作成を検証する、上限付き readiness チェックを追加します。probe Pod が実際に実行したりイメージをプルしたりできないように構成し(ゲート状態を維持)、成功時と失敗時の両方でクリーンアップします。readiness 失敗時は conformance をスキップし、診断情報を収集します: コントローラーの状態、leader lease、イベント、および上限付きの起動ログと最近のコントローラーログ。本番環境のプロビジョニングデッドラインは変更しないでください。
ローカルでの再現方法: nix run .#tmachine -- test ubuntu-k3s k3s conformance を実行し、ゲートウェイ接続のタイミングをコントローラーの再起動、leader lease、最初のワークロード Pod 作成と比較します。
タグ
はじめ方
ソフトウェアをインストール
ディストリビューションに合ったパッケージをインストール(dpkg / rpm / AppImage)
システムが Linux、Apple Silicon Mac、または WSL2 搭載の Windows であることを確認し、事前に Docker または Podman をインストールしておく
ターミナルで curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh を実行し、コマンドラインツールとローカルゲートウェイをインストールする
openshell sandbox create --name demo を実行して最初のサンドボックスを作成する
- システムが Linux、Apple Silicon Mac、または WSL2 搭載の Windows であることを確認し、事前に Docker または Podman をインストールしておく
- ターミナルで curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh を実行し、コマンドラインツールとローカルゲートウェイをインストールする
- openshell sandbox create --name demo を実行して最初のサンドボックスを作成する
SHA-256 チェックサム確認済み
GitHub 公式 Release ページから抽出されたチェックサム
SHA256 チェックサム
43f43554bcaabff2a8147444410d1ad0b7f51bdae7589c2d249982bc8b260b91このチェックサムは GitHub Release ページから抽出されたものです。ダウンロード後にファイルの整合性を確認してください。
本プラットフォーム上のすべての SHA-256 チェックサムは、プロジェクトの公式 GitHub Release ページから抽出されたもので、一切の改変はありません。GitHub Releases ページで独自に検証できます。
オープンソースの透明性
GitHub ソースを見るアンインストール情報
公式ではワンクリックアンインストールスクリプトは提供されていません。手動でのアンインストール手順:openshell コマンドラインバイナリを削除し、~/.openshell 設定ディレクトリを削除し、ローカルゲートウェイコンテナを停止して削除し、Docker/Podman 内のサンドボックスイメージをクリーンアップします。Helm でデプロイした場合は、対応するネームスペースで helm uninstall を実行してください。
追加の依存関係なし
ダウンロード後すぐに使用可能。追加のランタイムは不要です。
問題が発生?以下のFAQを確認
2 FAQs
類似プロジェクト
gemini-cli
Googleがオープンソース化したターミナルAIエージェントで、コマンドライン上で直接Geminiモデルを用いてプログラミングと自動化を支援する。
ollama
ローカルで大規模言語モデル(LLM)をワンクリックで実行・管理するオープンソースツール。複数のプラットフォームと豊富なモデルに対応しています。
ComfyUI
ComfyUI はモジュール式の AI 創作エンジンであり、ノードグラフインターフェースを通じて、積み木を組み立てるように画像、動画、3D、オーディオを生成できます。従来の WebUI よりも柔軟で効率的であり、プロフェッショナルや自動化パイプラインに適しています。