はじめに
PC のローカル環境で自律的に動作する AI エージェントが注目されるなか、軽量さと透明性を重視した選択肢として NanoClaw(ナノクロウ)が広がっています。OpenClaw のセキュリティ課題と複雑さへの対応として 2026 年 1 月頃に公開され、3 月には Docker との統合が発表されるなど、短期間で存在感を高めたプロジェクトです。GitHub のスター数は約 29,900 に達しています。
ファイル操作やコマンド実行の権限を AI に直接与える運用にはリスクが伴うため、NanoClaw は最初からコンテナ隔離を前提に設計され、エージェントがホスト OS 上ではなく Linux コンテナ内で動作するアーキテクチャを採用しています。
本記事では、NanoClaw を Docker で安全に動かすための公式手順を、正規リポジトリの確認から bash nanoclaw.shによる自動インストール、OpenClaw との違い、ローカル LLM や Podman の対応状況、トラブルシュートまで実務目線で整理します。
- NanoClaw の概要と OpenClaw との位置づけ
- Docker による隔離が推奨される理由と、Docker Sandboxes(MicroVM)の選択肢
- 動作要件(Node.js、pnpm、Docker、Claude Code)と料金面の前提
- 公式インストーラ
bash nanoclaw.shの動作と内部処理 - 推論モデルの選定(Claude ネイティブ / OpenAI / ローカル LLM)
- Podman 対応の現状と、NanoClaw と OpenClaw の使い分け基準
- 導入時に押さえておきたい制約と注意点
結論を先に述べると、NanoClaw の正規リポジトリは現在 nanocoai/nanoclawに整理されており、git clone後に bash nanoclaw.shを実行するだけで、依存解決・コンテナビルド・認証・チャネル連携まで自動で進みます。エージェントは Linux コンテナ内で動作し、明示的にマウントしたディレクトリ以外にはアクセスできません。より強い隔離が必要な場合は Docker Sandboxes(MicroVM)を選択できます(Linux 対応は実験的提供の段階)
NanoClaw とは
NanoClaw は、Anthropic の Claude Agent SDK を直接利用する OSS(MIT ライセンス)の AI エージェントランタイムです。維持・運営は NanoCo(作者は Gavriel Cohen 氏)が担い、2026 年 1 月の公開以降、3 月時点で 2 万スター・10 万ダウンロードを超える規模に成長しました。WhatsApp や Telegram、Slack、Discord をはじめ、Microsoft Teams、iMessage、Matrix、Google Chat、Webex、Linear、GitHub、WeChat、メールなど幅広いチャネルと連携し、自然言語で送ったメッセージに応じてエージェントがコマンド実行・ファイル操作・スケジュールタスクを実行します。
参考: NanoClaw README(GitHub)
“A lightweight alternative to OpenClaw that runs in containers for security.”
(セキュリティのためコンテナ内で動作する、OpenClaw の軽量な代替)
https://github.com/nanocoai/nanoclaw
NanoClaw と OpenClaw の関係
NanoClaw は OpenClaw の代替として位置づけられるプロジェクトです。OpenClaw が機能網羅型のチーム向けプラットフォームを志向するのに対し、NanoClaw は 個人向けの軽量な AI アシスタント にフォーカスしています。自律型 AI エージェントの基本概念やフルアクセス権限のリスクについては、関連記事『OpenClaw とは|自律型 AI エージェントの仕組みと基本機能』で整理しているため、あわせて読むと位置づけを理解しやすいです。
NanoClaw の主な特徴
- OS レベルの隔離: エージェントは Linux コンテナ内で動作、明示的にマウントしたディレクトリのみアクセス可能
- 小規模なコードベース: 単一プロセスと少数のソースファイル構成で、全体を短時間で読み切れる規模
- 設定ファイルレス: YAML や JSON での設定ではなく、Claude Code への自然言語指示でカスタマイズする思想
- Claude Agent SDK ネイティブ: 抽象化レイヤーを挟まず Claude の機能を直接利用し、他プロバイダーもオプションで追加可能
- メッセージング連携: WhatsApp、Telegram、Slack、Discord、Microsoft Teams、Gmail ほか多数に対応
NanoClaw を Docker で動かす理由
自律型 AI エージェントは、ターミナルでのコマンド実行やファイル操作を人に代わって自律的に行います。利便性が高い反面、ホスト OS に直接インストールして実行すると、AI が誤って重要なシステムファイルを削除したり、想定外の設定変更を行ったりするリスクを排除できません。
このリスクを抑える基本方針が、コンテナによるサンドボックス(隔離環境)での実行です。NanoClaw は最初からこのアプローチを採用しており、エージェントの操作権限は明示的にマウントしたディレクトリに制限されます。

参考: Docker Blog – Trusted AI Agents with NanoClaw
“Trusted agents are built with isolation by design.”
(信頼できるエージェントは、設計段階からの隔離によって成り立つ)
https://www.docker.com/blog/nanoclaw-docker-sandboxes-agent-security/
標準の Docker と Docker Sandboxes(MicroVM)の違い
NanoClaw は通常の Docker コンテナでも動作しますが、より強い隔離が必要な場合は、2026 年 3 月に Docker と発表された Docker Sandboxes 統合を活用できます。Docker Sandboxes はコンテナを MicroVM(マイクロ VM)内で動作させる仕組みで、独自のカーネルと Docker デーモンを持ち、ホストとの間にハードウェア仮想化の境界を設けます。

| 項目 | 通常の Docker コンテナ | Docker Sandboxes(MicroVM) |
|---|---|---|
| カーネル | ホスト OS と共有 | サンドボックス専用に分離 |
| 隔離強度 | プロセス・名前空間レベル | VM レベル(ハードウェア仮想化) |
| 想定用途 | 通常のアプリ実行・開発 | エージェントの自律実行・特権操作 |
| 起動コスト | 軽量・即時 | 通常のコンテナより 2〜5 秒程度重い |
| Linux 対応 | 安定 | 実験的(Docker Desktop + KVM が前提) |
通常運用では Docker で十分ですが、--dangerously-skip-permissionsのような許可スキップモードを実運用で試したい場合や、コンテナエスケープのリスクまで含めて遮断したい場合は Docker Sandboxes が選択肢になります。MicroVM の起動には、通常のコンテナと比べて 2〜5 秒程度のオーバーヘッドが加わります。
Linux での対応状況には注意が必要です。 Docker Sandboxes は 2026 年 1 月 30 日に正式提供が始まりましたが、当初の対応は macOS(Apple Silicon)と Windows が中心でした。Linux 向けは長くロードマップ段階にとどまり、直近の Docker Desktop で実験的対応(シングルユーザー・UID 1000)と WSL2 対応が追加された段階です。Linux で利用する場合は Docker Engine ではなく Docker Desktop が必要で、KVM が前提となります。
参考: Docker Desktop release notes
“Added experimental Linux support (single user only, UID 1000).”
(実験的な Linux 対応(シングルユーザー、UID 1000)を追加)
https://docs.docker.com/desktop/release-notes/
macOS での Apple Container オプション
macOS(特に Apple Silicon 環境)では、Docker の代わりに Apple Container を選択できます。Apple Silicon 向けに最適化された軽量ランタイムで、Docker Desktop よりも起動が速く、リソース消費が小さい点がメリットです。NanoClaw では /convert-to-apple-containerコマンドで切り替えられます。本記事は Linux / WSL2 環境を主軸に解説するため、Apple Container の詳細は公式ドキュメントを参照することをおすすめします。
動作要件と前提条件
NanoClaw を導入する前に、以下の動作要件と前提条件を確認します。
必要なソフトウェア
参考: NanoClaw 公式サイト – Requirements
“The requirements are Node.js 20+, pnpm 10+, Docker, and Claude Code.”
(必要要件は Node.js 20+、pnpm 10+、Docker、Claude Code)
https://nanoclaw.dev/
| ソフトウェア | 推奨バージョン | 備考 |
|---|---|---|
| Node.js | 22 LTS(最低 20 以上) | インストーラが未導入時に自動セットアップ |
| pnpm | 10 以上 | インストーラが未導入時に自動セットアップ |
| Docker | Docker Desktop または Docker Engine | macOS / Windows は Desktop、Linux は Engine |
| Claude Code | 最新版 | Anthropic 公式の CLI(@anthropic-ai/claude-code) |
| Git | 最新版 | リポジトリのクローン時に必要 |
対応プラットフォーム
- macOS: Intel / Apple Silicon の両方に対応
- Linux: Ubuntu 24.04 LTS 等の主要ディストリビューション
- Windows: WSL2 経由での動作(ネイティブ Windows は非対応)
認証・料金面の前提
NanoClaw 自体は MIT ライセンスで無料ですが、内部で Claude Agent SDK を利用するため、Anthropic への課金が前提となります。以下のいずれかが必要です。
- Claude Code サブスクリプション: 月額固定料金(OAuth 認証で利用)
- Anthropic API キー: 従量課金(API 呼び出しごとに課金)
NanoClaw はトークン消費を抑える設計ですが、メッセージングアプリでのやり取りが増えるほど Anthropic 側のコストが発生する点は認識しておくとよいです。
NanoClaw のインストール手順
NanoClaw のインストールは、公式インストーラ nanoclaw.sh一つで完了します。Dockerfileや docker-compose.ymlを手書きする必要はなく、リポジトリをクローンしてシェルスクリプトを実行すれば、依存関係のセットアップからエージェントコンテナのビルド、最初のチャネル連携まで自動で進みます。
実行前に、インストーラの事前チェックで確認される前提を把握しておくと進行がスムーズです。メモリは 4 GB 以上が前提で、約 3.7 GB を下回るとインストーラが警告します。Linux では root での実行は避ける構成(インストーラがユーザー作成を案内)で、Google Cloud の VM は動作しないことが知られています。
リポジトリのクローン
任意のディレクトリで、正規リポジトリをクローンします。
git clone https://github.com/nanocoai/nanoclaw.git
cd nanoclaw旧 qwibitai/nanoclawではなく、現行の公式導線である nanocoai/nanoclaw を指定する点に注意します。
インストーラの実行
クローンしたディレクトリで、インストーラを実行します。
bash nanoclaw.shnanoclaw.shは、Claude Code セッションの内側ではなく、通常のシェルから直接実行することをおすすめします。依存関係のブートストラップや OneCLI 設定、コンテナビルドの段階で、対話的なプロンプトと実シェル I/O が必要になるためです。
セットアップウィザードの流れ
スクリプトは事前チェック(RAM、root ユーザー、macOS では Homebrew)を行い、Node 22・pnpm・ネイティブモジュールを導入したうえで、対話式のセットアップウィザード(pnpm run setup:auto)へ引き継ぎます。途中で失敗しても、その場で AI 支援によるリカバリーが提示され、最初からやり直すのではなく失敗したステップから再開されます。
ウィザードは「Standard setup」を選ぶと、おおむね次の順で進みます。
| ステップ | 内容 |
|---|---|
| 1. システムチェック | 動作環境の検証 |
| 2. サンドボックスのビルド | エージェントコンテナイメージを作成(初回はベースイメージ取得を含め 3〜10 分) |
| 3. OneCLI vault | 認証情報の保管庫をインストール、または既存インスタンスを再利用 |
| 4. ランタイムの選択と接続 | 既定は Claude(ブラウザーでサインイン)。Codex を選んでその場で導入することも可能 |
| 5. アクセスルール | アシスタントに共有するディレクトリの範囲を設定(初期は空) |
| 6. バックグラウンドサービス | launchd(macOS)/ systemd ユーザーサービス(Linux)として起動 |
| 7. 呼び名の設定 | アシスタントが利用者を呼ぶ名前 |
| 8. 初回疎通 | アシスタントへ ping して応答を待つ(初回起動は 30〜60 秒) |
| 9. タイムゾーン | 自動検出のうえ確認 |
| 10. チャネル接続 | Telegram(推奨)・Discord・WhatsApp・Signal・iMessage・Slack・Teams、またはスキップ |
| 11. 最終チェック | 認証・サービス・チャネルの整合を確認 |
初回のサンドボックスビルドは、新規マシンで 3〜10 分かかります。途中で何らかの処理が失敗した場合は、AI 支援のリカバリーが起動して原因を切り分け、再開地点を提示します。
認証情報の取り扱い(OneCLI Agent Vault)
ランタイム接続のフェーズでは、Claude サブスクリプションでのブラウザーサインイン、OAuth トークン(sk-ant-oat…)、または API キー(sk-ant-api…)のいずれかで認証します。認証情報は OneCLI vault に保管され、コンテナ内には渡されません。
参考: NanoClaw 公式ドキュメント – Quick start
“Your agent never sees your API keys; the vault injects them into approved requests.”
(エージェントが API キーを直接見ることはなく、vault が承認済みのリクエストにのみ注入する)
https://docs.nanoclaw.dev/quickstart
この仕組みにより、エージェントが動作するコンテナ内に Anthropic の認証情報が平文で存在することを防いでいます。
チャネルの選択
最後にチャネルを接続します。セットアップ時に選べるのは Telegram(推奨)・Discord・WhatsApp・Signal・iMessage・Slack・Microsoft Teams で、スキップしてターミナルから使うこともできます。これ以外のチャネルは、セットアップ後に Claude Code で /add-<name>を実行して追加します。
最初は接続をスキップしてターミナルで動作確認し、その後 /add-telegram等で必要なチャネルを足していく流れが扱いやすいです。
インストール後の運用と動作確認
インストール完了後、NanoClaw は OS のバックグラウンドサービスとして登録されます。macOS では launchd、Linux では systemd ユーザーサービスとして起動し、各エージェントはメッセージ受信で起動し、アイドル時にスリープする独自の Docker コンテナサンドボックス内で動作します。エージェントのワークスペースは groups/、ランタイム状態は data/、ログは logs/配下に置かれます。WSL2 で systemd が無効な環境では、サービス常駐の代わりに手動起動が必要になる場合があります。
動作確認とログの確認
チャネルを接続した場合は、アシスタントから welcome メッセージが届きます。スキップした場合は、ターミナルから直接対話できます。
pnpm run chat hi動作の様子は、ログをライブで追って確認できます。
tail -f logs/nanoclaw.logセットアップ時の処理履歴は logs/setup.log、常駐後のランタイムの問題は logs/nanoclaw.logが最初の確認先になります。稼働中のエージェントコンテナは、通常の Docker コマンドで確認できます。
docker ps表示されたイメージ名やコンテナ名から、エージェントコンテナが起動しているかを把握できます。エージェントやグループ、セッションの状態は、付属の nclCLI からも確認できます。
Docker Sandboxes で動かす場合
Docker Sandboxes(MicroVM)上で運用する場合は、サンドボックス単位の操作コマンドで起動・停止・削除を管理します。
docker sandbox ls
docker sandbox stop nanoclaw
docker sandbox start nanoclaw
docker sandbox rm nanoclaw参考: Docker Blog – Run NanoClaw in Docker Shell Sandboxes
“NanoClaw is now running and listening for WhatsApp messages inside the sandbox.”
(NanoClaw がサンドボックス内で起動し、メッセージを待ち受けている状態)
https://www.docker.com/blog/run-nanoclaw-in-docker-shell-sandboxes/
推論モデルとランタイムの選択肢
NanoClaw は Claude を既定としつつ、推論モデルとコンテナランタイムの両面で選択肢を持ちます。検索で見られる「ローカル LLM」「Podman」といったニーズに対する現状を整理します。
推論モデルの選定(Claude / OpenAI / ローカル LLM)
NanoClaw の既定の推論エンジンは Claude(Claude Agent SDK ネイティブ)ですが、エージェントグループ単位で他のプロバイダーに切り替えられます。ローカル LLM を使いたい場合の入口もここにあります。
| プロバイダー | 追加コマンド | 対象 |
|---|---|---|
| Claude(既定) | 設定不要 | Claude Agent SDK ネイティブ |
| OpenAI(Codex) | /add-codex | ChatGPT サブスクリプションまたは OpenAI API キー |
| OpenRouter ほか | /add-opencode | OpenRouter・Google・DeepSeek 等 |
| ローカルモデル | /add-ollama-provider | Ollama 経由のオープンウェイトモデル |
既定では Claude が接続され、セットアップ後にグループ単位で Codex・OpenCode・ローカルの Ollama モデルへ切り替えられます。ローカル LLM を使いたい用途では /add-ollama-providerが該当しますが、NanoClaw の中核は Claude Agent SDK を前提に設計されているため、ローカルモデルの利用はオプション扱いである点を踏まえて選定するとよいです(詳細は公式ドキュメントの Agent providers を参照)。
Podman 対応の現状
検索では Podman での利用を探す動きも見られますが、現時点で Podman は公式の動作要件に含まれていません。 公式が前提とするランタイムは Docker(Desktop / Engine)と、macOS 向けの Apple Container です。Podman をドキュメントに加える提案は GitHub の Issue #957 として起票されていますが、対応は議論中の段階です(参考: https://github.com/qwibitai/nanoclaw/issues/957 )。
一部の派生・模倣サイトでは docker compose upでの起動や Podman 手順を掲載している例がありますが、公式の導入手順(bash nanoclaw.sh)とは異なります。Podman での運用を検討する場合は、公式サポート外である前提で、ランタイム差(デーモンレス構成、ネットワーク・ボリュームマウントの挙動差)を自分で検証する必要があります。
OpenClaw との使い分け
NanoClaw は OpenClaw の代替として登場した経緯があり、思想とアーキテクチャが大きく異なります。規模の差は公式の比較で具体的に示されています。
参考: The New Stack – NanoClaw and Docker
“NanoClaw is positioned as a minimalist, production-ready alternative to OpenClaw.”
(NanoClaw は OpenClaw の、最小構成で実運用に耐える代替として位置づけられる)
https://thenewstack.io/nanoclaw-docker-sandboxes-ai-agents/
規模・設計の比較
| 比較項目 | NanoClaw | OpenClaw |
|---|---|---|
| ソースファイル数 | 15 | 3,680 |
| コード行数 | 約 3,900 | 434,453 |
| 依存パッケージ | 10 未満 | 70 |
| 設定ファイル | 0 | 53 |
| 理解までの目安 | 8 分 | 1〜2 週間 |
| セキュリティモデル | OS コンテナ隔離 | アプリケーションレベルのチェック |
現行の公式数値では、NanoClaw のコードベースは OpenClaw と比べて大幅に小さく、設定ファイルを持たない点が際立ちます。コードベース全体を短時間で把握できる規模であることが、監査や継続カスタマイズのしやすさにつながっています。
設計思想・アーキテクチャの比較
| 比較項目 | OpenClaw | NanoClaw |
|---|---|---|
| 設計思想 | 機能網羅型(チーム・プロダクト向け) | 軽量・透明性重視(個人向け) |
| 隔離方式 | アプリケーションレベル(許可リスト、ペアリング) | OS レベル(Linux コンテナ) |
| 設定方法 | JSON 設定ファイル | 設定ファイルなし(Claude Code への自然言語指示) |
| 拡張モデル | コアに機能を統合 | スキル(/add-<name>)でフォークごとに必要分のみ追加 |
| 想定 AI モデル | 複数モデルを選択可能 | Claude Agent SDK ネイティブ(他プロバイダーはオプション) |
| メンテナンス | チーム・プロダクトの長期運用向け | 個人による継続カスタマイズ向け |
用途別の選定基準
| 利用ケース | 推奨 |
|---|---|
| 複数メンバーで共通エージェントを運用したい | OpenClaw |
| 設定ファイル中心で標準化された運用を行いたい | OpenClaw |
| コードベース全体を把握した上で安全に運用したい | NanoClaw |
| 個人アシスタントとして Claude を使いたい | NanoClaw |
| 隔離をアプリ層ではなく OS 層で担保したい | NanoClaw |
| 必要最小限の機能だけをフォークで管理したい | NanoClaw |
OpenClaw 側の仕組みやセキュリティ設計を詳しく知りたい場合は、関連記事『OpenClaw とは|自律型 AI エージェントの仕組みと基本機能』が参考になります。
制約事項・前提条件と注意点
NanoClaw を導入する際に押さえておきたい制約と注意点を整理しました。
v1 と v2 は互換性がない
NanoClaw v2 は v1 から大規模に書き直されており、v1 環境にそのままマージできません。v1 から移行する場合は、セットアップ前に移行スクリプトを実行します。
bash migrate-v2.sh移行スクリプトは v1 のインストールを検出し、状態を v2 のチェックアウトへ取り込みます。
Windows ではネイティブ非対応
NanoClaw は Windows ネイティブ環境では動作しません。Windows で利用する場合は WSL2 が前提です。WSL2 内で systemd が無効化されている環境では、サービス常駐の代わりに手動起動で対応します。
Docker Sandboxes の Linux は実験的
より強い隔離を得られる Docker Sandboxes は、Linux では実験的対応の段階です。Docker Engine ではなく Docker Desktop が必要で、KVM が前提となります。初期導入では通常の Docker から始め、運用が安定してから Docker Sandboxes へ移行する進め方が無難です。
設定ファイルレス設計の前提
NanoClaw は明示的な設定ファイル(YAML / JSON)を持たない設計です。チャネルの追加やトリガーワードの変更、送信者の許可範囲などは、Claude Code への自然言語指示でコードベース自体を書き換える形で実現されます。設定ファイル方式の運用に慣れている場合、最初は違和感を覚えやすいポイントです。
コンテナ隔離の限界
コンテナ隔離は「エージェントがホスト OS を破壊するリスク」を抑える有効な手段ですが、「許可された権限内での誤操作(誤送信や誤削除など)」までは防げません。導入時には、エージェントに公開するディレクトリ・チャネル・外部 API の範囲を最小限に絞ることをおすすめします。
トラブルシュート
インストールや運用中に起きやすい問題と対処を整理しました。
Node.js のバージョン不整合
bash nanoclaw.sh実行時、Node.js のバージョンが古いと依存パッケージのインストールに失敗することがあります。
node --versionv20 未満の場合は、Node.js 22 LTS への更新を検討します。インストーラ自体が自動セットアップを試みますが、既存環境とのコンフリクトを避けたい場合は、事前に nvm 等で Node.js 22 を導入しておくと進行がスムーズです。
ネイティブモジュールのビルド失敗
NanoClaw はネイティブモジュールを利用するため、C++ コンパイラが未導入の環境ではインストールに失敗することがあります。
# Ubuntu / Debian 系
sudo apt install build-essential
# 失敗した依存をクリーンアップして再インストール
rm -rf node_modules
pnpm installClaude Code が見つからない
ランタイム接続のフェーズで Claude Code が見つからずエラーになる場合は、グローバルにインストールします。
npm install -g @anthropic-ai/claude-code
claude --versionコンテナイメージのリビルドとインストーラの再開
エージェントが起動しない場合は、Docker Desktop(または Apple Container)が起動していることを確認します。既存インストールがあるディレクトリで bash nanoclaw.shを再実行すると、継続するかアンインストールするかを選べるため、ビルドのやり直しもここから行えます。
AI 支援の自動診断
bash nanoclaw.shの実行中に何らかのステップが失敗すると、AI 支援のリカバリーが起動して原因を診断し、再開地点を提示します。インストーラの内部処理を自分でデバッグする前に、この対話を試すことをおすすめします。
まとめ
本記事では、AI エージェント NanoClaw を Docker で安全に動かす公式インストール手順と、OpenClaw との違い、運用上の注意点を整理しました。正規リポジトリは nanocoai/nanoclawに整理され、git clone後に bash nanoclaw.shを実行するだけで導入が完了します。エージェントは Linux コンテナ内で動作し、明示的にマウントしたディレクトリ以外にはアクセスしません。
- 正規リポジトリは nanocoai/nanoclaw に整理(旧 qwibitai から移行)
- インストールは git clone 後に bash nanoclaw.sh を実行するワンコマンド
- エージェントは Linux コンテナ内で動作し明示マウント以外は不可
- 強い隔離が必要なら Docker Sandboxes(Linux は実験的提供)
- 推論モデルは Claude が既定、Codex やローカル Ollama に切替可能
- Podman は公式非対応で、要望は議論中の段階
- 利用には Anthropic への課金(サブスクまたは API キー)が前提
以上、最後までお読みいただきありがとうございました。
