
nono v0.75.0
エージェント向けのセキュアな多重実行パス - ゼロトラスト、ゼロセットアップ、ゼロレイテンシー。
[!NOTE] 1.0 リリースに向けて、API は安定化しつつあります。必要な箇所では API 変更が発生する可能性がありますが、最小限に抑えられます。
[!IMPORTANT] 組織の移行: 公式の nono レジストリ名前空間は
always-furtherからnolabs-aiに移動しました。スクリプト、プロファイル、CI 内の参照を更新してください。 旧名前空間で既にパックをインストールしている場合は、新しい名前空間から取得する前にまず削除してください:nono remove always-further/claude nono pull nolabs-ai/claude旧名前空間は廃止されます — 今すぐ移行してください。
AI エージェントをゼロレイテンシのサンドボックスで、数秒かつゼロセットアップで実行 — Claude Code、Codex、Pi、CoPilot、Hermes、OpenCode、OpenClaw など — nono なら数秒で使い始められ、デーモンもコンテナも VM もディスク容量の使用もありません。すぐに使える状態で、nono は最小権限のサンドボックスを適用し、macOS、Linux、Windows (WSL2) をサポートします。
ここから 設定をフォーク して、調整し、テーマを変え、自分好みにして、チームやコミュニティと nono レジストリ を通じて共有しましょう。
運用化して大規模に、あるいはチーム内で実行したいですか? 世界有数のテック企業のエンジニアが、ワークフローの一部として、または本番環境で AI エージェントを実行するために nono を使用しています。
「Datadog のエンジニアはエージェントを高速に動かしたいと考えており、その間も認証情報と本番システムを安全に保ちたいと考えています。nono は、きめ細かなコマンド単位のポリシーと、既存の複雑な実世界のツールチェーンに適合する高度な認証情報管理の両方を提供する唯一のサンドボックスです。」 James Carnegie -- Staff Security Engineer, Datadog
「Okta では、私たちが構築するすべてにセキュリティが組み込まれています。nono は、AI エージェントの実行を高度に安全でポリシー制御されたサンドボックスに隔離することで、自信を持ってイノベーションを進めることを可能にします。開発者の速度を犠牲にすることなく、認証情報を確実にロックダウンして保護します。」 Leonardo Zanivan, Principal Engineer, Okta
多くの人に模倣されている — nono はゼロレイテンシ、ゼロセットアップのエージェントサンドボックスを開拓し、エージェントサンドボックスの分野で革新とリードを続けています。
クイックスタート
curl
curl -fsSL https://nono.sh/install.sh | sh
macOS / Linux (Homebrew)
brew install nono
Nix
このプロジェクトは 2 つの出力を持つ Nix flake を提供します:
#default(ソースから) —buildRustPackageを使用してソースからビルドします (初回実行時はクレートとその依存関係をコンパイルします)#prebuilt— GitHub Releases から公式リリースバイナリを取得します (高速、コンパイルなし)
# Run without installing (from source)
nix run github:nolabs-ai/nono
# Run the prebuilt binary (no compilation)
nix run github:nolabs-ai/nono#prebuilt
# Install into your profile
nix profile add github:nolabs-ai/nono
# Pin to the latest release
nix run "github:nolabs-ai/nono?ref=$(curl -fsSL https://api.github.com/repos/nolabs-ai/nono/releases/latest | jq -r .tag_name)"
その他のプラットフォーム — Debian/Ubuntu、Fedora、Arch、RHEL、openSUSE、WSL2: インストール手順を参照。
実行してみましょう!
レジストリでエージェントを検索し、実行します:
$ nono search opencode
nolabs-ai/opencode - Official Opencode Plugin
$ nono run --profile nolabs-ai/opencode -- opencode
これだけです。opencode は現在のディレクトリへの読み書きアクセスを持ち、それ以外には何もアクセスできません — あなたの SSH キー、クラウド認証情報、ディスクの残りの部分は、それから見えません。
人気のあるすべてのエージェント向けのプロファイルは registry.nono.sh にあり、安全に保護され、すぐに取得できます。それぞれが適切なファイルシステムスコープ、ネットワーク許可リスト、フック、スキルなどをバンドルしています。
自分好みにカスタマイズ!
デフォルトを超えたくなったら? プロファイルをスキャフォールドして調整しましょう — すでに知っているのと同じコマンドです:
nono profile init opencode --extends nolabs-ai/opencode
nono run --profile opencode -- opencode
nono profile init は、指定されたベースプロファイルを継承する、拡張可能で編集可能なプロファイルファイルをエージェント用にエクスポートします。このプロファイルはコンポーザブルな JSON なので、チームと共有したりコミュニティ向けに公開したりする前に、正確なファイルシステム、ネットワーク、認証情報、ツールのルールを確認できます。
エージェント開発者で、自分のエージェントパッケージを公開したいですか? ぜひ歓迎し、あなたの作品を宣伝したいと思います! ドキュメントを参照。
エージェントが呼び出すツールをサンドボックス化
nono は「エージェントをサンドボックスに入れる」だけでは終わりません。エージェントは実際の作業をツールに委任します: git、gh、curl、kubectl、パッケージマネージャー、ビルドスクリプト、MCP クライアント / サーバー、そして PATH 上にあるその他すべて。これらのツールは、シークレット、ネットワークアクセス、副作用が現れる場所であることがよくあります。ほとんどのサンドボックスは、シークレットがエージェント全体とすべてのツールから普遍的に利用可能になる包括的なポリシーをエージェントに与えるだけですが、nono は違います:
nono は、委任されたツールをエージェントの制御外にある独自の分離されたコマンドサンドボックスに入れることができます。エージェントは自身のセッションサンドボックスを取得しますが、制御されたツールを呼び出すと、nono のブローカーがそのツールを、独自のファイルシステムポリシー、ネットワークポリシー、認証情報を持つコマンドポリシーの下で起動します。コマンドサンドボックスは、そのコマンドサンドボックスポリシーがそう定めていない限り、セッションサンドボックスの広範な --allow 許可、CWD アクセス、生の認証情報パス、ネットワークアクセスを継承しません。
つまり、プロファイルは次のようなルールを表現できます:
- エージェントは
gitを呼び出せるが、gitはリポジトリ、信頼された Git 設定ファイル、Git オブジェクトストアのみを取得する - エージェントは
ghを呼び出せるが、ghは nono の認証情報プロキシを通じてのみ GitHub トークンを受け取る - そのトークンは、L7 フィルタリングを通じて選択された GitHub API メソッドとパスのみに対して使用できる
gitはチェーンポリシーの下でsshを呼び出せるが、エージェントからの直接のsshは拒否されたままである
ポリシーはプロンプトではなく、プロファイルに存在します。エージェントはツールを要求できますが、そのツールのサンドボックスを広げたり、新しいキーを発行したり、セッション内からエンドポイントポリシーをバイパスしたりすることはできません。
{
"command_policies": {
"credentials": {
"github-api": {
"type": "proxy",
"upstream": "https://api.github.com",
"credential_key": "keyring://gh:github.com/example?decode=go-keyring",
"env_var": "GH_TOKEN",
"inject_header": "Authorization",
"credential_format": "Bearer {}"
}
},
"commands": {
"gh": {
"from": {
"session": {
"sandbox": {
"fs_read": ["."],
"credentials": [
{
"name": "github-api",
"endpoint_policy": {
"default": "deny",
"allow": [
{ "method": "GET", "path": "/repos/nolabs-ai/nono/issues/**" }
]
}
}
]
},
"invocation_policy": {
"default": "deny",
"allow": [
{ "argv": { "prefix": ["issue", "list"] } },
{ "argv": { "prefix": ["issue", "view"] } }
]
}
}
}
}
}
}
}
詳細は Sandboxed Tool Execution をお読みください。
深く掘り下げる準備はできましたか?
docs にアクセスして、nono の豊富なコンポーザブルポリシーシステム、認証情報インジェクション、L7 フィルタリング、サプライチェーンセキュリティ、ロールバック、多重化、監査などを発見してください。
ライブラリサポート
nono は Rust、Python、TypeScript、Go 向けの FFI バインディングを提供します。
Python、TypeScript、Go バインディングとしても利用可能です。
コントリビューション
AI ツールを使用してコントリビュートすることを推奨します。ただし、提出する前に AI が生成したコードを理解し、注意深くレビューする必要があります。セキュリティが最重要です。変更がどのように機能するか理解できない場合は、まず Discord で質問してください。
セキュリティ
セキュリティ脆弱性を発見した場合は、公開 issue を開かないでください。Security Policy のプロセスに従ってください。
ライセンス
Apache-2.0