世界を動かす技術を、日本語で。

Show HN: NanoClaw – Appleコンテナ隔離を用いた500行のTSによる「Clawdbot」

2026年2月2日原文(github.com)

概要

NanoClawは、Appleコンテナ上で安全に動作する軽量なClaudeアシスタント。 理解・カスタマイズが容易な小規模コードベースを特徴。 セキュリティはアプリケーションレベルでなく、OSレベルのコンテナ隔離を採用。 機能追加は「スキル」として提供し、ベースコードは最小限に。 自身のニーズに合わせてフォークし、Claudeに案内させてカスタマイズ可能。

NanoClawとは

  • Claude Agent SDK を活用した、 Appleコンテナ 上で動作するパーソナルアシスタント
  • 軽量設計 :1プロセス・数ファイルのみ、8分で全容把握可能なコードベース
  • セキュアな隔離 :各エージェントは Linuxコンテナ(Apple Container) で実行、明示的にマウントした領域のみアクセス可能
  • 構成ファイル不要 :設定は全てClaude Code経由で指示、 カスタマイズはコード修正 で対応
  • 1ユーザー特化 :汎用フレームワークではなく、目的特化型ソフトウェア

OpenClawとの違い

  • OpenClaw は52以上のモジュール・45以上の依存関係を持つ複雑構成
  • NanoClaw~500行のコアコード、ファイル数も最小限
  • エージェントは 実際のOSコンテナ で分離され、 共有メモリ・プロセス なし
  • セキュリティ重視 :アプリ内許可リストやペアリングコードでなく、 OSレベル隔離 を重視

クイックスタート

  • git clone https://github.com/gavrielc/nanoclaw.git
  • cd nanoclaw
  • claude コマンド実行後、 /setup で初期設定
  • Claude Code が依存関係・認証・コンテナ準備・サービス構成を自動処理

開発思想

  • 小さく理解可能 :1プロセス・少数ファイル、抽象化・メッセージキュー・マイクロサービスなし
  • 隔離による安全性 :bashコマンドも コンテナ内実行 でMac本体へ影響なし
  • カスタマイズ容易コード修正 で動作変更、設定ファイルスプロールなし
  • AIネイティブ :インストーラやダッシュボード不要、 Claude Code が全て案内・解決
  • スキル重視 :新機能はコード追加でなく、 /add-xxx 形式のスキルで拡張

利用可能機能

  • WhatsApp I/O :スマホからClaudeへメッセージ送信
  • グループごとに独立した記憶・ファイルシステム隔離
  • メインチャンネル :管理用プライベートチャット
  • スケジュールタスク :定期実行・Claudeからの通知
  • Webアクセス :検索・コンテンツ取得
  • オプション連携 :Gmail等は /add-gmail 等のスキルで追加

具体的な使い方

  • トリガーワード (デフォルト:@Andy)で指示
    • @Andy 毎週月曜8時にHacker NewsのAIニュース要約を送信
    • @Andy 毎朝9時にObsidianのsales pipeline概要を送信
  • メインチャンネル で管理
    • @Andy 全グループのスケジュールタスク一覧
    • @Andy Family Chatグループに参加

カスタマイズ方法

  • 設定ファイル不要、 Claude Code に自然言語で指示
    • 例:「トリガーワードを@Bobに変更」「今後は回答を短く簡潔に」
  • /customize コマンドで案内付きカスタマイズ
  • コードベースが小さいため、 Claudeによる安全な自動修正 が可能

コントリビューション方針

  • 新機能追加はスキルで :Telegram対応などは .claude/skills/add-telegram/SKILL.md 形式で貢献
  • ベースコードは最小限維持 :セキュリティ・バグ修正・基本設定改善のみ受け入れ
  • ユーザーは自分のforkにスキル適用 :不要な機能を抱え込まないクリーンなコード維持

スキル要望例(RFS)

  • /add-telegram :Telegramチャンネル追加・制御用にも対応
  • /add-slack/add-discord :各種チャネル追加
  • /convert-to-docker :Apple Container→Docker変換
  • /setup-windows :WSL2+DockerでWindows対応
  • /add-clear :会話コンテキスト圧縮コマンド追加

アーキテクチャ概要

  • WhatsApp(baileys) → SQLite → Polling loop → Container(Claude Agent SDK) → Response
  • Node.js単一プロセス :各エージェントは隔離コンテナで実行、IPCはファイルシステム経由
  • 主要ファイル
    • src/index.ts:メインアプリ
    • src/container-runner.ts:エージェントコンテナ管理
    • src/task-scheduler.ts:スケジュールタスク
    • src/db.ts:SQLite操作
    • groups/*/CLAUDE.md:グループごとの記憶

FAQ抜粋

  • なぜWhatsAppのみ? →作者がWhatsApp利用。forkしてスキルで他チャネル追加推奨
  • なぜApple Container? →軽量・高速・macOS標準。Docker化もスキルで対応可
  • Linuxで動く? →Claudeに「Linuxで動かしたい」と伝え、30分程度で対応可能
  • セキュリティは? →エージェントはOSコンテナで分離、明示的なマウントのみアクセス可
  • 設定ファイルがない理由? →設定スプロール防止、必要ならClaudeに追加指示
  • デバッグ方法? →Claude Codeに自然言語で質問、「/debug」コマンドも利用可
  • 受け入れられる変更は? →セキュリティ・バグ・基本設定改善のみ。新機能・拡張はスキルで

まとめ・特徴

  • クリーンで小規模なコードベース、セキュアなコンテナ分離
  • AIネイティブなカスタマイズ体験 :Claudeが全て案内
  • forkして自分専用に最適化、不要な機能を排除
  • MITライセンス、自由な拡張と貢献が可能

補足(運用者の声)

  • Clawdbot運用経験 :OpenClawは巨大・高権限で不安、NanoClawは 500行・完全隔離 で安心
  • 各チャットごとに独立したサンドボックス、まさに自分のためのアシスタント
  • スイスアーミーナイフではなく、あなた専用のツール としての最適解

Hackerたちの意見

クイックスタート git clone https://github.com/anthropics/nanoclaw.git これは公式のAnthropicプロジェクトなの?だって、そのリポジトリが存在しないんだよね。もしかして、クイックスタートが急いで作られすぎて、幻覚みたいになってるの?これは冗談じゃなくて、このプロジェクトの目的がセキュリティだって言ってるのに、OpenClawがレビューされてない不安定なものだって暗に示してるからさ。

今は修正されたみたい。

Claudeがこのコミットでそのリポジトリを幻覚したみたいだね。https://github.com/gavrielc/nanoclaw/commit/dbf39a9484d9c66b...

修正された、ありがとう。Claude Codeはどこにでも自分を挿入したがるんだよね。もしこれが明らかじゃなかったら言っておくけど:これは一人の開発者(私)が作った雰囲気重視の週末プロジェクトなんだ。ちょっと荒削りだけど、自分のニーズには合ってる(オブシディアンのボールトにマウントしたClaudeコードと、WhatsAppで簡単にcronジョブをスケジュールするために話すのがね)。350k LOCのプロジェクトを動かすより、これを動かす方がずっと気が楽だよ。これは他の人がそのまま使うものではないけど、自分のカスタムセットアップを作るためのしっかりした出発点になればいいな。

Clawdbotの素晴らしいところの一つは、すべての権限を許可して何でもできるところだよね。外部アクションがどんなダメージを与えるかは分からないけど、これがどうやってサンドボックス化されてるのかは謎だな。Appleのコンテナは素晴らしいよ、特にそれぞれが専用の軽量VMに1:1でマッピングされるから。ただ、初期リリースでいくつかバグが出たけど、今のところうまくいってるみたい。あまり多くのプロジェクトがこれを活用してないと思うけど。AIコードやその他の一般的なコード実行サンドボックスとしてAppleのコンテナを使ったのが、https://github.com/instavm/coderunner だよ。これをClaudeのコードや他のものに接続できる。

Clawdbotの素晴らしいところの一つは、何でもできる全ての権限を許可することだよ。これは、システム上の全ファイルに777の権限を与えることと実質的に違うの?

それがCSラボのスーパーユーザーのパスワードを渡してくれって言ったときのセリフだったんだ。どうなったと思う?全然動じなかったよ。多分、良かったんだろうね。教訓 - 自分を信じられない二年生を信じちゃダメだ(興奮しすぎて注意を怠るから)。Clawdbotは、鍵を求めてドアをノックしてくる100人の二年生みたいなもんだ。

Dockerの代わりにネイティブのAppleコンテナを使うのは面白い選択だね。Mac Miniのフットプリントを最小限に抑えるためだと思うけど、これってエージェントが標準のLinuxツールを実行する能力を制限しちゃうの?それとも、AIに標準コマンドのBSD/macOSの相当物を理解させるつもりなの?

自分の質問に答える方法があればいいのにね。何か検索するエンジンみたいなやつで。

意図してるかはわからないけど、Apple ContainerはマイクロVMで、コンテナよりもずっと良い隔離を提供してるよ(なじみのあるインターフェースを保ちながら)。

OpenClawの小型版のアイデアが好きだな。ちょっとした指摘だけど、約2500行のTypeScriptみたいだね(今モバイルデバイスだから、LOCの推定がずれてるかも)。それに、Appleコンテナは本当に面白そう。

最近、自分が作ったコードを積極的に宣伝するつもりなら(Claudeと一緒にね、別に悪くはないけど)、ドキュメント、少なくともREADMEは手書きで書くようにしてる。どんなプロジェクトのドキュメントからもLLMの匂いがすると、たとえそのプロジェクト自体のアイデアが好きでも気が引けるんだよね。理由を説明するのは難しいけど、もしそれを宣伝するほど気にかけるなら、実際に人対人でコミュニケーションを取るべきだと思うんだ。よく分からないけど、私の意見としては、完璧に書かれたマーケティングの長文よりも、問題を解決するためのコードがある理由を説明する5行の誤字だらけのREADMEを読みたいな。最近はコードを書くのが簡単だから、その余った時間を人とコミュニケーションを取るのに使ってほしいな。分からないけど。編集:コメントした後にREADMEをもっと人間が書いたように聞こえるように編集してるのを見たよ ;) https://github.com/gavrielc/nanoclaw/commit/40d41542d2f335a0...

Hacker Newsで議論の続きを見る