🖥️

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

に公開

lazyccg

はじめに

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