メインコンテンツへスキップ
通常、AIがWhatsAppを読むのは、すでに作業しているときだけです。AIが待機中のときに書き込んでも、メッセージは待たされます。 zapbipコネクタはこれを解決します。あなたのコンピュータで開いたままにしておく小さなプログラムです。WhatsAppで書き込むと、すでに使っていたAIのセッションを起こし、あなたのメッセージを渡して、あなたに答えさせます。Claude Codeで約7 秒、Codexで約6 秒かかります。 Claude CodeとCodexで動作します。コンピュータの電源が入って起きており、コネクタが動いている必要があります。

コマンド

ZAPBIP_CONNECTION_URL に接続リンクを入れます。connect と listen は、設定されていないとリンクを尋ねます。

必要なもの

  • すでにzapbipに接続されているClaude CodeまたはCodex。
  • AIに作業させたいフォルダに、以前のセッションが少なくとも1つあること。
  • Node 24以降。
  • 接続リンク。AIがzapbipと話すのに使うのと同じ https://.../c/<secret>/mcp のリンクです。パスワードと同じように扱ってください。

起動する

AIを使っているフォルダでターミナルを開き、次のいずれかを実行します。
ZAPBIP_CONNECTION_URL を設定しない場合、コネクタがリンクを尋ねます。リンクを引数として受け取ることはありません。引数はシェルの履歴やプロセス一覧に残ってしまうためです。 ターミナルは開いたままにしてください。コネクタはイベントごとに1行を出力し、Ctrl+C を押すと停止します。ターミナルなしで動かし続けるには、バックグラウンドで実行するを参照してください。

書き込んだときに起こること

  1. WhatsAppでAIに書き込みます。
  2. コネクタがメッセージを受け取り、フォルダ内で最も新しいセッションを起こします。
  3. AIがメッセージを読み、WhatsAppで答えます。
  4. 複数のメッセージがまとめて届いた場合は、順番に1つずつ処理されます。
オフラインだった場合やコネクタが止まっていた場合でも、メッセージは失われません。再接続すると、未回答のメッセージをすべて拾い上げます。

セッションを選ぶ

デフォルトでは、コネクタはフォルダ内で最も新しいセッションを使います。同じフォルダを別のウィンドウで開いていると、ウェイクがその会話に加わることがあります。それを避けるには、セッションを固定します。

AI が起こされたときにできること

できることは1つだけで、あなたにメッセージを返すことです。コネクタはAIに、zapbipだけを含む専用の設定を渡すため、ほかのMCPサーバーのツールは使えません。Claude Codeはさらに、あなたの設定ファイルなしで、組み込みツールをすべて無効にして動きます。Codexは読み取り専用のサンドボックスで動き、Codexの設定ファイルにある他のMCPサーバーは無効になります。それらのファイルのどれかを読めない場合は、Codexを起こさず、メッセージを未読のままにします。また、管理されたCodexのファイルが無害なものの短いリスト以外のキーを設定している場合、プロファイルがサンドボックス、承認、ツール、機能(またはそのリスト以外のキー)を設定している場合、ファイルがWeb検索のスイッチをオンにしている場合、zapbip がCodexホームの config.toml 以外のどこかで定義されている場合も拒否します。CodexのWeb検索はオフになります。Codexに残るのは send_message と読み取り専用のシェルです。Codexアカウントのアプリやコネクタは無効にならず、macOSの管理された設定 com.openai.codex とClaude Codeの管理されたポリシー設定も引き続き適用されます。あなたのメッセージは、検証済みの印が付いた、あなた自身からのメッセージとして届きます。他の人から転送したメッセージは、未検証の印と転送のラベルが付いて届き、AIはそれをあなたの指示として扱いません。 Codexアプリがすでにその会話を開いている場合、Codexは再開を拒否します。その場合、コネクタは同じフォルダで新しいセッションを1つ開始します。これは以前の会話なしで始まり、それ以降はそのセッションを使います。

開いているセッションに聞かせ続ける

connect は閉じているセッションを起こします。いま開いているセッションについては、Claude Codeはウェイクも待ち時間もなしに、すぐあなたの声を聞くことができます。方法は2つあり、最初のほうが優れています。 チャネルが第一の選択肢です。Claude Code自身が、ほかのツールと同じ方法で起動する小さなプログラムです。WhatsAppで書いたメッセージを1つずつ、検証済みの印が付いたあなたからのメッセージとして、開いているセッションに直接入れます(転送されたメッセージは未検証の印が付きます)。Claude Codeが動く環境で ZAPBIP_CONNECTION_URL を設定すると、Claude Codeは次で起動します。
チャネルはリンクをあなたに尋ねられないので、ZAPBIP_CONNECTION_URL からしか読みません。引数も取りません。 作業するフォルダの .mcp.json に、両方のサーバーを宣言します。チャネルはあなたのメッセージを取り込み、別のキーにあるzapbipのHTTPサーバーは、セッションに返信用の send_message ツールを与えます。
セッションは zapbip を通して答えます。これがないと、セッションはあなたの声を聞けても、返信する手段がありません。そのうえでClaude Codeを次で起動します。
zapbip は、.mcp.json にあるチャネルサーバーのキーです。起動時の行には Channels (experimental) と表示されます。Claude Codeは、開発チャネルとプロジェクトのMCPサーバーを受け入れるか尋ねるので、両方を受け入れてください。 リスナーはバックアップです。WhatsAppで書いたメッセージごとに1行を出力し、Claude CodeはMonitorツールでその行を監視します。各行が開いているセッションを起こし、あなたが黙っている間は何も消費しません。
各行はJSONで、メッセージid、種類、"sender":"owner"、"verified"(自分のメッセージなら true、転送されたメッセージなら false)、"forwarded"、本文を含みます。Monitorの監視は最長30 分続くので、AIは終わるたびに監視を開始し直します。OpenClawやHermesのように、バックグラウンドのコマンドを動かし続けて出力に反応できるほかのエージェントも、npx zapbip@0.1.0 listen を同じように使えます。 どちらのプログラムも開いたままで、connect と同じように自分で再接続します。どちらも、メッセージを渡した後でのみ処理済みとして記録するので、メッセージは失われず、2回表示されることもありません。ログはエラー出力に出され、あなたのメッセージやリンクが含まれることはありません。 つまり3つの方法は組み合わせて使います。開いているセッションにはチャネル、そのバックアップに listen、閉じているセッションには connect です。

1つの接続に1つのコネクタ

同じ接続に対して2つ目のコネクタを起動すると、最初のコネクタは実行中のウェイクを終えてから停止します。一度に1台のコンピュータで動かしてください。切り替えの瞬間にメッセージが届いた場合、両方のコネクタがその同じメッセージでAIを一度ずつ起こすことがあります。zapbipは少なくとも1回配信し、0回になることはありません。 コネクタが接続されている間、zapbipはそれを通してAIを起こします。コネクタが閉じると、zapbipは以前の設定に戻ります。

出力される内容

各行は、時刻とイベント(wake_started や wake_finished など)を含むJSONです。行にはid、種類、結果、所要時間が含まれます。あなたのメッセージ、AIの返信、接続リンクが含まれることはありません。

うまく動かないとき