はじめに
Claude Code や Codex CLI を毎日使っていると、こんなことで困るようになりました。
- 2 つ以上のタスクを同時に頼むと、同じ作業ツリーの中でぶつかる
- ターミナルのタブが増えて、どれが承認待ちなのか分からなくなる
- 「Codex で実装して、Claude にレビューさせて、ダメなら直させる」を毎回手で回している
そこで、AI コーディングエージェントの CLI をタスクごとに別々の git worktree で並列に動かし、カンバンボードで管理するデスクトップアプリ「Worktree Kanban」を作りました。Mac / Windows / Linux で動きます。
- GitHub: https://github.com/kazuya83/worktree-kanban
- 紹介ページ: https://kazuya83.github.io/worktree-kanban/
どんなアプリか
ひとことで言うと、複数の AI エージェントをフローチャートで組み、要所は人が決めるボードです。
使えるエージェントの CLI は次の 5 つです。どれも今のログインや設定のまま使えます。
- Claude Code
- Codex CLI
- Antigravity CLI
- Gemini CLI
- Cursor CLI
いちばんの特徴は Pipeline です。「Codex で実装して Claude でレビューし、ダメなら直させる」のような流れを文章で書くだけで、分岐やループのあるフローチャートになり、工程ごとに好きなエージェントに任せられます。
特徴
文章で書くだけで、分岐・ループのあるフローになる(Pipeline)
文章でフローを組む
フローチャートの編集画面に、やりたい流れをふつうの文章で書いて「AIで反映」を押すだけです。
Codex で実装して Claude でレビューし、直すところがあれば実装に戻す(3回まで)。
直すところがなければ、テストを足して終わる
これだけで、次のフローチャートができます。
-
分岐(if): 前の工程のエージェントに、返事の最後へ
[[RESULT:値]]を書いてもらい、線ごとの期待値と比べて行き先を決めます。3 つ以上に分けることもできます - ループ: 前のノードへ戻る線を引くと、戻る上限の回数まで繰り返します。上限に達したら止めて知らせるので、終わらずに回り続けることはありません
- 並列 → 合流: 枝ごとに別の worktree で同時に動かし、合流のときにマージします
- できたフローチャートは、ドラッグで直したり、もう一度文章で頼んで直したりもできます
工程ごとにエージェントを選ぶ
工程を押すと、その工程を任せるエージェントを選べます。
- Claude Code / Codex CLI / Antigravity CLI / Gemini CLI / Cursor CLI から選べます
- モデルも工程ごとに指定できます(空なら設定の既定)
- 「実装は Codex、レビューは Claude、テストは Gemini」のように、得意なものに分担させられます。別のエージェントにレビューさせると、同じエージェントの思い込みに引きずられにくくなります
タスクを作るときに選ぶだけ
タスクを作るときに、エージェントの代わりにこの Pipeline を選ぶと、フローのとおりに工程ごとにエージェントが作業を引き継ぎます。工程は同じ worktree で動き、工程が終わるたびに変更をコミットして、報告を次の工程に渡します。詳細の「進捗」タブで、今どの工程にいて何回差し戻されたかが分かります。
工程の前やエージェントが動く前の時点に戻す「チェックポイント」もあります。ファイル・Pipeline の進み具合・会話が一緒に戻ります。
1 タスク = 1 worktree = 1 ブランチ。大きいタスクは分けて並列に
タスクを作ると、リポジトリの隣の <repo>.worktrees/<id> に worktree を作り、agent/<内容>-<id> というブランチで作業させます。タスク同士はもちろん、自分が手元で触っている作業ツリーともぶつかりません。
大きいタスクは、分けて並列に進められます。
- サブタスク: エージェントが「分けたほうがよい」と判断すると、サブタスクへの分け方を提案します。親のブランチから分けた別々の worktree で並列か順番に進め、終わったものから親のブランチにマージします。最後に親のエージェントが、つなぎ目の確認とテストをします
- Pipeline の並列: フローチャートに「並列 → 合流」を置くと、枝ごとに別の worktree で同時に作業し、合流のときにまとめてマージします
- 競争: 同じタスクを複数のエージェントに並列で解かせ、よい案を 1 つ採用します
サブタスク同士の変更がぶつかったときは、親のエージェントが自動で解消してから先へ進みます。
最後は人が決める
エージェントに全部任せるのではなく、要所は人が決めます。
- 承認: 許可が必要な操作は、実行しようとしているコマンドと入力の全文をカードで確かめてから、許可・拒否・このタスクでは常に許可、を選べます。拒否するときは理由をエージェントに返せます
-
差分とマージ: レビュー列に来たら、ファイルごとの差分を見てから「マージ(
--no-ff)」か「PR を作成」を押します
複数のリポジトリを同時に
リポジトリはタブで 3 つまで開けます。タブを切り替えても、ほかのリポジトリのタスクは止まりません。開いていないタブには「動いているタスクの数」と「あなたの対応を待っているタスクの数」が出るので、どこで手が必要かがタブだけで分かります。
エージェントからの質問に、フォームで答える
Claude Code が AskUserQuestion で質問すると、カードが「質問」になり、回答フォームが出ます。複数選択と自由入力にも対応しています。
(Claude Desktopでできることです)
Mac と Windows を相互に遠隔操作
エージェントを動かしている PC(ホスト)のボードを、別の PC(クライアント)から操作できます。承認・質問への回答・追加の指示・マージもできます。
- ホストは
127.0.0.1だけで待ち受け、クライアントがssh -N -Lでトンネルを張ってつなぎます。ホストに必要なのは SSH サーバーだけです - 外出先からつなぐときは Tailscale などを使います
外部サービスとの連携
GitHub・GitLab・Linear・Jira の Issue からタスクを作り、状態を同期できます。Slack には通知を投稿でき、許可したユーザーなら Slack からタスクを始めたり、承認や回答をしたりもできます。
Issue や Slack から作ったタスクは、プロジェクトで「すべて自動で許可」にしていても、ファイル編集だけ自動・コマンドは承認が必要(acceptEdits)で動きます。悪意のある Issue から、承認なしでコマンドが動かないようにするためです。
そのほか
- 会話: タスク(worktree)を作らずにリポジトリについて相談し、続きを「タスクにする」
- タスクスケジューラ: 1 回だけ・毎時・毎日・毎週・毎月の日時にタスクを作って動かす
- コンフリクトの解消: エージェントに解消させるか、自分でエディタで直すかを選べる
- スキルと過去の会話: Claude Code のスキルを選んだり、過去のセッションの続きから始めたりできる
- Windows の WSL のリポジトリにも対応
しくみ
- エージェントは CLI をそのまま起動します。たとえば Claude Code は
claude -p --input-format stream-json --output-format stream-jsonで動かし、出力をカードにログとして出します。そのため、ログイン・モデル・CLAUDE.md・スキルはターミナルで使うときと同じです - 承認は、Claude Code の
--permission-prompt-tool、Codex のcodex app-server、Cursor のcursor-agent acpで受けます。自動で許可されない操作だけが、カードに「承認待ち」として出ます - ボードの状態は Electron の userData フォルダの
board.jsonに保存します。外部のサーバーは使いません
Codex / Antigravity / Gemini / Cursor では、CLI の制約から、選択肢の質問・btw(実行中のエージェントへのメッセージ)・金額の表示は使えません。カードでの承認は Codex と Cursor で使えますが、Antigravity と Gemini では使えません。
インストール
前提として、git と、使うエージェントの CLI(ログイン済み)が必要です。GitHub の Issue・PR の機能を使うときは gh も入れておきます。
Mac / Linux
curl -fsSL https://raw.githubusercontent.com/kazuya83/worktree-kanban/main/install.sh | bash
Windows(PowerShell)
irm https://raw.githubusercontent.com/kazuya83/worktree-kanban/main/install.ps1 | iex
同じコマンドで最新版に更新できます。アプリの「設定」→「アプリの更新」から更新したり、自動で更新させたりすることもできます。
使い方
- 「リポジトリを選ぶ」で、作業させる git リポジトリを選ぶ(URL からクローンしたり、新しく作ったりもできます)
- 「新しいタスク」で指示を書いて作る(Pipeline を使うときは、エージェントの欄で Pipeline を選ぶ)
- 承認待ちになったら、カードで許可する
- レビュー列に移ったら、差分を確かめて「マージ」か「PR を作成」を押す
これだけです。タスクを増やせば、それぞれが別の worktree で並列に動きます。
おわりに
「エージェントを何体も並べて動かしたいけれど、最後の判断は自分でしたい」という人に向けたツールです。不具合や欲しい機能があれば、Issue でお知らせください。









