複数のAIセッションで迷子にならない — lazydocker風TUIダッシュボードを作った

はじめに
Claude Codeで3つのプロジェクトを並行して進めているとき、ターミナルのウィンドウが増えていきます。「どのセッションが実行中で、どれが入力待ちなのか」をウィンドウを切り替えながら確認するのは手間で、切り替えるたびに数秒のロスが積み重なります。
lazyDockerがDockerコンテナの状態を一画面で見せてくれるように、AIセッションの状態を一覧で監視できるTUIダッシュボード lazyccg を作りました。
作ったもの
lazyccg は、kitty terminal上で動作する軽量なTUIダッシュボードです。lazyDockerのような分割ペインUIで、AIセッションの状態をリアルタイムに監視できます。
主な機能は以下の通りです。
- 全AIセッション(Claude Code / Codex / Gemini CLI)を一覧表示
- RUNNING / IDLE / WAITING / DONE のステータスを自動判定
- セッションのリネーム(日本語対応)
- Enterキーで選択したセッションにすぐ切り替え
インストール
Homebrew または go install でインストールできます。
# Homebrew (macOS)
brew tap atani/tap
brew install lazyccg
# Go Install
go install github.com/atani/lazyccg/cmd/lazyccg@latest
使い方
kitty terminalでremote controlを有効にした状態で起動します。
lazyccg
事前に kitty.conf へ以下を追加しておきます。
allow_remote_control yes
listen_on unix:/tmp/kitty
キーバインド
| キー | 操作 |
|---|---|
↑ / k
|
上に移動 |
↓ / j
|
下に移動 |
Enter |
セッションにフォーカス |
r |
セッション名を変更 |
Tab |
ステータスフィルターに切り替え |
q |
終了 |
技術的なポイント
kitty remote control APIの活用
kitty terminalのremote control APIを使って、各ウィンドウのタイトルや出力内容を取得しています。これにより、ターミナル全体の状態を外部から監視できます。
ステータスの自動判定
各セッションの出力内容を解析して、現在の状態(実行中・アイドル・入力待ち・完了)を自動で判定しています。プロンプトのパターンやスピナーの有無などから推測しています。
Bubble Teaによる分割ペインUI
GoのTUIフレームワークBubble Teaを使って、lazyDocker風の2ペイン構成を実現しています。左側にセッション一覧、右側に選択中セッションの出力を表示します。
おわりに
複数のAIセッションを並行して動かす場面が増えてきたので、自分用に作ったツールです。Claude Codeで複数タスクを同時進行するときに重宝しています。
kitty terminal限定ではありますが、同じような使い方をしている方はぜひ試してみてください。
関連記事
AIツールの活用に関する記事をほかにも書いています。
Discussion