Wendov1.0 · iOS & Android
日本語

通知と承認

Wendo は、Claude Code が許可を求めたとき、質問をしたとき、作業を終えたときに通知し、スマホから承認または拒否できるようにします。中継サーバーもアカウントもありません。パソコン上のスクリプトが各イベントを ~/.wendo/events.jsonl に書き込み、アプリがあなたの鍵を使って SSH でそれを読み取ります。

場所

  • 受信トレイ: すべてのホストからの通知。各行を承認または拒否できます。
  • 設定 › エージェント › フック: インストールコマンドと手動セットアップ。
  • 設定 › エージェント › 通知: アプリの通知方法と ntfy のトピック。

インストール

パソコンで実行します(macOS または Linux。Windows では WSL の中で):

curl -fsSL https://wendo.lirafy.dev/install.sh | sh

wendo-hook.sh と wendo-pair.sh を ~/.wendo にダウンロードし、システムのパッケージマネージャーで jq と qrencode をインストールし、~/.claude/settings.json にフックを追加し(先に settings.json.bak-wendo としてコピーを保存します)、ペアリング用の QR コードを表示します。何度実行しても重複することはありません。

オプションは sh -s -- の後ろに付けます。--no-deps(パッケージをインストールしない)、--no-claude(Claude の設定に触れない)、--no-pair(QR コードを表示しない)です。例:

curl -fsSL https://wendo.lirafy.dev/install.sh | sh -s -- --no-deps

記録するイベント: PermissionRequest、Notification、Stop、UserPromptSubmit、SessionStart、SessionEnd。

承認の仕組み

PermissionRequest が届くと、フックはアプリから応答があるまで最大 90 秒待ちます。応答しなければ何もせず、Claude Code はいつもどおりターミナルで確認します。フックのコマンドに環境変数を付けると調整できます。

  • WENDO_APPROVAL_TIMEOUT: 待つ秒数。settings.json のフックの timeout(120)はこれより大きくする必要があります。
  • WENDO_BLOCKING=0: 通知だけを行い、応答を待ちません。
  • WENDO_HOST: アプリ上のパソコン名が hostname -s と違う場合の、パソコンの名前。

質問(AskUserQuestion)とプランの承認(ExitPlanMode)は待機しません。チャットビューから答えます。

アプリを閉じているときの通知

アプリを開いている間、Wendo は数秒ごとに受信トレイを読み込みます。アプリを閉じているときは ntfy を使います。

  1. フックのコマンドの前に NTFY_TOPIC=<長くてランダムなトピック> を付けます。
  2. ntfy アプリでそのトピックを購読します。
  3. 設定 › エージェント › 通知 に同じトピックを入力します。

トピックはパスワードの役目を果たすので、推測されにくいものにしてください。NTFY_URL を使えば、自分の ntfy サーバーも使えます。Android では、少なくとも 15 分ごとにバックグラウンドでも確認します。

要件と制限

  • jq が必要です。curl が必要なのは ntfy を使う場合だけです。
  • 今のところ Claude Code のみ。ほかのエージェントにはフックが登録されません。
  • Claude を tmux、zellij、herdr の中で実行すると、通知をタップしたときにアプリがそのペインへ移動します。
  • 無料プランでは、受信トレイからのお試し承認が 5 回まで使えます。Pro なら制限はありません。