NanoClaw のインストール手順と Docker による隔離|OpenClaw との違い

  • URLをコピーしました!
目次

はじめに

PC のローカル環境で自律的に動作する AI エージェントが注目を集めるなか、軽量・透明性重視の選択肢として NanoClaw(ナノクロウ) が登場しました。OpenClaw のセキュリティ課題と複雑性への対応として 2026 年 1 月頃に公開され、3 月には Docker と公式パートナーシップを締結するなど、急速に存在感を高めているプロジェクトです。

ファイル操作やコマンド実行の権限を AI に直接与える運用にはリスクが伴うため、NanoClaw は最初からコンテナ隔離を前提に設計されており、エージェントがホスト OS 上ではなく Linux コンテナ内で動作するアーキテクチャを採用しています。

本記事では、NanoClaw を Docker で安全に動かすための公式手順を、必要環境の確認から bash nanoclaw.sh による自動インストール、OpenClaw との違い、トラブルシュートまで実務目線で解説します。

この記事でわかること
  • NanoClaw の概要と OpenClaw との位置づけ
  • Docker による隔離が推奨される理由と、Docker Sandboxes(MicroVM)の選択肢
  • 動作要件(Node.js、pnpm、Docker、Claude Code)と料金面での前提
  • 公式インストーラ bash nanoclaw.sh の動作と内部処理
  • インストール後の動作確認・チャネル連携の流れ
  • NanoClaw と OpenClaw の使い分け基準
  • 導入時に押さえておきたい制約と注意点

NanoClaw とは

NanoClaw は、Anthropic の Claude Agent SDK を直接利用する OSS(MIT ライセンス)の AI エージェントランタイムです。WhatsApp や Telegram、Slack、Discord 等のメッセージングアプリと連携し、自然言語で送信したメッセージに応じてエージェントがコマンド実行・ファイル操作・スケジュールタスクを実行します。

参考: NanoClaw 公式サイト – About
“It runs as a single Node.js process, uses real container isolation rather than application-level sandboxing, and is small enough to understand completely.”
(単一の Node.js プロセスとして動作し、アプリケーションレベルではなく実際のコンテナ隔離を採用、コードベース全体を理解できるほど小規模)
https://nanoclaw.dev/

NanoClaw と OpenClaw の関係

NanoClaw は OpenClaw の代替として位置づけられるプロジェクトです。OpenClaw が「機能網羅型のチーム向けプラットフォーム」を志向するのに対し、NanoClaw は 「個人向けの軽量な AI アシスタント」 にフォーカスしています。自律型 AI エージェントの基本概念やフルアクセス権限のリスクについては、関連記事『【OpenClaw】オープンソースの自律型 AI エージェントとは?仕組みと基本機能』もあわせて参照すると理解しやすいです。

NanoClaw の主な特徴

OS レベルの隔離

エージェントは Linux コンテナ内で動作し、明示的にマウントしたディレクトリのみアクセス可能

小規模なコードベース

1 プロセス、少数のソースファイル構成。コードベース全体を短時間で読み切れる規模

設定ファイルレス

YAML や JSON での設定ではなく、Claude Code への自然言語指示でカスタマイズする思想

Claude Agent SDK ネイティブ

抽象化レイヤを挟まず、Claude の機能を直接利用

メッセージング連携

WhatsApp、Telegram、Slack、Discord、iMessage、Microsoft Teams、Gmail 等に対応

NanoClaw を Docker で動かす理由

自律型 AI エージェントは、ターミナルでのコマンド実行やファイル操作を人間に代わって自律的に行います。便利である反面、ホスト OS に直接インストールして実行した場合、AI が誤って重要なシステムファイルを削除したり、想定外の設定変更を行ったりするリスクを排除できません。

このリスクを抑える基本方針が、コンテナによるサンドボックス(隔離環境)での実行です。NanoClaw は最初からこのアプローチを採用しており、エージェントの操作権限は明示的にマウントしたディレクトリに制限されます。

参考: NanoClaw README – Security Model
“Agents run in containers, not behind application-level permission checks. They can only access explicitly mounted directories.”
(エージェントはアプリケーションレベルの許可チェックではなくコンテナ内で動作し、明示的にマウントされたディレクトリのみにアクセスできる)
https://github.com/qwibitai/nanoclaw

標準の Docker と Docker Sandboxes(MicroVM)の違い

NanoClaw は通常の Docker コンテナでも動作しますが、より強い隔離が必要な場合、2026 年 3 月に Docker と発表された Docker Sandboxes 統合 を活用できます。Docker Sandboxes はコンテナを MicroVM(マイクロ VM) 内で動作させる仕組みで、通常のコンテナと比較して以下の差があります。

項目通常の Docker コンテナDocker Sandboxes(MicroVM)
カーネルホスト OS と共有サンドボックス専用に分離
隔離強度プロセス・名前空間レベルVM レベル(ハードウェア仮想化)
想定用途通常のアプリ実行・開発エージェントの自律実行・特権操作
起動コスト軽量・即時通常のコンテナよりやや重い

通常運用では Docker で十分ですが、--dangerously-skip-permissions のような許可スキップモードを試したい場合や、コンテナエスケープのリスクまで含めて遮断したい場合は Docker Sandboxes の利用を推奨します。

macOS での Apple Container オプション

macOS(特に Apple Silicon 環境)では、Docker の代わりに Apple Container を選択することも可能です。Apple Silicon 向けに最適化された軽量ランタイムで、Docker Desktop よりも起動が速く、リソース消費が小さいというメリットがあります。本記事では Linux / WSL2 環境を主軸に解説するため、Apple Container については公式ドキュメントを参照することを推奨します。

動作要件と前提条件

NanoClaw を導入する前に、以下の動作要件と前提条件を確認します。

必要なソフトウェア

参考: NanoClaw 公式サイト – Requirements
“The requirements are Node.js 20+, pnpm 10+, Docker, and Claude Code — the installer (bash nanoclaw.sh) will install Node, pnpm, and Docker for you if they’re missing.”
(必要要件は Node.js 20+、pnpm 10+、Docker、および Claude Code。インストーラ bash nanoclaw.sh は Node・pnpm・Docker が未導入の場合は自動でインストールする)
https://nanoclaw.dev/

ソフトウェア推奨バージョン備考
Node.js22 LTS(最低 20+)インストーラが未導入時に自動セットアップ
pnpm10 以上インストーラが未導入時に自動セットアップ
DockerDocker Desktop または Docker EnginemacOS / Windows は Desktop、Linux は Engine
Claude Code最新版Anthropic 公式の CLI(@anthropic-ai/claude-code
Git最新版リポジトリのクローン時に必要

対応プラットフォーム

  • macOS:Intel / Apple Silicon の両方に対応
  • Linux:Ubuntu 24.04 LTS 等の主要ディストリビューション
  • WindowsWSL2 経由での動作(ネイティブ Windows は非対応)

認証・料金面の前提

NanoClaw 自体は MIT ライセンスで無料ですが、内部で Claude Agent SDK を利用するため、Anthropic への課金が前提となります。以下のいずれかが必要です。

  • Claude Code サブスクリプション:月額固定料金(OAuth 認証で利用)
  • Anthropic API キー:従量課金(API 呼び出しごとに課金)

NanoClaw はトークン消費を抑える設計になっているものの、メッセージングアプリでのやり取りが増えるほど Anthropic 側のコストが発生する点は認識が必要です。

参考: NanoClaw 公式サイト – FAQ
“It runs on the Claude Agent SDK, which requires a Claude API key or a Claude Code subscription. The cost depends on how much you use it.”
(Claude Agent SDK 上で動作するため、Claude API キーまたは Claude Code サブスクリプションが必要。コストは利用量に依存する)
https://nanoclaw.dev/

NanoClaw のインストール手順

NanoClaw のインストールは、公式インストーラ nanoclaw.sh 一発で完了します。Dockerfile や docker-compose.yml を手書きする必要はなく、リポジトリをクローンしてシェルスクリプトを実行するだけで、依存関係のセットアップからエージェントコンテナのビルド、最初のチャネル連携まで自動で進みます。

STEP
リポジトリのクローン

任意のディレクトリで、NanoClaw v2 のリポジトリをクローンします。

git clone https://github.com/qwibitai/nanoclaw.git nanoclaw-v2
cd nanoclaw-v2

参考: NanoClaw GitHub Repository
“nanoclaw.sh walks you from a fresh machine to a named agent you can message. It installs Node, pnpm, and Docker if missing, registers your Anthropic credential with OneCLI, builds the agent container, and pairs your first channel.”
nanoclaw.sh はクリーンマシンからメッセージ送信可能なエージェントまでを案内する。Node・pnpm・Docker の自動インストール、OneCLI への Anthropic 認証情報登録、エージェントコンテナのビルド、最初のチャネルのペアリングまで実行する)
https://github.com/qwibitai/nanoclaw

STEP
インストーラの実行

ローンしたディレクトリで、インストーラを実行します。

bash nanoclaw.sh

nanoclaw.sh は Claude Code セッションの内側ではなく、通常のシェルから直接実行することを推奨します。 Node・pnpm・Docker のブークトストラップや OneCLI 設定、コンテナビルドの段階で対話的なプロンプトと実シェル I/O が必要になるためです。

STEP
インストーラが実行する処理の中身

nanoclaw.sh は線形のフローで、1 つずつ質問に答えていく対話式のインストーラです。途中で Ctrl+C で中断しても、再実行時に前回の続きから再開されます。

インストーラ内部では、以下の処理が順番に実行されます。

Phase処理内容
1. environmentプラットフォーム判定、WSL 検出、コンテナランタイム(Docker / Apple Container)の選択
2. dependenciesNode.js 22、pnpm、Docker が未導入の場合に自動インストール
3. containercontainer/build.sh を実行し、nanoclaw-agent:latest イメージをビルド
4. onecliOneCLI Agent Vault をインストールし、Anthropic 認証情報を登録
5. claude authclaude setup-token を実行し、ブラウザ経由で OAuth 認証(API キー利用も選択可)
6. channel pairing最初のチャネル(Telegram / Discord / WhatsApp / ローカル CLI)のペアリング
7. servicesystemd(Linux)/ launchd(macOS)/ start-nanoclaw.sh(WSL)でのサービス登録

途中で何らかの処理が失敗した場合、Claude Code が自動で起動して問題を診断・修復し、再開地点を提示します。

参考: NanoClaw Quick start – Official Documentation
“If any step fails, Claude Code is invoked automatically to diagnose and resume from where it broke. You don’t have to debug the installer yourself.”
(途中の処理が失敗した場合、Claude Code が自動的に起動して問題を診断し、中断地点から再開する。インストーラを自分でデバッグする必要はない)
https://docs.nanoclaw.dev/quickstart

STEP
認証情報の取り扱い

claude setup-token のフェーズでは、ブラウザが起動して Anthropic 認証画面が開きます。OAuth 認証完了後、長期有効なトークンが OneCLI Agent Vault に保存されます。

OneCLI Agent Vault は、認証情報をコンテナ内には渡さず、プロキシ層で外向き API リクエストにのみ注入する仕組みです。これにより、エージェントが動作するコンテナ内に Anthropic API キーが平文で存在することを防いでいます。

API キーでの利用を選択した場合は、ブラウザ認証はスキップされ、API キーをパスワードプロンプトで入力する流れに切り替わります。

STEP
チャネルの選択

最後のフェーズで、最初のメッセージングチャネルを選びます。

  • Telegram:BotFather から取得したボットトークンを入力
  • Discord:Discord Developer Portal で発行したトークンを入力
  • WhatsApp:QR コードをスマートフォンの WhatsApp で読み取りペアリング
  • ローカル CLI:認証不要、ターミナル上で直接対話

最初は認証手間のかからないローカル CLI を選んで動作確認し、その後 /add-telegram 等のスキルコマンドで他チャネルを追加する流れが扱いやすいです。

サービスとして常駐させる仕組み

インストール完了後、NanoClaw は OS 起動時に自動起動するサービスとして登録されます。

OS仕組み備考
Linuxsystemd ユーザサービスloginctl linger 有効化で SSH ログアウト後も継続動作
macOSlaunchd~/Library/LaunchAgents/ 配下に登録
WSL2(systemd 無効)start-nanoclaw.sh ラッパー手動実行または .bashrc への組み込みで対応

動作確認とチャネル連携

インストール完了後、NanoClaw が正しく動作しているかを確認します。

エージェントへの初回メッセージ

インストーラの最後で表示される起動パターンに従って、選択したチャネルでエージェントにメッセージを送信します。Telegram を選択した場合の例を示します。

@Andy hello

エージェント名(@Andy の部分)はインストール時に指定した名前になります。応答が返ってくれば、エージェントコンテナが正常に起動しており、Claude Agent SDK 経由で Anthropic API への通信も成立している状態です。ローカル CLI を選択した場合は、ターミナル上で直接対話できます。

ログの確認方法

NanoClaw は 3 種類のログストリームを生成します。想定外の挙動が発生した際の最初の確認先として、それぞれの役割を把握しておくと有用です。

ログ役割主な確認場面
logs/setup.logインストール時の処理履歴インストール失敗時の原因切り分け
logs/setup-steps/NN-<name>.log各 Phase の生出力特定フェーズで失敗した際の詳細確認
サービスログ常駐後のエージェント動作ログ応答遅延・チャネル切断等のトラブル時

Linux 環境でのサービスログは journalctl --user -u nanoclaw で確認できます。

コンテナの状態確認

NanoClaw はホスト上の Node.js プロセスから per-session のエージェントコンテナを動的に起動します。現在動作中のコンテナは、通常の Docker コマンドで確認できます。

docker ps --filter "ancestor=nanoclaw-agent:latest"

イメージそのものの存在を確認したい場合は、以下を実行します。

docker images nanoclaw-agent

イメージが存在しない場合は、cd container && bash build.sh でリビルドできます。

チャネルの追加とカスタマイズ

最初に選択したチャネル以外を追加する場合は、Claude Code を起動した上で対応するスキルコマンドを実行します。

claude
# Claude Code 起動後、以下のいずれかを実行
# /add-telegram
# /add-slack
# /add-discord
# /add-whatsapp

各スキルコマンドはチャネル固有の認証情報の入力プロンプトを表示し、必要なモジュールをコードベースに統合した上でコンテナイメージを再ビルドします。

NanoClaw と OpenClaw の使い分け

NanoClaw は OpenClaw の代替として登場した経緯があり、両者は思想とアーキテクチャが大きく異なるため、用途によって使い分けるのが現実的です。

参考: NanoClaw GitHub – Comparison with OpenClaw
“OpenClaw has 52+ modules, 8 config management files, 45+ dependencies, and abstractions for 15 channel providers. Security is application-level (allowlists, pairing codes) rather than OS isolation.”
(OpenClaw は 52+ モジュール、8 個の設定管理ファイル、45+ の依存、15 チャネルプロバイダー分の抽象化を持つ。セキュリティは OS 隔離ではなくアプリケーションレベル(許可リスト、ペアリングコード)である)
https://github.com/DevRickLin/nanoclaw

設計思想・アーキテクチャの比較

比較項目OpenClawNanoClaw
設計思想機能網羅型(チーム・プロダクト向け)軽量・透明性重視(個人向け)
隔離方式アプリケーションレベル(許可リスト、ペアリング)OS レベル(Linux コンテナ)
コードベース規模52+ モジュール、45+ 依存1 プロセス、少数のソースファイル
設定方法JSON 設定ファイル(~/.openclaw/openclaw.json 等)設定ファイルなし(Claude Code への自然言語指示)
拡張モデルコアに機能を統合スキル(/add-<channel>)でフォークごとに必要分のみ追加
想定 AI モデルClaude を含む複数モデル選択可能Claude Agent SDK ネイティブ(他モデルはオプション追加)
メンテナンスチーム・プロダクトの長期運用向け個人による継続カスタマイズ向け

用途別の選定基準

利用ケース推奨
複数メンバーで共通エージェントを運用したいOpenClaw
設定ファイル中心で標準化された運用を行いたいOpenClaw
コードベース全体を把握した上で安全に運用したいNanoClaw
個人アシスタントとして Claude を使い倒したいNanoClaw
隔離をアプリ層ではなく OS 層で担保したいNanoClaw
必要最小限の機能だけをフォークで管理したいNanoClaw

OpenClaw の詳細については、関連記事『【OpenClaw】オープンソースの自律型 AI エージェントとは?仕組みと基本機能』も参考になります。

制約事項・前提条件と注意点

NanoClaw を導入する際に押さえておきたい制約と注意点を整理しました。

v1 と v2 は互換性がない

NanoClaw v2 は v1 から大規模な書き直しが行われており、v1 環境にそのままマージすることはできません。既存 v1 ユーザーが v2 へ移行する場合は、専用の移行スクリプトを使います。

bash migrate-v2.sh

migrate-v2.sh は v1 のインストールディレクトリを検出し、データベース・グループフォルダ・スケジュールタスク・チャネル認証状態を v2 にマージします。v1 のインストールはそのまま残す設計となっており、新旧の切り替えは手動で実施します。

参考: NanoClaw README – Migration
“migrate-v2.sh finds your v1 install (sibling directory, or NANOCLAW_V1_PATH=/path/to/nanoclaw), migrates state into the v2 checkout”
migrate-v2.sh は v1 のインストールを兄弟ディレクトリまたは環境変数 NANOCLAW_V1_PATH から検出し、v2 のチェックアウトに状態を移行する)
https://github.com/qwibitai/nanoclaw

Windows ではネイティブ非対応

NanoClaw は Windows ネイティブ環境では動作しません。Windows で利用する場合は WSL2 が必須です。WSL2 内で systemd が無効化されている環境では、サービス常駐は start-nanoclaw.sh ラッパー経由となり、ログイン時に手動実行するか .bashrc 等に組み込む形で対応します。

Docker Sandboxes 利用時の追加パッチ

通常の Docker での動作と比較して、Docker Sandboxes(MicroVM)での動作には追加のパッチ作業が必要です。具体的には、サンドボックスの MITM プロキシによる証明書問題、/dev/null バインドマウント不可制約への対応、外向き API リクエストのプロキシ経由化などです。

主な対応点:

  • container/Dockerfile にプロキシ用ビルド引数(http_proxyhttps_proxyNODE_EXTRA_CA_CERTS 等)を追加
  • .env/dev/null シャドウマウントを空ファイルに置き換え
  • src/credential-proxy.ts で外向きリクエストに HttpsProxyAgent を適用

初期導入では通常の Docker から始め、運用が安定してから Docker Sandboxes へ移行する進め方を推奨します。

参考: nanoclaw/docs/docker-sandboxes.md
“NanoClaw needs several patches to work inside a Docker Sandbox. These handle proxy routing, CA certificates, and Docker-in-Docker mount restrictions.”
(NanoClaw を Docker Sandbox 内で動作させるには複数のパッチが必要。これらはプロキシルーティング、CA 証明書、Docker-in-Docker のマウント制約に対応するものである)
https://github.com/qwibitai/nanoclaw/blob/main/docs/docker-sandboxes.md

設定ファイルレス設計の前提

NanoClaw は明示的な設定ファイル(YAML / JSON)を持たない設計思想を採用しています。チャネルの追加、トリガーワードの変更、タイムアウト調整、送信者許可リスト等のすべてが、Claude Code への自然言語指示でコードベース自体を書き換える形で実現されます。設定ファイル方式の運用に慣れている場合、最初は違和感を覚えやすいポイントです。

コンテナ隔離の限界

コンテナ隔離は「エージェントがホスト OS を破壊するリスク」を抑える有効な手段ですが、「エージェントが間違った相手にメールを送る」「受信箱を誤って削除する」といった、許可された権限内での誤操作は防げません。NanoClaw の答えは「セットアップ時にマウントとアクセスをスコープする」というアプローチです。導入時には、エージェントに公開するディレクトリ・チャネル・外部 API の範囲を最小限に絞ることを推奨します。

トラブルシュート

インストールや運用中に発生しやすい問題と対処を整理しました。

Node.js のバージョン不整合

bash nanoclaw.sh 実行時、Node.js のバージョンが古いと依存パッケージのインストールに失敗することがあります。

node --version

v20 未満の場合は、Node.js 22 LTS への更新を推奨します。インストーラ自体が自動セットアップを試みますが、既存環境とのコンフリクトを避けたい場合は、事前に nvm 等で Node.js 22 を導入しておくと進行がスムーズです。

better-sqlite3 のビルド失敗

NanoClaw は better-sqlite3 を利用しており、C++ コンパイラが必要です。開発ツールチェインが未導入の環境ではインストールに失敗します。

# Ubuntu / Debian 系
sudo apt install build-essential

# 失敗した依存をクリーンアップして再インストール
rm -rf node_modules package-lock.json
pnpm install

Claude Code がインストールされていない

claude setup-token のフェーズで Claude Code が見つからずエラーになる場合、グローバルにインストールします。

npm install -g @anthropic-ai/claude-code
claude --version

コンテナイメージが見つからない

エージェントが起動しない場合、コンテナイメージの存在を確認します。

docker images nanoclaw-agent

存在しなければリビルドします。

cd container
bash build.sh

Docker Desktop(または Apple Container)が起動していることもあわせて確認します。

WhatsApp の認証期限切れ

WhatsApp チャネルのセッションが切断された場合、QR コードでの再ペアリングが必要です。

npm run auth

インストーラの再開

bash nanoclaw.shCtrl+C で中断した場合、再実行すると前回の続きから再開されます。完全に最初からやり直したい場合は、logs/setup.log を削除した上で再実行します。

Claude Code による自動診断

bash nanoclaw.sh 実行中に何らかのフェーズが失敗すると、Claude Code が自動で起動して原因を診断し、修正案を提示します。インストーラの内部処理を自分でデバッグする前に、Claude Code のセッションでの対話を試すことを推奨します。

まとめ

本記事では、AI エージェント「NanoClaw」を Docker で安全に動かすための公式インストール手順と、OpenClaw との違い、運用上の注意点を解説しました。

  • NanoClaw は OpenClaw の軽量代替:個人向けの透明性・最小構成を志向し、コードベース全体を把握できる規模に設計されている
  • コンテナ隔離が前提のアーキテクチャ:エージェントは Linux コンテナ内で動作し、明示マウントされたディレクトリ以外はアクセス不可
  • 動作要件は Node.js 22、pnpm 10+、Docker、Claude Codebash nanoclaw.sh が未導入分を自動でセットアップ
  • インストールはワンコマンドgit clone 後に bash nanoclaw.sh を実行するだけで、依存解決・コンテナビルド・認証・チャネル連携まで完了
  • 強い隔離が必要なら Docker Sandboxes:MicroVM ベースで通常コンテナよりも一段強い分離が得られる(追加パッチが必要)
  • OpenClaw との使い分け:チーム標準化・設定管理重視なら OpenClaw、個人カスタマイズ・OS 隔離重視なら NanoClaw
  • Anthropic への課金が前提:Claude Code サブスクリプションまたは API キーの利用コストが発生

NanoClaw は、AI エージェントを「便利だが怖い存在」から「権限境界を明示した上で安心して動かせる存在」に変える具体的な選択肢です。導入前にコードベースを一読してから動かすことが可能なほど小規模である点も、運用上の安心感につながります。

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次