前回の記事で紹介したomarchy-claude-launcherをアップデートした。
一番大きい変更は、プロジェクトの管理がtmuxの「ウィンドウ(タブ)」から「ペイン(分割画面)」に変わったこと。
全エージェントを同時に見る
前のバージョンは1プロジェクト=1タブで、Alt+1〜Alt+9で切り替えてた。
これはこれで良かったんだけど、Claude Codeを4つ5つ並行して走らせてると一覧したくなる。タブだと表示されるのは常に1つだけで、他は見えない。
Claude Squadみたいに分割画面で全部見たいなと思って、ペインベースに作り直した。
今は全プロジェクトが1つのtmuxウィンドウ内のペインとして並ぶ。select-layout tiledで自動的にグリッド状に配置されて、4個なら2×2、6個なら2×3になる。Ctrl+Space zで1つにズームして集中、もう一回押して全体に戻る、という使い方。
ペインのボーダーにプロジェクト名が表示されるようにした。tmuxの@projというユーザー独自オプションに名前を入れることで、claude等のTUIアプリがエスケープシーケンスでタイトルを上書きしてくる問題を回避してる。ボーダーはheavyにして見やすく。
その他の変更
他にもちょこちょこ追加した:
- ghostty対応: 前回はNVIDIA+mesa問題でalacrittyしか使えなかったけど、ghostty 1.3.1で解消。
--titleベースのウィンドウ識別に変更 - 稼働状態インジケーター: walkerの一覧で
⚙(ツール実行中)、●(入力待ち)が表示される。pstreeでプロセスツリーを見てclaude配下にbashが生えてたら作業中、という判定 - 名前を打つだけでプロジェクト作成: 一覧にない名前を入力すると自動でディレクトリを作ってclaudeを起動。
CLAUDE_LAUNCHER_DEFAULT_NSを設定しておけばchatと打つだけで~/Works/komagata/chat/ができる - git worktree管理: walkerから親リポジトリを選んでworktree名を入れるだけ。docker compose連携で
.env.localの自動生成やポートの自動割り当てもやる - 削除機能: 不要になったプロジェクトやworktreeをwalkerから選んで削除。tmuxのペインkill→ファイル削除まで一発
CLAUDE_LAUNCHER_CLAUDE_ARGS:--dangerously-skip-permissionsみたいな引数を環境変数で渡せるようにした
感想
ペインベースにしてから明らかに並行作業の見通しが良くなった。5個のclaudeが同時に動いてるのを眺めながら、止まったやつに指示を出して、また全体を見る、という流れがスムーズ。
tmuxのtiled layoutが地味に賢くて、ペインの増減に合わせて勝手にいい感じに再配置してくれるのがありがたい。
