Claude Code Hookでデスクトップペットを作りました
(github.com/IMMINJU)会社で Claude Code のセッションを複数立ち上げて作業しているのですが、どのセッションが入力待ちなのか見逃してしまうことがよくありました。オフィスなので音を出すこともできません。
Claude Code では Hook を使ってツール呼び出しの前後に外部コマンドを実行できます。普通は lint や logging 用途で使われますが、これで少し違うことをやってみました。
Hook イベントを受け取って、デスクトップ上に絵文字キャラクターとして表示するウィジェットを作りました。セッションを複数動かすと、それぞれを個別に追跡して並べて表示します。
絵文字で状態をマッピングしているうちに、笑ったり戸惑ったり居眠りしたりする様子が面白くて、単にペットと呼ぶことにしました。
Claude Code hooks → claude-pet --hook → TCP(:19876) → Tauri(Rust) → WebView
Hook はイベントごとにプロセスが生成されては終了するため、状態を保持できません。そこでアプリ側に TCP サーバーを置き、Hook が発生するたびに JSON を送る構成にしました。Tauri 2 + Rust で作っているのでバイナリは 8MB ほどで、curl ... | sh の 1 行でインストールすると Hook の登録まで自動で行われます。
テーマは 3 種類内蔵(ロボット、猫、フルーツ)で、JSON でカスタムテーマも作れます。Windows で使っていて、macOS/Linux ビルドもありますが、まだ自分ではテストできていません。MIT。
GitHub: https://github.com/IMMINJU/claude-pet
フィードバック歓迎です。
まだコメントはありません。