ハイパーマッスルエンジニア

Vim、ShellScriptについてよく書く

Claude Code × tmuxで「リーダーと部下」にタスクを自動でこなしてもらう方法

 

Claude Codeとtmuxを組み合わせて、エージェント同士がやり取りしながらタスクを進める構成が注目されています。この方法では、「リーダー」と「部下」を作り、指示と報告を交わしながらタスクを自動で処理してもらえます。

まずは試してみたい方へ

以下の内容をコピーして、作業用リポジトリにCLAUDE.mdという名前で保存してください。

※「ENTERの二重送信」の部分は環境依存かもしれません。不要であれば削除してください。

例えば、kidokuというリポジトリに配置する場合は以下のようになります。

~/Documents/github/kidoku  master ✗
$ ls -1
+ CLAUDE.md
README.md
apps
docker
docker-compose.yml
node_modules
package-lock.json
package.json
pnpm-lock.yaml
pnpm-workspace.yaml
turbo.json

これでclaudeで起動するときに上記の知識を持った状態で起動されます。

起動手順

1.tmuxを起動:

tmux

2.claudeを起動:

claude

3.Claudeに以下のように指示:

部下を起動し、テストで指示を出してみて。報告も受け取ってください。

これで、リーダーが部下に指示を出し、部下が報告する流れが確認できるはずです。

実際の動作イメージ

タスクを渡してみる

リーダー・部下の連携が確認できたら、具体的なタスクを指示してみましょう。リーダーには計画立案、部下には作業を担当させます。

以下は「Next.jsの/api を NestJSのGraphQLに移植する」というタスクを与えた例です。

リーダーが進捗を管理し、部下に作業をさせている様子が見られるかと思います。自分は基本的にリーダーへの指示のみで、部下のターミナルには触りません。最初に方向性を確認したら、あとは基本的に放置して完了を待つだけです。

ただし、リーダーが自ら作業を始めたり、想定外の方向に進むことがあります。その場合は、リーダーのターミナルでESCを押して割り込み指示を出します。

リーダーが作業し始めたので部下にやらせるよう、割り込み指示を出す

割り込み後は、正しく軌道修正されます。

最初のCLAUDE.mdをどうやって作るのか

このファイルは事前にClaudeとの対話を通じて作成します。例えば以下のように会話しながら構成を決めていきます:

# tmux paneの分割
「tmuxで左paneにリーダー、右paneに部下を作って欲しい」

# 部下への指示方法の確立
「リーダーから部下に指示できますか?」

# 部下からの報告受信方法の確立
「部下から報告を受け取れるようにして」

....

# CLAUDE.mdの作成
「この環境を、会話をゼロから始めた時からでも始められるよう、CLAUDE.mdにまとめてくれ」

これは日々育てていくものになります。私もこの記事を書いてから追加した指示が多くあり、現在では下記のようなCLAUDE.mdになっています。

github.com

追加したい指示があればclaudeに「XXをすること、を指示に加えたいのでCLAUDE.mdを更新して」と指示すればいい感じに更新してくれます。

終わりに

Claude Codeとtmuxを組み合わせることで、エージェント同士が対話しながらタスクをこなす新しい開発体験が得られました。

これは実際にやらせてみると、かなりの衝撃を受けました。実際にタスクをやらせてみて、ずっとその様子を見ていたので長く感じたのですが、終わってみるとたった5分半で「Next.jsのエンドポイントをNestJSのGraphQLに移植する」作業が終わっていました。実際に動作確認をしてみても、期待した通りに動きました。実際に作ってもらったPRが以下です。

https://github.com/Rasukarusan/kidoku/pull/12

今まで自分はvimで黒い画面に文字を入力するだけで楽しいと感じるタイプだったのですが、Agent to Agentを体感したあとだと、エンジニアとしての楽しみ方がかなり変わってきてしまうな〜と感じました。「あれもこれもできる、しかも今までの何十倍も早く。最高か」と思う一方、今まで楽しいと思っていた作業が色あせて見えてしまう、という感情も生まれました。

今年終わる頃には進化がどうなっているのか。vimいじりながら待ちたいと思う。

参考