1. なぜ専用Mac miniでNanoClawを実行するのか?
NanoClawはホストが起動して接続されている間しか応答しません、クイックスタートにそう明記されています、ので、スリープするノートPCは選択肢になりません。必要なのは4 GB以上のRAMとDocker(macOSではDocker Desktop)を備えたMacまたはLinuxマシンで、GitHubの説明文では、セキュリティのためにコンテナで動作するOpenClawの軽量な代替と位置付けられています。共有Linux VPSはMac miniより安価な場合があるため、何を買うのかを明確にしておきましょう:誰とも共有しない専用1:1の物理Apple Silicon Mac、NanoClawのローカルiMessageバックエンドが動作する唯一のプラットフォーム、Docker Desktopのための本物のデスクトップセッション、そしてXcodeビルドやローカルモデルにも使えるマシンです。
| 項目 | クラウドVPS(共有インスタンス) | Mac mini(MyRemoteMac) |
|---|---|---|
| 月額コスト | サイズにより変動。専用インスタンスはより高額 | $85/月(M4)または$149/月(M6)、定額、1 Gbps込み |
| ハードウェア | 共有の仮想化されたCPUとRAM(NanoClawはGoogle Compute Engine VMを非サポートと明記) | 専用1:1の物理Apple Silicon Mac |
| コンテナランタイム | Linux上のDocker Engine | Docker Desktop for Mac(同じセッションごとのLinuxコンテナ) |
| iMessage(ローカルバックエンド) | 不可(macOSのみ) | iMessageにサインインしたMacで対応 |
| アクセス | SSH | 完全なroot権限、SSH、VNC、WireGuard VPN |
| 稼働率 | プロバイダーによる | 99.9% SLA |
NanoClawとは: 1つのNode.jsホストプロセスがチャットアプリからのメッセージをセッションごとのDockerコンテナにルーティングし、そこでエージェントがAnthropicのClaude Agent SDKを介してClaude Code上で動作します。設定ファイルは .env とSQLiteデータベース以外にありません:カスタマイズは、自分のチェックアウトのコードを変更するようClaude Codeに依頼して行います。執筆時点のバージョン:v2.4.0(2026年9月23日)、Gavriel Cohenが作成し、NanoCoが保守しています。
2. 前提条件
始める前に、以下を用意してください。以下の内容はすべて公式NanoClawのREADME、クイックスタート、インストールページに基づき、プラットフォームに関する事実はDockerとAnthropicの規約に基づいています:
- MyRemoteMac の専用Mac mini、M4は月額$85から(16 GB / 256 GB)、またはMac mini M6は月額$149から。NanoClawは4 GB以上のRAMを求めます(インストーラーは3,700 MB未満で警告を出します)。どのプランも余裕でこれを満たします。
- SSHとVNCアクセス(どちらもサブスクリプションに付属)。VNCは一度だけ必要です:Docker DesktopはGUIアプリケーションで、初回はデスクトップから起動する必要があります。
- Docker Desktop for Mac。NanoClawが起動する際は常に稼働している必要があります。Dockerの規約:個人利用、教育、非商用オープンソース、および従業員250人未満かつ年間売上高1,000万米ドル未満の企業は無料。それより大きな企業と政府機関は有料サブスクリプションが必要です。
- Homebrew、git、Node.js 22以上、pnpm 10。gitは必須です。インストーラーはHomebrewのインストールを提案し、Nodeとpnpmがなければ自らインストールします(Node 20は2.3.0以降サポート外)。
- Mac上のClaude Code CLI。これは任意ではありません:すべての /add-<channel> スキル、/customize、/debug、/update-nanoclaw、そしてインストーラーのエラー回復は、プロジェクトルートからClaude Code内で実行されます。
- console.anthropic.com で取得したAnthropic APIキー(sk-ant-api…)。トークン単位で課金されます。ウィザードはClaudeサブスクリプションでのサインインも提案しますが、Anthropicの法的規約では、OAuthはClaude CodeとAnthropic純正アプリの通常利用を目的としており、Agent SDK上に構築された製品はAPIキー認証を使うべきと定められています、そのため、ビジネス用途や常時稼働のデプロイにはキーを使ってください。
- エージェントを接続するためのTelegram、WhatsApp、またはDiscordのメッセージングアカウント(組み込みのターミナルチャネルには何も必要ありません)。
3. ステップ1:SSHで接続し、Docker DesktopとClaude Codeをインストールする
まず、MyRemoteMacダッシュボードの認証情報でMac miniにSSH接続し、インストーラーが見つけることを想定している2つのツールを確認します。NanoClawのインストーラーはHomebrew、Node、Dockerを代わりにインストールしてくれますが、Docker Desktopを事前にインストールしておけば、ウィザードが必要とする前に起動してデーモンを検証できます。
SSHで接続する
# Connect to your Mac mini
ssh admin@your-server-ip
# Verify you're on Apple Silicon
uname -m
# Expected output: arm64
# git is required (not auto-installed); Homebrew is offered by the installer if missing
git --version
brew --version
Docker Desktop for Macをインストールして起動する
これは、docker が見つからない場合にNanoClaw自身の setup/install-docker.sh がmacOSで実行するコマンドそのものです。Docker Desktopはデスクトップアプリケーションです:VNC経由でMacのデスクトップから一度起動し、次にSSHからデーモンが応答することを確認します。NanoClawの起動時にDocker Desktopが動いていないと、ホストは「FATAL: Container runtime failed to start」で終了します。
# Install Docker Desktop for Mac (the same Homebrew cask NanoClaw's installer uses)
brew install --cask docker
# Start Docker Desktop, a GUI app: do the first launch from the desktop (VNC)
open -a Docker
# The daemon must answer before NanoClaw can start
docker info
ホストにClaude Codeをインストールする
NanoClawの setup/install-claude.sh は、claude が見つからない場合に同じコマンドを実行します。これ以降、チャネル、プロバイダー、更新のすべてにClaude Codeを使います:
# Official Claude Code installer (the command NanoClaw's setup/install-claude.sh runs)
curl -fsSL https://claude.ai/install.sh | /bin/bash
claude --version
4. ステップ2:NanoClawをインストールしてClaude APIキーを構成する
NanoClawはグローバルにインストールするnpmパッケージではありません:リポジトリをクローンし、チェックアウトを自分自身のインストールに変えるワンショットインストーラーを実行します。その後はフォルダーをそのままの場所に置いておいてください、launchdのラベル、イメージ名、インストールスラッグはそのパスから導出されます。30~60分を見込んでください。ウィザードは対話式です。
クローンしてインストーラーを実行する
# Clone the canonical repo (nanocoai: the old qwibitai URL redirects here)
cd ~
git clone https://github.com/nanocoai/nanoclaw.git
cd nanoclaw
# One-shot installer: Node 22 + pnpm + Docker if missing, OneCLI gateway,
# credential registration, sandbox image, launchd service, optional channel
bash nanoclaw.sh
ウィザードは文書化された選択肢を順に案内します:Standard setup → Fresh agent → サンドボックスイメージ:Echoがビルドしたハードニング済みのプリビルドイメージを取得(無料のNanoClawサインインが必要、米国の単一リージョンから約800 MB)またはローカルでビルド(3~10分、アカウント不要、外部に一切接続しない、ヨーロッパやアジアからはこちらが速い場合あり)→ AIランタイム:Claude → Anthropic APIキーを貼り付け(推奨。「Sign in with my Claude subscription」も提示されますが、前提条件の注記を参照)→ メッセージングチャネルはSkip for now。インストーラーはキーをOneCLI Agent Vaultに保存します。これは2.4.0以降必須の認証情報ゲートウェイで、エージェントコンテナが生のAPIキーを保持することはありません。
スクリプト化された代替手段と最初のメッセージ
非対話的に実行したい場合は、インストールページにプロンプトへの回答を事前に設定するセットアップ時の変数が記載されています。いずれにせよ、プロジェクトフォルダーから組み込みのターミナルチャネルでテストしてください、コンテナの起動中は最初の応答に少し時間がかかることがあります:
# Scripted setup (documented alternative to the wizard)
pnpm install
pnpm run setup:auto
# Pre-answer prompts with NANOCLAW_AGENT_PROVIDER, NANOCLAW_CHANNELS,
# NANOCLAW_HARDENED_IMAGE, NANOCLAW_SKIP; NANOCLAW_NO_DIAGNOSTICS=1 disables setup diagnostics
# First message through the built-in CLI channel (no credentials needed)
pnpm run chat "hello, who are you?"
# Re-run individual steps later: rebuild the image, reinstall the service, health check
pnpm run setup -- --step container
pnpm run setup -- --step service
pnpm run setup -- --step verify
.envでモデルを選び、基本設定を行う
インストール全体の設定はプロジェクトルートの .env(セットアップがモード0600で作成)にあり、エージェントグループごとの設定はデータベースにあって ncl 管理CLIで編集します。2.4.0以降、モデル未設定のClaudeグループはOpus 5.5(claude-opus-5-5、100万トークンあたり入力$4 / 出力$20)を使います。Claude Sonnet 5は$2 / $10なので、コストを重視するパーソナルアシスタントならこちらに固定してください。他のプロバイダーはエージェントグループ単位です:/add-codex(OpenAI)と /add-opencode(OpenRouter、OpenAI、Google、DeepSeek)。ローカルモデル:READMEには /add-ollama-provider が記載されていますが、docs.nanoclaw.devのプロバイダーページでは、現在のmainでサポートされたドロップイン切り替えではないとされています、Claudeを置き換える手段ではなく、実験として扱ってください。
# Install-wide model for every Claude group with no model set
# (aliases sonnet | opus | haiku, or a full id such as claude-sonnet-5)
echo 'NANOCLAW_DEFAULT_MODEL=sonnet' >> .env
# Timezone for scheduled tasks and timestamps (IANA name)
echo 'TZ=Europe/Paris' >> .env
# .env is read only by the host process: restart it after edits
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
# Per-group overrides via the ncl admin CLI (symlinked at ~/.local/bin/ncl by setup)
ncl groups config update --id <group-id> --model opus
ncl groups config update --id <group-id> --timezone Europe/Lisbon
# Switch a group to another provider (takes effect on the next container spawn)
ncl groups config update --id <group-id> --provider opencode
5. ステップ3:メッセージングチャネルを接続する
チャネルは同梱されていません:それぞれプロジェクトルートから実行するClaude Codeスキルとしてオンデマンドでインストールされ、アダプターがチェックアウトに追加されます。最も早く動かせるのはTelegramです、@BotFatherでボットを作成し、スキルに求められたらトークンを貼り付け(.envに TELEGRAM_BOT_TOKEN として保存されます)、ワンタイムの6桁のペアリングコードを数字だけのメッセージとしてボットに送ります。ポーリングモードなので、公開URL、Webhook、開放ポートは不要です:
# Step 1: Open Telegram and search for @BotFather
# Step 2: Send /newbot and follow the prompts
# Step 3: Copy the token
# Every channel is a Claude Code skill run from the project root
cd ~/nanoclaw && claude
/add-telegram
# Paste the token when asked (stored as TELEGRAM_BOT_TOKEN in .env).
# The wizard prints a one-time 6-digit pairing code: send exactly those digits to the bot.
# Groups: BotFather -> /mybots -> Bot Settings -> Group Privacy -> Turn off
WhatsAppを接続する
ネイティブアダプターはWhatsApp Webプロトコル(Metaの公式APIではなくBaileys)を使います:約60秒ごとに更新されるQRコードをスキャンするか、WhatsApp → リンク済みのデバイスで8文字のペアリングコードを入力します。共有番号モードでは、アシスタントは自分の「自分」セルフチャットで応答します。専用番号にするには別のSIMを使い、ASSISTANT_HAS_OWN_NUMBER=true を設定します。コンプライアンスが重要なら、代わりに /add-whatsapp-cloud(Meta Cloud API)を使ってください:
claude
/add-whatsapp
# Scan the QR (rotates ~60 s) or enter the 8-character code in WhatsApp -> Linked Devices
# Auth state persists in store/auth/: keep that folder private
# Dedicated number (separate SIM) instead of your own chat:
# ASSISTANT_HAS_OWN_NUMBER=true in .env
# Meta's official Cloud API instead of the Web-protocol adapter:
# /add-whatsapp-cloud
Discord、iMessageなどを接続する
Discordはボットトークンとゲートウェイリスナーを使います(公開URL不要)。カタログにはSlack、Mattermost(2.4.0で新登場)、Signal、iMessage、Microsoft Teams、Google Chat、Matrix、Webex、WeChat、GitHub、Linear、Delta Chat、Emacs、Resend経由のメール、Dial経由の実際の電話番号も含まれます。ローカルiMessageバックエンドはmacOS限定の機能です:Mac miniがApple IDでiMessageにサインインしている必要があり、該当するnodeバイナリそのものにフルディスクアクセスが必要です(ホスト型のPhotonバックエンドはどちらも不要)。後で /add-<channel> スキルを再実行するとアダプターが更新されます。/manage-channels で各会話をエージェントグループに紐付けます:
claude
/add-discord
# others: /add-slack /add-imessage /add-signal /add-teams /add-mattermost /add-matrix ...
# Wire conversations to agent groups
/manage-channels
# Silent agent? Check why messages were dropped (no_agent_wired, no_agent_engaged, ...)
ncl dropped-messages list
ncl sessions list
6. ステップ4:launchdで24時間365日稼働させ、安全に更新する
24時間365日稼働させるには、NanoClawが起動時に立ち上がり、障害時に再起動する必要があります。インストーラーがすでにこれを処理しています:サービスのステップで、com.nanoclaw-v2-<slug> という名前のユーザーごとのlaunchd LaunchAgent(slug = プロジェクトパスのSHA-1の先頭8桁の16進文字。古いチュートリアルには2.3.0以前のラベル com.nanoclaw が残っています)がRunAtLoadとKeepAlive付きで書き込まれ、ログは logs/nanoclaw.log と logs/nanoclaw.error.log に出力されます。plistはPATHとHOMEのみを設定し、.envを読み込まないため、.envを編集するたびにホストを再起動してください。
サービスを確認して管理する
# Is the LaunchAgent loaded? Find your label (com.nanoclaw-v2-<slug>)
launchctl list | grep nanoclaw
ls ~/Library/LaunchAgents/ | grep nanoclaw
# Health: host + connected adapters (ncl status is new in 2.4.0)
ncl status
pnpm run setup -- --step verify
docker ps --filter label=nanoclaw-install
# Live logs
tail -f logs/nanoclaw.log logs/nanoclaw.error.log
# Restart (also after every .env edit) / stop / start / reinstall the service
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
launchctl unload ~/Library/LaunchAgents/com.nanoclaw-v2-<slug>.plist
launchctl load ~/Library/LaunchAgents/com.nanoclaw-v2-<slug>.plist
pnpm run setup -- --step service # regenerates the plist (wipes manual edits)
ヘッドレスのMac miniで再起動を乗り切る
この部分は、AppleとDockerのドキュメントをもとにまとめた当社の運用上の推奨です、NanoClawのドキュメントはヘッドレスMacを扱っていません。LaunchAgentはユーザーセッション内に存在し、Docker DesktopはGUIアプリなので、再起動後は誰かがログインするまで何も動きません。bash nanoclaw.sh を実行したのと同じユーザーアカウントで自動ログインを有効にしてください、LaunchAgentとDocker Desktopのサインイン時起動設定はどちらもユーザーごとなので、別のアカウントで自動ログインするとサービスは読み込まれず、Dockerも停止したままになります(Apple:FileVaultが有効な間は自動ログインを使用できません)。Macを再起動した人は誰でもそのセッションに入ることになる点に注意してください。これはSSH、VNC、WireGuard経由でのみ到達できる専用Mac miniでのみ許容されます。非管理者アカウントを使いたい場合は、そのアカウントでNanoClawをインストールしてください。ただし、Homebrewのインストールと sudo pmset の実行には依然として管理者が必要です(Docker Desktop自体は非特権ユーザーとして動作し、特定の機能に対してのみ特権アクセスを求めます)。次に、Docker Desktopの「Start Docker Desktop when you sign in to your computer」設定をオンにし、スリープを無効にします:
# 1. System Settings > Users & Groups > Automatic login = the user that ran bash nanoclaw.sh
# (over VNC; not available with FileVault on; LaunchAgent + Docker Desktop are per-user)
# 2. Docker Desktop > Settings > General > "Start Docker Desktop when you sign in to your computer"
# 3. Keep the Mac awake (same as in our OpenClaw guide)
sudo pmset -a sleep 0 disksleep 0 standby 0 powernap 0
# 4. Reboot-test, then log back in over SSH and check
sudo reboot
docker info
launchctl list | grep nanoclaw
NanoClawを更新する(git pullは厳禁)
アップグレードページには「Do not update with a raw git pull.」と明記されています。NanoClawは承認された各アップグレードを data/upgrade-state.json に記録し、起動時のトリップワイヤーが不一致を検出すると起動を拒否します。唯一サポートされる経路はClaude Codeでの /update-nanoclaw です:バックアップブランチとタグを作成し、別のworktreeにアップストリームをステージングし、検証(インストール、ビルド、テスト)を行い、サービスとコンテナを停止し、.env、data、groups、storeをスナップショットし、切り替えて、再起動してヘルスチェックします。作業ツリーがダーティな場合や、NanoClawがlaunchd配下で動いていない場合はブロックされます。2.4.0に移行する前に、未設定のClaudeグループがOpus 5.5に切り替わるのを望まないならモデルを固定してください:
# Optional: pin the model BEFORE upgrading (2.4.0 default for unset Claude groups is Opus 5.5)
echo 'NANOCLAW_DEFAULT_MODEL=sonnet' >> .env
# The only supported update path: inside Claude Code, from the project root
cd ~/nanoclaw && claude
/update-nanoclaw
# Refresh installed channel/provider skills only:
/update-skills
# After resolving merge conflicts, or to roll back after cutover:
pnpm exec tsx scripts/update-nanoclaw.ts resume --id "$id"
pnpm exec tsx scripts/update-nanoclaw.ts rollback --id "$id"
# Remove this checkout only (service, containers, image, data; .env backed up to .env.bak)
bash nanoclaw.sh --uninstall --dry-run
bash nanoclaw.sh --uninstall
7. セキュリティハードニング(最小権限)
NanoClawの脅威モデルは「エージェントはプロンプトインジェクションを受けると想定し、侵害されたエージェントに盗むものも逃げ場もないようにする」です。標準で各セッションは、非特権のnodeユーザーとして --cap-drop=ALL、--security-opt no-new-privileges、--init、pids制限、setuidビット除去付きの専用コンテナ内で動作します。ホストのホーム、.ssh、Dockerソケットは存在せず、OneCLIゲートウェイが認証ヘッダーを通信中に書き換えるため、コンテナがAPIキーを目にすることはありません。承認カード(パッケージ、MCPサーバー、サブエージェント、新規チャット登録)には管理者の回答が必要で、未回答なら自動的に拒否されます、これは維持してください。文書化された最も安全な構成は以下を追加し、承認やゲートウェイを決して無効にしません:
-
不明な送信者: 見知らぬ人が到達できるすべてのメッセージンググループで
--unknown-sender-policy strict(黙って破棄)またはrequest_approvalを設定します。 - マウント: 許可リスト(~/.config/nanoclaw/mount-allowlist.json)は置かないか最小限に、これがなければ追加のマウントはすべてブロックされ、.ssh、.gnupg、.aws、.kube、.docker、credentials、.env、.netrcはいずれにせよブロック対象パターンです。マウントは明示的に許可しない限り読み取り専用です。
- 分離:「迷ったら、より分離された状態から始める」。家族のチャットとクライアント用チャネルを1つのエージェントにすべきではありません。リポジトリとデプロイ認証情報をマウントしたエージェントは、見知らぬ人と話すエージェントとエージェントグループを共有してはいけません。グループ内でセッションを分けても機密性の境界にはなりません。
- 制限とエグレス: CONTAINER_CPU_LIMIT と CONTAINER_MEMORY_LIMIT を設定し、ツールがプロキシ経由で動作するようになったら NANOCLAW_EGRESS_LOCKDOWN=true を有効にします(すべてのトラフィックがゲートウェイ経由、コンテナは内部ネットワーク上)、プロキシ非対応のツールが動かなくなるため、デフォルトではオフです。
- ディスク上のシークレット: .envはモード0600で作成され、チャネルトークンのみを保持します。エージェントのAPIキーはVaultにあります。store/auth/(WhatsAppセッション)も非公開に保ってください、これは当社の推奨で、NanoClawの主張ではありません。セットアップは NANOCLAW_NO_DIAGNOSTICS=1 でない限り診断情報を送信します。
# Unknown senders: drop silently (or route to an approval card) on every reachable group
ncl messaging-groups list
ncl messaging-groups update --id <mg-id> --unknown-sender-policy strict
# or: --unknown-sender-policy request_approval
# Opt-in per-container caps (passed to docker create --cpus / --memory)
echo 'CONTAINER_CPU_LIMIT=2' >> .env
echo 'CONTAINER_MEMORY_LIMIT=8g' >> .env
# Once every tool works through the OneCLI proxy: no direct internet route for containers
echo 'NANOCLAW_EGRESS_LOCKDOWN=true' >> .env
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
# Mounts are deny-by-default and read-only unless the allowlist root sets allowReadWrite
ncl groups config add-mount --id <group-id> --host /path/on/mac --container /path/in/container
# Secrets on disk: .env must stay 0600 (setup creates it that way)
ls -l .env
サンドボックスがカバーしない残存リスク:侵害されたエージェントは、紐付けられた宛先へのメッセージ送信、自身のワークスペースとメモリの読み取りや破壊、付与された認証情報の消費、グループのメモリの汚染を依然として行えます、そのため、すべてのエージェントグループのスコープを狭く保ってください。
8. よくある問題のトラブルシューティング
「FATAL: Container runtime failed to start」
ホストの起動時にDocker Desktopが動いていませんでした、ログインセッションなしで再起動した後の定番です。デーモンを確認し、Docker Desktopを起動してから、NanoClawを再起動します:
# Is the Docker daemon up?
docker info
# Not running? Start Docker Desktop (first launch must be from the desktop over VNC)
open -a Docker
# Then restart NanoClaw and watch the logs
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
tail -f logs/nanoclaw.error.log
「NanoClaw stopped: update did not go through the supported path」
誰かが git pull を実行した(またはその他の方法でチェックアウトを変更した)ため、data/upgrade-state.json が一致しなくなりました。サポートされた更新をやり直すか、ステージング済みの更新を再開またはロールバックします:
# Never `git pull`. Run the supported update from the project root:
cd ~/nanoclaw && claude
/update-nanoclaw
# A staged update stuck in conflict, or a bad cutover?
pnpm exec tsx scripts/update-nanoclaw.ts resume --id "$id"
pnpm exec tsx scripts/update-nanoclaw.ts rollback --id "$id"
# The update is blocked on a dirty working tree, detached HEAD or a host not under launchd
git status
チャットでエージェントがまったく応答しない
多くの場合、クラッシュではなく紐付けかトリガーの問題です:エージェントはトリガー(デフォルトは ASSISTANT_NAME による @Andy。WhatsAppウィザードのデフォルトはNano)が一致した場合にのみ応答し、チャットはエージェントグループに紐付けられている必要があります。破棄されたメッセージとセッションを一覧表示します:
# Why were messages dropped? (no_agent_wired, no_agent_engaged, ...)
ncl dropped-messages list
ncl sessions list
# Wire the chat to an agent group
claude
/manage-channels
# Telegram: pending pairing codes live here; the message must contain only the 6 digits
cat data/telegram-pairings.json
手動マージした更新の後、ホストが起動を拒否する(認証情報ゲートウェイなし)
2.4.0以降、ホストは登録済みの認証情報ゲートウェイなしでは起動を拒否します。手動でマージしたフォークはOneCLI(またはIron Proxy)を登録し、.envの NANOCLAW_GATEWAY_PROVIDER を確認する必要があります。OpenCodeを使うインストールでは、さらに /add-opencode を再実行し、イメージを再ビルドしてグループを再起動する必要があります(コマンドは2.4リリースノートより):
# Register the gateway (OneCLI is the default; Iron Proxy is the alternative)
claude
/add-onecli
# or: /add-iron-proxy
# Check the provider recorded in .env (onecli | iron-proxy)
grep NANOCLAW_GATEWAY_PROVIDER .env
# OpenCode installs: re-run /add-opencode, then rebuild the image, restart the host and the groups
./container/build.sh build
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
ncl groups restart --id <group-id>
Mac miniの再起動後に何も動かない
LaunchAgentとDocker Desktopはどちらもユーザーセッション内にあります。サービスが登録されていること、インストーラーを実行したユーザーで自動ログインが有効であること、Docker Desktopがサインイン時に起動することを確認し、再起動テストを行います:
# Is the LaunchAgent registered?
launchctl list | grep nanoclaw
# Not listed? Reinstall it (regenerates the plist)
pnpm run setup -- --step service
# Docker not up after login? Enable "Start Docker Desktop when you sign in" (Settings > General)
docker info
# Then reboot-test again
sudo reboot
9. クラウドVPSとのコスト比較
NanoClaw自体は無料(MIT)です。支払うのはホストと、Anthropic APIキーでのモデル利用料です、NanoClawはサポートされた形でローカルモデルを実行しないため、どのホストでも同額です。Mac miniは専用の物理マシンなので、公平な比較対象は最安の共有VPSではなく、専用またはAIプランのクラウドインスタンスです:
| ユースケース | AIコール数/月 | クラウドVPSのコスト | MyRemoteMacのコスト | 月間の節約額 |
|---|---|---|---|---|
| パーソナルアシスタント、1チャネル | 約500コール | $120/月(専用AIプランインスタンス) | $85/月(Mac mini M4) | $35/月 |
| 小規模チーム、複数チャネル + スケジュールタスク | 約5,000コール | $200/月 | $85/月(Mac mini M4) | $115/月 |
| 同時稼働コンテナを持つ複数のエージェントグループ | 10,000コール以上 | $350以上/月 | $149/月(Mac mini M6) | $201以上/月 |
前提:VPSの価格は、専用AIプランインスタンスについて当社のガイド全体で使用している価格帯と同じで、特定のプロバイダーの見積もりではありません。共有の4 GB Linux VPSなら、どのMac miniプランよりも安価です。MyRemoteMacの価格は現在の月額料金(USD、税別、1 Gbps込み)です。モデル利用料はどちらの側でも別途かかります:Opus 5.5は100万トークンあたり入力$4 / 出力$20、Sonnet 5は$2 / $10です(platform.claude.com、2026年9月)。NanoClawはホスト、Docker Desktop VM、セッションごとのコンテナのRAMやCPUフットプリントの数値を公開していないため、プランのアドバイスは定性的なものにとどまります。
どのプランを選ぶか: 16 GBのMac mini M4(月額$85)は、パーソナルアシスタントや小規模チームのボットのホストとして十分余裕があります、NanoClaw自身の最低要件は4 GBです。Docker Desktop VMと並行して複数のエージェントグループが同時にコンテナを実行する場合や、同じMacでiOSアプリもビルドする場合は、Mac mini M6 を選んでください。トークン料金を予測可能に保つには、NANOCLAW_DEFAULT_MODEL=sonnet を設定し、Opusは必要なグループにだけ使いましょう。
10. NanoClaw vs. OpenClaw
NanoClawは自らを明確にOpenClawと対比して位置付けています:READMEは、OpenClawが約50万行のコード、53個の設定ファイル、70以上の依存関係を持ち、セキュリティはOSレベルの分離ではなくアプリケーションレベル(許可リスト、ペアリングコード)だと主張しています、これはNanoClawのREADMEの数値であり、独自に計測したものではありません。当社のOpenClawガイドをもとにすると、Mac mini上での実際的な違いは次のとおりです。OpenClawはグローバルnpmインストール(Node 26.1以上推奨)、単一のGatewayプロセス、JSON5設定ファイル、チャネル同梱、Docker不要。NanoClawは git clone + bash nanoclaw.sh、Node 22以上とpnpm 10、ホストにDocker Desktop、Homebrew、Claude Codeが必要、設定ファイルなし(カスタマイズは自分のチェックアウト内のコード)、各セッションをcap-dropとno-new-privileges付きのLinuxコンテナで実行、マウントをデフォルトでブロック、認証情報ゲートウェイでAPIキーをサンドボックスの外に保持。チャネルはスキルとしてオンデマンドでインストールし、更新は /update-nanoclaw 経由のみ。要するに:NanoClawは構造的により安全ですが運用は重く(常時稼働のDocker Desktop VM、GUIログインセッション、大企業向けのDockerライセンス規則、30~60分の対話式セットアップ、自分で保守するフォーク)、OpenClawはインストールと設定が軽い一方でアプリケーションレベルの権限チェックに依存します。どちらもデフォルトはClaudeで、NanoClawはエージェントグループごとにCodexとOpenCodeを追加できます。Mac miniのコストはどちらも同じです。
すでにOpenClawを使っていますか?NanoClawには /migrate-from-openclaw が付属しています。これはClaude Codeによるガイド付きの対話で、OpenClawのエージェントをエージェントグループに、チャットを紐付け済みのメッセージンググループに、IDENTITY.md/SOUL.mdを instructions.prepend.md と memory/ に、スキルを container/skills に、チャネルトークンを .env に、APIキーをOneCLI Vaultに、cronジョブをnclタスクに、MCPサーバーをグループごとの設定に、許可リストを unknown_sender_policy とロールにマッピングします。WhatsAppは再認証が必要で、human delayとTTSにはv2の同等機能がありません。ゼロから始めるなら、選ぶ前に当社のMac miniでのOpenClawガイドとHermes Agentガイドをお読みください。
11. FAQ
NanoClawは無料で使えますか?
はい。NanoClawはMITライセンスで、GitHubスター3万以上、Gavriel Cohenが作成しNanoCoが保守しています。支払うのはMac mini(MyRemoteMacでM4は月額$85から、M6は月額$149から)と、Anthropic APIキーでのClaude利用料です。Docker Desktopは個人利用と、従業員250人未満かつ売上高1,000万米ドル未満の企業では無料で、それより大きな企業と政府機関は有料のDockerサブスクリプションが必要です。
Mac miniに本当にDocker Desktopが必要ですか?
はい。macOSではNanoClawにDocker Desktopが必要で、インストーラーが brew install --cask docker で追加します。Dockerが標準搭載のランタイムです(NANOCLAW_RUNTIME_DRIVER=docker、2.3.0以降は選択可能なドライバー層の背後にあります)。Apple独自のコンテナツールは現時点でサポートされたランタイムではありません、v2の /add-apple-container の作業はオープンなドラフトプルリクエストです。すべてのエージェントセッションが専用のLinuxコンテナで動作することこそが、NanoClawのセキュリティモデルの要です。
APIキーの代わりにClaudeサブスクリプションを使えますか?
NanoClawのウィザードは「Sign in with my Claude subscription」を提示し、OAuthトークンを受け付けます。しかしAnthropicの法的規約では、OAuth認証はサブスクライバーによるClaude CodeとAnthropic純正アプリケーションの通常利用のみを目的としており、Agent SDK上に構築する開発者はAPIキー認証を使うべきで、Anthropicは予告なくこれを強制できると定められています。ビジネス用途や常時稼働のデプロイでは、ConsoleのAPIキーを使い、Claude.aiの認証情報を決して保存・共有しないでください。
NanoClawにはどのMac miniプランを選ぶべきですか?
NanoClawは4 GB以上のRAMを求めるだけで、それ以上のフットプリント数値を公開していないため、アドバイスは定性的です:16 GBのMac mini M4(月額$85)なら、パーソナルアシスタントや数チャネルの小規模チームボットを余裕でホストできます。Docker Desktop VMと並行して複数のエージェントグループが同時にコンテナを実行する場合や、同じMacでXcodeビルドやその他のワークロードも実行する場合は、月額$149からのMac mini M6を選んでください。
Mac miniを再起動してもNanoClawは動き続けますか?
はい、ユーザーセッションが復帰する限りは動きます:インストーラーはユーザーごとのLaunchAgent(com.nanoclaw-v2-<slug>、KeepAlive)を登録し、Docker DesktopはGUIアプリなので、ヘッドレスのMac miniでは bash nanoclaw.sh を実行したのと同じユーザーアカウントで自動ログインを有効にし(どちらもユーザーごと。FileVaultが有効だと使用不可)、Docker Desktopのサインイン時起動設定をオンにし、pmsetでスリープを無効にしてください。テスト再起動後に launchctl list | grep nanoclaw と docker info で確認します。このヘッドレス構成は当社の推奨であり、NanoClawのドキュメントはコンピューターを起動して接続したままにするようにとしか述べていません。
既存のOpenClaw環境をNanoClawに移行できますか?
はい。NanoClawのプロジェクトルートからClaude Codeで /migrate-from-openclaw を実行してください:OpenClawのエージェントをエージェントグループに、チャットをメッセージンググループに、IDENTITY.mdとSOUL.mdを instructions.prepend.md と memory/ に、スキルを container/skills に(同じ形式)、チャネルトークンを .env に、APIキーをOneCLI Vaultに、cronジョブをnclタスクに、許可リストを送信者ポリシーにマッピングします。WhatsAppは意図的に移行されません、QRを再度スキャンします、し、human delayとTTSにはv2の同等機能がありません。
12. 出典と参考資料
本ガイドのすべてのコマンド、パス、変数、要件は、2026年9月28日に公式NanoClawリポジトリ(nanocoai/nanoclaw、v2.4.0は2026年9月23日リリース、旧qwibitaiのURLはそこにリダイレクトされます)とdocs.nanoclaw.dev、およびプラットフォームに関する事実についてはDocker、Anthropic、Appleのドキュメントに照らして確認しました。エージェント内のClaude Codeビルドなどのバージョン固定はリリースごとに変わるため、現在の値は以下のページで確認してください:
- GitHub:nanocoai/nanoclaw(README、LICENSE、package.json、nanoclaw.sh)
- docs.nanoclaw.dev:クイックスタート
- docs.nanoclaw.dev:インストール
- docs.nanoclaw.dev:セキュリティモデル
- docs.nanoclaw.dev:分離レベル
- docs.nanoclaw.dev:設定
- docs.nanoclaw.dev:認証情報
- docs.nanoclaw.dev:認証情報ゲートウェイ(OneCLI、Iron Proxy)
- docs.nanoclaw.dev:ハードニング
- docs.nanoclaw.dev:アップグレード
- docs.nanoclaw.dev:トラブルシューティング
- docs.nanoclaw.dev:環境変数リファレンス
- docs.nanoclaw.dev:チャネルの概要
- docs.nanoclaw.dev:Telegram
- docs.nanoclaw.dev:WhatsApp
- docs.nanoclaw.dev:iMessage
- docs.nanoclaw.dev:プロバイダー(Claude、Codex、OpenCode、Ollamaの状況)
- docs.nanoclaw.dev:Echoハードニング済みランタイムイメージ
- docs.nanoclaw.dev:v1 / OpenClawからの移行
- docs.nanoclaw.dev:変更履歴(v2.4.0、2026-09-23)
- GitHub:docs/release-2.4-update.md(デフォルトモデルの変更、固定)
- GitHub:setup/install-docker.sh(Homebrew経由のDocker)
- Docker:MacにDocker Desktopをインストール
- Docker:料金FAQ(Docker Desktopのライセンス)
- Docker Desktop:設定(サインイン時に起動)
- Claude Code:法務とコンプライアンス(OAuth vs APIキー)
- platform.claude.com:Claudeモデルの概要と料金
- Appleサポート:自動ログインとFileVault
- TechCrunch(2026-03-13):NanoClawの作者とDockerとの提携
- Docker Docs:Docker Desktop for Macの権限要件(非特権ユーザーとして動作)
関連ガイド
Mac miniにOpenClawをインストール
より軽量でDocker不要の代替:グローバルnpmインストール、単一のGatewayプロセス、JSON5設定、チャネル同梱。
Mac miniにHermes Agentをインストール
Nous Researchのセルフホスト型エージェント。学習ループ、ワンライナーインストーラー、ローカルOllama対応。
Mac mini M4でLLMを実行する
Ollama、llama.cpp、ローカル言語モデルをApple Siliconでネイティブに実行し、推論コストをゼロに。
Mac mini M6をレンタル
月額$149からのM6プラン:同時稼働のエージェントコンテナとDocker Desktop VMのためのより大きな余裕。