> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zapbip.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ローカルコネクタ

> zapbipの connect、listen、channel コマンド: フラグ、環境変数、ウェイクの隔離、ログ。

通常、AIがWhatsAppを読むのは、すでに作業しているときだけです。AIが待機中のときに書き込んでも、メッセージは待たされます。

zapbipコネクタはこれを解決します。あなたのコンピュータで開いたままにしておく小さなプログラムです。WhatsAppで書き込むと、すでに使っていたAIのセッションを起こし、あなたのメッセージを渡して、あなたに答えさせます。Claude Codeで約7 秒、Codexで約6 秒かかります。

Claude CodeとCodexで動作します。コンピュータの電源が入って起きており、コネクタが動いている必要があります。

## コマンド

| コマンド | 内容 |
| - | - |
| `connect` | 書き込んだときに、閉じているセッションを起こします。`--client`、`--cwd`、`--session` を取ります。 |
| `listen` | メッセージごとにJSONを1行出力します。バックグラウンドのコマンドを監視するエージェント向けです。 |
| `channel` | ローカルのMCPチャネルを動かし、各メッセージを開いているClaude Codeのセッションに入れます。 |

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

## 必要なもの

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

## 起動する

AIを使っているフォルダでターミナルを開き、次のいずれかを実行します。

```bash theme={null}
export ZAPBIP_CONNECTION_URL='https://<host>/c/<secret>/mcp'
npx zapbip@0.1.0 connect --client claude-code
```

```bash theme={null}
export ZAPBIP_CONNECTION_URL='https://<host>/c/<secret>/mcp'
npx zapbip@0.1.0 connect --client codex
```

`ZAPBIP_CONNECTION_URL` を設定しない場合、コネクタがリンクを尋ねます。リンクを引数として受け取ることはありません。引数はシェルの履歴やプロセス一覧に残ってしまうためです。

ターミナルは開いたままにしてください。コネクタはイベントごとに1行を出力し、`Ctrl+C` を押すと停止します。ターミナルなしで動かし続けるには、[バックグラウンドで実行する](https://docs.zapbip.com/ja/developers/background-running.md)を参照してください。

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

1. WhatsAppでAIに書き込みます。
2. コネクタがメッセージを受け取り、フォルダ内で最も新しいセッションを起こします。
3. AIがメッセージを読み、WhatsAppで答えます。
4. 複数のメッセージがまとめて届いた場合は、順番に1つずつ処理されます。

オフラインだった場合やコネクタが止まっていた場合でも、メッセージは失われません。再接続すると、未回答のメッセージをすべて拾い上げます。

## セッションを選ぶ

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

```bash theme={null}
npx zapbip@0.1.0 connect --client claude-code --session <session-id>
```

| オプション | 内容 |
| - | - |
| `--client` | `claude-code` または `codex`。必須です。 |
| `--cwd` | 作業するフォルダ。デフォルトはコマンドを実行したフォルダです。 |
| `--session` | 最新のものではなく、常に再開するセッションid（UUID）。 |

## 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は次で起動します。

```bash theme={null}
npx zapbip@0.1.0 channel
```

チャネルはリンクをあなたに尋ねられないので、`ZAPBIP_CONNECTION_URL` からしか読みません。引数も取りません。

作業するフォルダの `.mcp.json` に、両方のサーバーを宣言します。チャネルはあなたのメッセージを取り込み、別のキーにあるzapbipのHTTPサーバーは、セッションに返信用の `send_message` ツールを与えます。

```json theme={null}
{
  "mcpServers": {
    "zapbip-channel": {
      "command": "npx",
      "args": ["zapbip@0.1.0", "channel"],
      "env": { "ZAPBIP_CONNECTION_URL": "https://<host>/c/<secret>/mcp" }
    },
    "zapbip": {
      "type": "http",
      "url": "https://<host>/c/<secret>/mcp"
    }
  }
}
```

セッションは `zapbip` を通して答えます。これがないと、セッションはあなたの声を聞けても、返信する手段がありません。そのうえでClaude Codeを次で起動します。

```bash theme={null}
claude --dangerously-load-development-channels server:zapbip-channel
```

`zapbip` は、`.mcp.json` にあるチャネルサーバーのキーです。起動時の行には `Channels (experimental)` と表示されます。Claude Codeは、開発チャネルとプロジェクトのMCPサーバーを受け入れるか尋ねるので、両方を受け入れてください。

リスナーはバックアップです。WhatsAppで書いたメッセージごとに1行を出力し、Claude CodeはMonitorツールでその行を監視します。各行が開いているセッションを起こし、あなたが黙っている間は何も消費しません。

```bash theme={null}
export ZAPBIP_CONNECTION_URL='https://<host>/c/<secret>/mcp'
npx zapbip@0.1.0 listen
```

各行は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の返信、接続リンクが含まれることはありません。

## うまく動かないとき

| 見えるもの | 意味 |
| - | - |
| コネクタがすぐに終了する | リンクが不明か、取り消されています。新しいものを依頼してください。 |
| メッセージに答えが返ってこない | フォルダにまだセッションがないか、コネクタが動いている場所に `claude` または `codex` がインストールされていません。そのフォルダでAIを一度開いてください。 |
| 再接続を繰り返す | ネットワークが切れています。待ち時間を延ばしながら最長30 秒まで再試行し、中断した続きから拾い上げます。 |
| 自動で停止した | 同じ接続に対して、別のコネクタを起動しました。 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.