0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AI エージェントに仕事を振るカンバンツール作ってみた

0
Last updated at Posted at 2026-11-08

はじめに

Claude Code や Codex CLI を毎日使っていると、こんなことで困るようになりました。

  • 2 つ以上のタスクを同時に頼むと、同じ作業ツリーの中でぶつかる
  • ターミナルのタブが増えて、どれが承認待ちなのか分からなくなる
  • 「Codex で実装して、Claude にレビューさせて、ダメなら直させる」を毎回手で回している

そこで、AI コーディングエージェントの CLI をタスクごとに別々の git worktree で並列に動かし、カンバンボードで管理するデスクトップアプリ「Worktree Kanban」を作りました。Mac / Windows / Linux で動きます。

デモ: 文章でフローを組み、Codex の実装を Claude がレビューして差し戻し、人がコマンドを承認し、差分を確かめてマージする

どんなアプリか

ひとことで言うと、複数の AI エージェントをフローチャートで組み、要所は人が決めるボードです。

ボード: Todo・実行中・レビュー・完了の列。実行中のカードには、質問・承認待ち・作業中の状態が出ている

使えるエージェントの CLI は次の 5 つです。どれも今のログインや設定のまま使えます。

  • Claude Code
  • Codex CLI
  • Antigravity CLI
  • Gemini CLI
  • Cursor CLI

いちばんの特徴は Pipeline です。「Codex で実装して Claude でレビューし、ダメなら直させる」のような流れを文章で書くだけで、分岐やループのあるフローチャートになり、工程ごとに好きなエージェントに任せられます。

特徴

文章で書くだけで、分岐・ループのあるフローになる(Pipeline)

自然言語でpipeline構築
feature-pipeline-qiita.gif

文章でフローを組む

フローチャートの編集画面に、やりたい流れをふつうの文章で書いて「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 などを使います

別の PC からつなぎ、ホストのボードで承認する

外部サービスとの連携

GitHub・GitLab・Linear・Jira の Issue からタスクを作り、状態を同期できます。Slack には通知を投稿でき、許可したユーザーなら Slack からタスクを始めたり、承認や回答をしたりもできます。

Issue の番号を入れて、Issue ごとのカードを作る

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

同じコマンドで最新版に更新できます。アプリの「設定」→「アプリの更新」から更新したり、自動で更新させたりすることもできます。

使い方

  1. 「リポジトリを選ぶ」で、作業させる git リポジトリを選ぶ(URL からクローンしたり、新しく作ったりもできます)
  2. 「新しいタスク」で指示を書いて作る(Pipeline を使うときは、エージェントの欄で Pipeline を選ぶ)
  3. 承認待ちになったら、カードで許可する
  4. レビュー列に移ったら、差分を確かめて「マージ」か「PR を作成」を押す

これだけです。タスクを増やせば、それぞれが別の worktree で並列に動きます。

おわりに

「エージェントを何体も並べて動かしたいけれど、最後の判断は自分でしたい」という人に向けたツールです。不具合や欲しい機能があれば、Issue でお知らせください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?