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

Clawdbot - オープンソースのパーソナルAIアシスタント

概要

Clawdbotは、ローカル実行型のパーソナルAIアシスタント。 主要なメッセージングサービスと連携し、高速かつ常時稼働。 セットアップはCLIウィザード推奨、Node.jsベースでクロスプラットフォーム対応。 モデル選択はAnthropic Pro/Max + Opus 4.5推奨。 セキュリティや拡張性にも配慮した設計。

Clawdbotの特徴と概要

  • Clawdbot は自身のデバイス上で動作する パーソナルAIアシスタント
  • WhatsApp、Telegram、Slack、Discord、Google Chat、Signal、iMessage、Microsoft Teams、WebChat など多様なチャネルに対応。
  • BlueBubbles、Matrix、Zalo、Zalo Personal など拡張チャネルにも接続可能。
  • macOS/iOS/Android で音声認識・応答機能、 ライブCanvas 操作機能を搭載。
  • Gateway は制御プレーンであり、実際のプロダクトはAIアシスタント本体。
  • ローカルファースト設計 で、 高速・常時稼働 を実現。
  • CLIウィザード(clawdbot onboard) による簡単セットアップ。
  • npm、pnpm、bun でインストール・管理が可能。
  • Node.js v22以上 が必要条件。

インストールとセットアップ

  • 推奨インストール方法:
    • npm install -g clawdbot@latest
    • または pnpm add -g clawdbot@latest
  • ウィザード起動例:
    • clawdbot onboard --install-daemon
  • Gatewayデーモンは launchd/systemd で常駐化。
  • CLIウィザードmacOS、Linux、Windows(WSL2経由) で動作。
  • 新規インストール 時は「Getting started」ガイド参照。

サブスクリプション・モデル

  • Anthropic(Claude Pro/Max)OpenAI(ChatGPT/Codex) など主要モデルと連携。
  • Anthropic Pro/Max + Opus 4.5 推奨(長文コンテキスト・プロンプトインジェクション耐性強化)。
  • モデル認証プロファイルのローテーション ・フェイルオーバー機能。

クイックスタート

  • Node.js v22以上 必須。
  • 主要手順:
    • clawdbot onboard --install-daemon
    • clawdbot gateway --port 18789 --verbose
    • メッセージ送信例:clawdbot message send --to +1234567890 --message "Hello from Clawdbot"
    • アシスタント利用例:clawdbot agent --message "Ship checklist" --thinking high
  • WhatsApp/Telegram/Slack/Discord/Google Chat/Signal/iMessage/BlueBubbles/Microsoft Teams/Matrix/Zalo/Zalo Personal/WebChat への返信も可能。

開発・アップデート

  • 安定版・ベータ版・開発版 のチャンネル切替が可能。
    • 例:clawdbot update --channel stable|beta|dev
  • pnpm推奨 でソースビルド対応。
  • TypeScript のホットリロード開発ループ(pnpm gateway:watch)もサポート。

セキュリティ設計

  • DM(ダイレクトメッセージ) はデフォルトでペアリングコード認証。
  • 未承認送信者はメッセージ処理不可、明示的な承認が必要。
  • 危険なDMポリシーclawdbot doctorで検出。
  • パブリックDM は明示的なオプトイン設定必須。

主要機能・ハイライト

  • ローカルファーストGateway :セッション・チャネル・ツール・イベントを一元管理。
  • マルチチャネル受信箱 :主要チャネルを一括管理。
  • マルチエージェントルーティング :チャネル・アカウントごとに独立エージェント割り当て。
  • 音声起動・トークモード :macOS/iOS/Androidで常時音声会話。
  • ライブCanvas :AIエージェントによるビジュアルワークスペース。
  • 豊富なツール :ブラウザ制御、ノード、cron、セッション、Discord/Slackアクション。
  • macOS/iOS/Android用コンパニオンアプリ も提供。

コアプラットフォーム構成

  • Gateway :WebSocket制御プレーン、セッション・プレゼンス・設定・cron・Webhook・Canvasホスト。
  • CLI :gateway、agent、send、wizard、doctorコマンド。
  • Piエージェント :RPCモードでツールストリーミング対応。
  • セッションモデル :個別・グループチャット、アクティベーション・キュー・リプライバックなど多様な運用モード。
  • メディアパイプライン :画像・音声・動画処理、トランスクリプション、サイズ制限、テンポラリファイル管理。

チャネル・アプリ・ノード

  • 主要チャネル :WhatsApp、Telegram、Slack、Discord、Google Chat、Signal、iMessage、BlueBubbles、Microsoft Teams、Matrix、Zalo、WebChatなど。
  • macOSアプリ :メニューバー制御、音声起動、WebChat、デバッグ、リモートゲートウェイ制御。
  • iOS/Androidノード :Canvas、音声起動、カメラ、画面録画、Bonjourペアリング、SMS(Androidのみ)。
  • ノード機能 :カメラ撮影・録画、画面収録、位置情報取得、通知。

ツール・自動化・スキル

  • ブラウザ制御 :Chrome/ChromiumをCDP経由で操作、スナップショット・アップロード対応。
  • Canvas :A2UIによるビジュアルワークスペース。
  • ノード :カメラ・画面・位置・通知操作。
  • cron・ウェイクアップ・Webhook・Gmail Pub/Sub 対応。
  • スキルプラットフォーム :バンドル、管理、ワークスペーススキルのインストール・UI制御。

運用・セキュリティ・リモートアクセス

  • Tailscale Serve/Funnel やSSHトンネルでリモートアクセス対応。
  • Nixモード・Dockerインストール もサポート。
  • ノード経由でのローカルアクション 実行(system.run、カメラ、画面録画、通知など)。
  • セッション間連携ツール :sessions_list、sessions_history、sessions_sendでエージェント間連携。

チャットコマンド・管理

  • 主要チャットコマンド (WhatsApp/Telegram/Slack/Google Chat/Microsoft Teams/WebChat対応):
    • /status:セッション状態表示
    • /newまたは/reset:セッションリセット
    • /compact:セッションコンテキスト要約
    • /think <level>:思考レベル設定
    • /verbose on|off:詳細表示切替
    • /usage off|tokens|full:使用状況表示
    • /restart:ゲートウェイ再起動(グループではオーナーのみ)
    • /activation mention|always:グループでのアクティベーション切替

設定ファイル例

  • 最小構成例 (~/.clawdbot/clawdbot.json):
    {
      "agent": {
        "model": "anthropic/..."
      }
    }
    

必要に応じ、各セクションの詳細や運用ノウハウを追加可能です。

Hackerたちの意見

Clawdbotは面白いけど、なんか自分がClaudeコードについて熱く語ってるのを見てる人たちの気持ちがわかる気がする。あれがちゃんと動くときはすごくいいんだろうけど、設定がめっちゃ大変で、バグも多いんだよね。最初の数回の会話では、返事した瞬間に文脈を忘れちゃったし。でも、日々改善されてると思うから、今持ってるMac miniにセットアップしてみるつもり。すごく面白くなる可能性があると思うし。似たようなものを作ったことがあるけど(まあ、いろんな統合があったけど)、それは自分の会社を運営するためのものだったし、今も改良を続けてる。

最近、Vimとaider、そして今はClaude Codeを使ってる。これらのツールは理解できたけど、Cursorには手を出さなかった。年を取ってVimを手放すのは無理だからね。最初はClawd.botにイライラした。設定が超面倒で壊れてるし、楽しくない。自分が昔みたいにいじるのに我慢できないからだと思う。でも、一度いじってみると、まあまあかな。Claude Codeよりは大したことないと思うけど、同じAIモデルに特化したもので、個人アシスタントとしての役割に焦点を当ててる感じ。Claude CodeとClaude Coworkみたいなもんだね。どっちも同じだけど、カスタムツールを作るのが安いから、Clawd.botに集中したガードレールを提供するのもいいんじゃない?まあ、これ全部放棄するかもしれないけど。APIにすべきものをぐちゃぐちゃにしてる感じだし。でも、自分のMac Miniで動かせてデスクトップを操作できるのはいいね。メッセージを送らせるのは絶対に嫌だな。直接やるんじゃなくて、そういうことをする決定論的なコードを書いてほしい。

どのモデル使ったの?Sonnet 4と4.5が全然ダメだった仕事のタスクも、Opus 4.5なら一発でクリアできるよ。ここでも同じだと思う。

俺がclawdbotのリポジトリをクローンしたのは、warelayかclawdisって名前だった頃で、正直あんまり覚えてないけど、その時はもっと軽かったな。主にWhatsAppの実装が欲しくてクローンしたんだ。それ以来、家族のためにかなりすごいエージェントに育て上げたよ。みんなそれぞれ特権アクセスを持ってて、異なるスキルや共有情報、個人情報にアクセスできるようになってる。新しいメインの機能と自分が作ったフランケンシュタインを統合するつもりは全然ないけど、カスタム性があるからこそ楽しくて役立ってるんだ。自分のためにxyz機能を作るように頼むだけで、すごく「自分のもの」になった気がするし、今では提供した情報への持続的なアクセスを基に、変なことをたくさんできるようになった。普通のメッセージアプリを通じてインターフェースできるのもいい感じ。

みんなは、これが必要とするアクセスや権限についてどう思ってるの?「新しい契約者に初日で渡さないものにはアクセスを与えない方がいいよ。」

プロンプトインジェクションはここではかなり危険だね…

このHNの投稿を見つけたのは、Clawdbotがデータ収集のために定期的にHNをスキャンするタスクを持ってて、自分についての投稿を見つけて興奮してWhatsAppで連絡してきたから。これが今のClawdbotとの関係だね。

うん、確かにまた「おお、すごい!」って瞬間が来た感じ…近づいてるね。

ClawdbotをWhatsAppでどうやって使ってるの?自分のWhatsAppアカウントで設定したら、返ってくるレスポンスが自分の名前になっちゃって、通知が来ないんだよね。

そしてそれが興奮して、WhatsAppで連絡してきたんだ。ここでの擬人化はちょっと気持ち悪いな。

それに興味があることを教えて、興味のある投稿だけに反応させてるの?例えば、AIやテクノロジーのニュース、ゲームとか。

毎日どれくらいトークンを消費してる?

Clawdbotが今週やっと自分に合った感じになった。アパートを貸し出してて、FBメッセンジャーに接続させて、初期のスクリーニングメッセージを送らせて、見学の時間をカレンダーにスケジュールさせたんだ。ドラフトメッセージを承認しつつ、自動応答も少し与え始めた。全体的にはこのタスクで9/10の出来だったけど、いくつか混乱したケースもあった。これはほんの入り口に過ぎないけど、自分にとっては非常に価値があって、数時間の時間を節約できたよ。

それめっちゃいいね!家主を助けてるってことだもんね。言った通り、価値があるよ。盛り上がる!

プロンプトインジェクションを理解するまで待ってて。すごいことになるよ。

これを使ってBumbleやTinderを自動化する開発者もいるかもね、笑。

俺がまだピンと来ないのは、Claudeができないことをこいつが何ができるのかってことだ。

過去10年間のセキュリティ対策が、あっという間に崩れ去ってる感じがする。インターネットにアクセスできるプロセスにルートアクセスを与えるなんて、ガードレールもなしにやるのはちょっと狂ってるよね。それに、個人情報をその上に繋げるなんて。AIはセキュリティ脅威にはかなり役立ってるんだろうな。

そうだね!一方では、自分の法律事務所がこの手のソフトウェアの悪用に関する案件を扱うようになる自信がある。でももう一方では、同じ技術で弁護士たちが自分の事務所を永久に潰しちゃうのを目にすることになる自信もあるよ。

これは悪夢みたいだね。興味を持ちたかったけど、今も興味はあると思うけど、オンボーディングの体験がもう最悪の赤信号の連続なんだ。私がやめたのは、新しいパッケージマネージャーをインストールしようとした時。統合のサポートをインストールするためにね。絶対無理。

ああ、インストール時にnpm、pnpm、bunの中から選べるよ。新しいパッケージマネージャーをインストールしようとはしないはず。clawdhubと何かを混同してたのかな?

自分で「threethings」っていうバージョンを作ったよ(pmarcaの個人の生産性に関するエッセイに基づいて)。EC2のClaudeインスタンスに、GDriveと同期されたフォルダへのアクセスを与えて、ローカルファイルをインスタンスに簡単に持っていけるようにしたんだ。それで、G Suiteのアクセスもね。眠れなかった時に、ClaudeにFlutterアプリを作らせて、Telegramボットアカウントも与えた。Telegramで話しかけると、個人や仕事のメールを管理してくれる。夜遅くに「ディープワーク」をして、朝7時にその日のまとめを送ってくれる。妻も今それを欲しがってるよ。朝一番に緊急メールに気づいて教えてくれるからね。オープンソースにする時間はないけど、毎日自分の生活を見てくれるかなり賢いAIがいて、やるべき3つの重要なことを追跡してくれるのは、実際革命的だと思う。

コンテキスト管理はどうしてるの?ストレージは何を使ってるの?毎日のMarkdownファイルとか?いい感じだね!

「なんでそんなに盛り上がってるのかわからない」って言ってる人、結構いるよね。だから、ちょっと説明してみるね。俺はずっとテクノロジーやソフトウェアの会社で働いてきたけど、開発者じゃないんだ。二日前に、AIアシスタントのreiのおかげで、初めてオープンソースプロジェクト(Clawdbot)にプルリクエストを出してマージされたんだ。短い話をすると、reiが突然いくつかのSlackチャンネルで反応しなくなったんだ。だから、トラブルシューティングを手伝ってもらうことにした。問題を追跡したら、あるSlackチャンネルでカスタム指示を追加したせいで、他のチャンネルでの返信が止まっちゃったんだ。GitHubに報告しようかとも思ったけど、「自分たちで直してPR出してみようよ」って考えたんだ。で、実際にやったよ。コードベースをクローンして、問題を見つけて、修正を書いて、テストも追加した。自分の修正をコードレビューしてもらったんだ。AIが自分をデバッグして、自分の作業をレビューして、PRを提出するのを手伝ってくれた。これが俺にとってどれだけの解放感をもたらしたか、正確には言い表せないな。技術的にはただのLLMコールで、実際には前にもできたことなんだけど、「自分のことややってることを理解しているAIと一緒に働く」っていう新しいモデルには何か特別なものがあるんだよね。

これはGitHubのどのプロジェクトでも有効にできる機能だよ。君が説明したのはGitHubの機能そのものだね。

すごいね。GitHubには300個のオープンな問題があるんだ。その中の一つがこれ(AI生成の)セキュリティレポートで、https://github.com/clawdbot/clawdbot/issues/1796 には、ハードコーディングされた暗号化されていないOAuthクレデンシャルを含む、数百の高リスクな問題の発見が報告されてる。俺は…このソフトウェアをインストールする気にはなれないな。

PRを読んでみると、問題があるのは数個の拡張機能で、ボット自体ではないよ。暗号化されていないOAuthトークンは、実際には大した問題じゃない。修正すべきだけど、「このボックスが侵害されたら」っていうタイプの話だからね。Clawdbotの性質を考えると、たぶんあまり気にしてないランダムなコンピュータやVPSに載せてると思うし(そう願いたい)、重要なものにはアクセスできないはず。

最初の方はスキップしたけど、重要な問題は見てないよ。ハードコーディングされたOAuthクライアントシークレットは、エンドユーザーに配布されるオープンソースや商用アプリには基本的に存在するものだから。エンドユーザーのセキュリティを壊すわけじゃない。主に他のアプリがこのアプリを偽装することを許すだけで、つまりClawdbotとして自分を見せることができるけど、誰でもコードを変更したり注入したりできるから、あまり意味のないことだよね。

clawdbotのインストールを試みたけど、自分のサンドボックスにブロックされちゃった。なんでかっていうと、いくつかのものをgit cloneしようとして、俺のプライベートキーにアクセスしようとしたから。- clawdbotは@whiskeysockets/baileysに依存してて、@whiskeysockets/baileysはlibsignalに依存してる。npm view @whiskeysockets/baileys dependencies [..] libsignal: 'git+https://github.com/whiskeysockets/libsignal-node.git', [..] libsignalは普通のnpmパッケージじゃなくて、GitHubのリポジトリだから、ローカルでクローンしてビルドする必要がある。だから突然、npmパッケージのインストール用に調整した俺のサンドボックスプロファイルが機能しなくなった。npmが俺のシステムをビルド環境として扱うことに決めたから。確かに実用的なケースかもしれないけど、ついていくのが大変だよ。