【AI】複数AIのリアルタイム監視ツールをOSSで公開【Claude Code】【Codex】


こんにちは、フリーランスエンジニアのmohです。この記事はほとんどAIが書いたものを、私が加筆修正しています。検証不十分な部分もあるかと思いますが、ご容赦ください。ご指摘等ございましたら、Github issueか、Xでお願いいたします。

Claude Code と Codex のセッションを、鳥の姿で見守る macOS アプリ「Tomarigi(止まり木)」を公開しました。MIT のオープンソースで、v0.2.0 から署名・公証済みの .dmg を配布しています。

Garden タブ。セッションごとに 1 羽ずつ鳥がいる

作った理由

エージェントを何本も並べて走らせていると、どれが作業中で、どれが自分の返事を待っているのかが分からなくなります。ターミナルのペインを順に覗いて回るのは手間です。

Tomarigi は、常に最前面に置ける小さな窓に、セッションごとに 1 羽ずつ鳥を出します。鳥の仕草と表示で、作業中・返事待ち・完了が一目で分かります。視線を送るだけで「次に手を付けるのはどれか」が分かるようにするのが目的です。

できること

  • Garden: セッションごとに鳥が 1 羽。作業中・返事待ち・完了で鳥の姿と表示が変わり、返事待ちの鳥には「?」が付きます。鳥はドラッグで好きな位置に置けます
  • Perch: 同じ内容を一覧で見るタブ。セッションが多いときはこちらが見やすいです
  • Recent activity: 完了や返事待ちになった出来事の履歴
  • ペインへの移動: 鳥をクリックすると、そのセッションが動いている Ghostty のペインに移ります
  • 窓の形: フルスクリーンのアプリの上にも出るフローティングと、最大化できる標準ウィンドウを切り替えられます。背景は半透明のすりガラスです
  • 音: 完了や返事待ちになったときに鳴き声で知らせます。ミュートもできます

Perch タブ。セッションを一覧で見る

鳥はセッションのプロセスが生きている間ずっといて、セッションを終えるとすぐにいなくなります。サブエージェントは親の下に「ひな」として出ます。Claude Code のセッション間メッセージで別のセッションに作業を渡して待っているセッションは「見守り中」になり、渡した先の鳥と一緒に 1 つの枠にまとまります。

アイコンは鳥のほか、ノーム・猫・ロボット・カエルから選べます。画面は 43 言語に対応しています。

返事待ちの見分け方

「?」は、エージェントが自分の判断を待って止まっているときに付きます。見分け方は 2 通りです。

  1. 選択肢の提示やプランの承認など、質問用のツールで止まっている。これはキーが無くても分かります
  2. ツールを使わず、文章で「どちらにしますか?」と聞いて止まっている。こちらは返答の最後の部分を TypeSafe の Jev に渡し、「ユーザーが答えるまで先に進めない状態か」を yes/no の確率で判定させています

見落としやすいのは 2 のほうです。作業報告の末尾に質問が混ざっていると、ターンが終わっただけに見えるからです。

API キーで増える機能

OpenAI / Anthropic / TypeSafe の API キーを入れると、次の機能が使えます。キーは macOS のキーチェーンに保存され、画面には値を表示しません。

  • 「?」の判定(TypeSafe): 上の 2 の判定です
  • ふきだし(OpenAI か Anthropic): ターンの終わりの返答を短く要約して、鳥の下に出します。返事待ちの鳥には、聞かれている内容が出ます
  • 読み上げ: オンにすると、ターンの終わりの要約を読み上げます。キーが無いときは最後の 1 文を読みます
  • 怒りマーク(TypeSafe): AI に暴言を送ると、そのセッションの鳥に 💢 が付きます。次のメッセージが暴言でなければ消えます

仕組み

エージェント側にフックや設定の変更は要りません。~/.claude/projects と ~/.codex/sessions にあるトランスクリプトを読んで、状態を判定しているだけです。フックを入れたくない環境や、途中から入れたい場合でもそのまま使えます。

セッションが終わったかどうかは、トランスクリプトの更新時刻ではなくプロセスの生死で見ています。長く放置したセッションでも、プロセスが生きていれば鳥は残ります。

入れ方

  1. Releases から .dmg をダウンロードし、アプリを /Applications に入れる
  2. 起動するとメニューバーにアイコンが出て、窓が画面の右上に開く
  3. 鳥を初めてクリックしたときに、Ghostty の操作の許可を求められるので許可する

フローティングのときは Dock に出ず、メニューバーのアイコンで表示・非表示を切り替えます。

気をつける点

  • macOS 専用です。ペインへの移動は Ghostty だけに対応しています
  • トランスクリプトの形式や、Claude Code がプロセスごとに書くセッション情報のファイルは公開仕様ではありません。Claude Code や Codex の更新で状態の判定がずれる可能性があります
  • API キーを入れた機能は、返答の末尾や自分のメッセージを各社の API に送ります。キーを入れなければ送信されません

まとめ

エージェントを並べて走らせる人向けに、状態を一目で見るための窓を作りました。不具合や要望は GitHub の issue にお願いします。