umputun/agterm

Terminal for agentic flow

解決する課題

agterm は、複数のAIコーディングエージェントを同時に使用する開発者のために特別に設計されたネイティブmacOSターミナルです。従来のタブ式ターミナルでは、多数の長時間実行されるエージェントセッションを追跡することが困難な場合が多く、どのエージェントが進捗しているか、どれが停止しているか、どれにユーザーの介入が必要かといった混乱を招くことがあります。agterm は、セッションを名前付きのワークスペースに整理し、エージェントのステータスを視覚的に表示することで、この問題を解決します。

仕組み

コアとなるターミナルのレンダリングとシェルI/Oには Ghostty エンジン (libghostty) を組み込み、その上にカスタム管理レイヤーを追加しています。シェルを Windows > Workspaces > Sessions > Panes という名前付きの階層構造で整理します。

主なメカニズムは以下の通りです:

  • Control API and CLI: agtermctl と呼ばれるツールにより、外部スクリプトやAIエージェントがローカルソケットを介して、プログラム的にセッションの作成、ウィンドウのリサイズ、オーバーレイの実行、通知の送信を行うことができます。
  • Agent Integration: インストール可能な「skills」と「status hooks」を提供し、エージェント(Claude Code や Codex など)が自身の状態(active, blocked, completed)をセッションのサイドバー行に直接報告し、自身のレイアウトを管理できるようにします。
  • Dashboard: 複数のセッションのライブ出力を一度に監視できるグリッドビューです。
  • Overlays: 下層のシェルを妨げることなく、セッションの上にフローティングウィンドウとして一時的なプログラム(diff ビューアーなど)を実行できる機能です。

対象ユーザー

複数のプロジェクトでAIコーディングエージェントを使用しており、並行するエージェント型ワークフローを管理するために、高度に整理されスクリプト化可能なターミナル環境を必要とする macOS(Apple Silicon, macOS 14+)のデベロッパーおよびパワーユーザー。

ハイライト

  • Workspace Organization: セッションを名前付きのコンテキスト(例:「work」、「personal」)にグループ化し、タブの乱雑さを防止します。
  • Agent Status Tracking: サイドバーとダッシュボードの視覚的なインジケーター(色や点滅する記号)により、どのエージェントがアクティブか、または停止しているかを表示します。
  • Programmable Interface: ほぼすべての操作が agtermctl CLI を介してスクリプト化可能です。
  • Advanced Layouts: 分割ペイン、スクラッチターミナル、フローティングオーバーレイをサポートしています。
  • Efficient Navigation: セッションやアクションのためのファジーパレット、およびコンテキスト間を素早く移動するための MRU (most-recently-used) スイッチァーを備えています。