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

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

概要

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...

LLMを使ったプロジェクトのリリースは、機能性よりも他人に関心を持たせることに重点が置かれるようになったね。以前は、リポジトリにあるコードのプルーフ・オブ・ワークが、何かに多くの思考が注がれているというサインだった。でも今は、こういう雰囲気重視のプロジェクトに溢れるコードは、デフォルトで安っぽくてほとんど意味がない感じ。コーディングアシスタントに対して文句を言ってるわけじゃないよ。ただの現実だね。

100%同意だわ。もっとひどいことになってるよ。Readmeが妄想してるかどうかも確認してないみたい(ネタバレ:してるよ): https://news.ycombinator.com/item?id=46850317

OPです。あなたの視点には感謝するけど、そのフレーミングにはあまり納得できないな。AIを使って書いたりコーディングしたりして捕まったみたいに感じるから。隠そうとも思ってないし、ほとんどのコミットメッセージには「Co-Authored-By: Claude Opus 4.5」って書いてあるよ。確かに、文章にAIの匂いがあったって指摘されたから、誤字を直すみたいにそれを取り除いたら、文章が良くなった。正直、このコードには深い思い入れはないんだ。傑作じゃないし、私にとって非常に役立つ機能的なコードだよ。他の人にも役立つと思って共有してるだけ。プロダクションコードとしてではなく、参考や出発点として、彼らが自分のために(Claude Codeと協力して)機能的なカスタムソフトウェアを作るために使えるようにね。これを作るために、コーディングエージェントに指示を出すのに週末を費やしたよ。特にセキュリティに関して、アーキテクチャに時間と労力をかけた。まだ粗い状態のうちに投稿することにしたのは、今はこの作業を終わらせる必要があるから。ずっとこの迷路に入っていられないしね :) 他の人に役立つことを願ってるよ。あ、そうそう、Readmeが気に障ったのは知ってるけど、読めばこのプロジェクトの出所がもっと理解できると思うよ ;)

100%同意だわ。明らかにAIが書いたブログや「商品ページ」/リードミーを読むのが、マジで気持ち悪くなってきた。なんか「自分の製品やリードミーに興味ないから、お前も興味持つなよ」って感じがするんだよね。AIを使って実際のプログラムとかを書くのは全然問題ないんだけど、リードミーや商品ページがそうだと、もう試す気にもならないし、調べる気も失せる。

これ、いい感じだね!最近、Claude Pro/MaxのサブスクリプションをAPIキーの代わりに使えるか気になってたから、しっかりした答えを探してたんだ。公式のAgent SDKクイックスタートガイドによると、使えるみたいだよ: https://platform.claude.com/docs/en/agent-sdk/quickstart 特にこの部分ね。「Claude Codeをマシンにインストールした後、ターミナルでclaudeを実行して、プロンプトに従って認証を行ってください。このSDKはこの認証を自動的に使用します。」

うわ、これ投稿してくれてありがとう!初耳だったよ!この場合、OpenClawとかで大騒ぎになった理由がよくわからないな。公式SDKなしで使ってたのかな?だとしたら、サブスクリプションがあれば好きなエージェント的なものを作れるし、Claude Codeをインストールしてログインさえできれば、サブスクリプションも使えるってことになるね。

OPです。そうだね!これが私がこれを作ろうとした大きな動機だったよ。AnthropicがClawdbotを使ってるからアカウントを閉鎖するんじゃないかと不安なんだ。このプロジェクトはAgents SDKを使ってるから、利用規約に関しては問題ないはず。SDKをコンテナ内で正しく動かす方法がわからなかったから、oauthトークンをコンテナ環境に注入するハッキーな方法を選んだんだ。それでも利用規約には合ってるはずだけど、知ってる限りの唯一のセキュリティの欠陥は(あなたとWhatsAppグループにいる悪意のある人がエージェントにプロンプトを注入してoauthキーを共有させることができる)それなんだ。もし、コンテナ内で動いているエージェントと正しく認証セッションを動かす方法を教えてくれる人がいたら、すごく感謝するよ。

でも彼らのドキュメントにもこう書いてあるよね: > 事前に承認されていない限り、Anthropicは第三者の開発者がclaude.aiのログインや製品のレート制限を提供することを許可しません。Claude Agent SDKを使って作られたエージェントも含まれます。この文書に記載されているAPIキー認証方法を使用してください。これを解釈すると、エージェントSDKでClaudeコードのサブスクリプションを使えないってことだね、APIトークンだけ。Anthropicにはもっと明確にしてほしいし(他のツールでもサブスクリプションを使えるようにしてほしい)。

実行するのが本当に怖い これ、100回言っても足りない。大丈夫だと思ってたら、そうじゃなくなることがあるからね。そして、このClawを共有の会話スペースに接続するのは、まさにsimonwの致命的なトリプルコンボの後燃焼を最大に押し上げてる。これで多くの人がひどい目に遭うと思うよ。今、全てのブラックハットがこれを注視してるから、酔っ払ったロボットに全ての鍵を渡してるようなもんだ。

物事がうまくいかないことやセキュリティの問題があるのは理解してるけど、他にも少なくとも2つの問題があると思う。1つ目は、ChadGPTみたいに、回答に広告が追加される可能性があること(OpenAIがそうすると言ってたから、新しい「ChadGPT」って名前になったんだよね)。2つ目は、今の価格が本当に持続不可能で、10倍になる可能性があること。安くLLMに問い合わせられて、広告のない回答が得られる黄金時代に生きてるのかな?いろんなスレッドで「AIを使うのは、検索結果が汚染されててウェブが使えないから」って言ってる人たちのコメントを読んだよ。今は僕も同じことをしてる。「Gemini、HP Z640とHP Z840のワークステーションを比較して、特徴を表にして」 / 「どのXeon CPUがサポートされてるか調べて、新品の時の発売日と価格、今の中古の典型的な価格を教えて」。広告や有料ベンダーのおすすめが12個もついてくるのはいつだろう?

かもしれないね。人々は無防備なphpBBやWordpressのプラグインを使ってきたから、また同じサイクルかも。

技術に詳しくない人たちが「バイブコーディング」や「バイブでモデルを使ってる」って感じだけど、幻覚に注目してる気がする。幻覚がベンチマークで減ると信じて、安全なプロンプトを作る能力を過大評価してるんじゃないかな。悪意のあるプロンプトが引き起こす本当の脅威を見誤ってる人が多いと思う。そんなのあまり見かけないからね。クレジットカードが登場したときと同じで、詐欺やいろんな手口がすぐに出てきた。目に見えない本当の脅威があるけど、利用しようとする奴らがいるのは確かだし、一般の人が気づく前に不幸な例がたくさん出てくるだろうね…。

ありがとう!誰かがもっとまともなことをしてくれることを期待してた。Openclawはすごく便利だけど、君と同じように、恐ろしいって気持ちもわかるよ。SNSの要素を加える前からそう思ってた。今、僕のMac miniはそのせいで本当に電源切ってるんだ。