エージェント認識

複数のエージェントを同時に実行していると、すべてのターミナルを監視することはできません。各ノードが、いつ対応を必要としているのか、どこで作業しているのかを知らせる必要があります。そうすれば、付きっきりで見守ることなく対応できます。TermTree は、ターミナルで実行中のエージェント CLI を認識することでこれを実現します。現在は Claude Code に対応し、Codex も検出します。ただし、ノードのターミナルでエージェントを実行する必要はありません。通常のシェルとして使用でき、エージェントが実行されている場合には TermTree がそれを追加で認識します。

ワークツリーインジケーター

エージェントが git ワークツリーに入ると、自身の作業ディレクトリをその場所に変更します。それ以降、出力、スタックトレース、git status などに表示されるパスは、ペインのシェルディレクトリではなく、そのワークツリーのルートを基準とします。エージェントがどのワークツリーにいるのか分からなくなると、誤ったファイルのコピーをレビューしてしまう可能性があるため、TermTree はその情報を自動的に表示します。

TermTree は、ターミナルのフォアグラウンドエージェントが git ワークツリー内で作業していることを検出すると、そのノードとターミナルのタイトルバーにワークツリーアイコンを表示します。アイコンにカーソルを合わせると、ワークツリーのブランチ名を確認できます。

このインジケーターは再起動後も保持されます。TermTree を再度開くと、エージェントがワークツリー内にいたノードには引き続きアイコンが表示されます。

ネイティブ Windows では利用できません。 ワークツリーの検出は POSIX 形式のパス解決に依存しているため、ネイティブ Windows シェルでは機能しません。また、WSL の境界をまたぐ場合も、エージェントの作業ディレクトリがホストから見えなくなるため利用できません。その場合、TermTree はシェルから報告されたディレクトリを使用します。

Claude セッションを再開する

ノードを選択した状態で Cmd+Shift+R / Ctrl+Shift+R を押すと、そのノードの Claude Code セッション(claude --resume)を再開できます。ターミナルが閉じた場合や、再開コマンドを入力し直さずに会話へ戻りたい場合に便利です。アプリの再起動後にこれが自動的に行われる仕組みについては、セッションの永続化を参照してください。

エージェントがユーザーの対応を待っていることを TermTree が把握する仕組み

INPUT ステータス(オレンジ色の点)は、エージェントがブロックされ、ユーザーの応答を待っていることを示します。TermTree は、次の 2 つの方法でこれを検出します。

  • Claude Code — 確定的な検出。 TermTree は ~/.claude/settings.json に Notification フックを登録し、各ターミナルの環境に TERMTREE_NODE_ID を注入します。Claude が通知を発行すると(たとえば、ツール呼び出しの許可を求める場合)、TermTree はどのノードが対応を必要としているのかを確実に把握できます。ターミナルのテキストから推測しているわけではありません。
  • その他の CLI — パターンマッチングによるフォールバック。 フック統合のないエージェントでは、TermTree がターミナル出力をスキャンし、一般的なブロッキングプロンプトのパターン([y/N] 形式の確認など)を検出して、ターミナルが入力を待っていると推定します。