
nono v0.71.0
あらゆるAIエージェントを数秒でサンドボックス化 - ゼロセットアップ、ゼロレイテンシ。
[!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 を利用しています。
多くの製品に模倣されています — nono はゼロレイテンシー・ゼロセットアップのエージェントサンドボックスを開拓し、エージェントサンドボックス分野で革新とリードを続けています。
クイックスタート
curl
curl -fsSL https://nono.sh/install.sh | sh
macOS / Linux (Homebrew)
brew install nono
その他のプラットフォーム — Debian/Ubuntu、Fedora、Arch、RHEL、openSUSE、WSL2、Nix:インストール手順 を参照してください。
実行する!
レジストリでエージェントを検索して、実行します:
$ 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"] } }
]
}
}
}
}
}
}
}
詳細は サンドボックス化されたツール実行 をご覧ください。
もっと深く知りたい?
ドキュメント にアクセスして、nono の豊富な構成可能ポリシーシステム、認証情報の注入、L7 フィルタリング、サプライチェーンセキュリティ、ロールバック、多重化、監査などをご確認ください。
ライブラリサポート
nono は Rust、Python、TypeScript、Go 向けの FFI バインディングを提供しています。
Python、TypeScript、Go バインディングとしても利用できます。
コントリビューション
コントリビューションには AI ツールの活用を推奨しています。ただし、AI が生成したコードは、提出する前に必ず内容を理解し、慎重にレビューしてください。セキュリティが最優先です。変更内容の仕組みがわからない場合は、まず Discord で質問してください。
セキュリティ
セキュリティの脆弱性を発見した場合は、公開の issue を開かないでください。セキュリティポリシー に記載されたプロセスに従ってください。
ライセンス
Apache-2.0