Git Worktree と tmux、そして Claude Code みたいな AI エージェントを組み合わせて 並行開発を回すと、セッションが増えるほど把握できなくなる問題が出てくる。

それを解決するために作ったのが vive(ヴァイヴ)。
リポジトリはこちら: https://github.com/k4h4shi/vive

以前の初期バージョン(プロジェクト専用)

去年ごろ、「自分が今作っているプロジェクトの中で、複数のエージェントを非同期で回したい」という動機から始まって色々試していて、以下を楽にするシェルスクリプトを作ったりしてました。

  • git worktree で作業ディレクトリを分ける
  • tmux でタスクごとのセッションを立てる
  • AI(Claude Code)をそれぞれのセッションで走らせる
  • 必要になったら好きなタイミングで attach して会話する

ただ、この仕組みは「その時の自分のプロジェクト」前提の作りで、別プロジェクトに持ち込むたびに設定していましたし、コンテキストスイッチがしんどいなと思い、結局一つのタスクに集中するのが良いと思い、しばらく封印して、主にCursorを使っていました。

作り直し(汎用化 + TUI化)

Cursorが割と制限かかるようになってきたことでClaude Codeを使い始め、Codexも割と使えることに気づき、いよいよ本格的に並行エージェント開発に挑戦するかと思い始めました。

元のシェルスクプトを元に、 プロジェクトから切り離して汎用化し、TUIで作り直しました。

普段案件では主にTSを書いてるので、せっかくなので勉強がてらにとRustを選びましたが、実際Claude Codeによるバイブコーディングでほとんどコード書いてないです。

できること(コア機能)

README上の整理だと、vive は次の5つをコアにしています。

  1. Project: ルート配下の Git リポジトリを自動検出して一覧化
  2. Task: 1クリックで「Worktree + Branch + Tmux セッション」を作る
  3. Preview: エージェントのログ/状態(実行中・入力待ち等)をリアルタイムに覗け、指示も送れます
  4. Action: キー操作に紐づく挙動をユーザー設定で差し替えられる
  5. Hook: タスク作成時などに任意コマンドを自動実行できる

例: タスク作成後に自動でエージェント起動

~/.vive/config.toml で、タスク作成直後に claude を起動したり、Issue番号を渡して /fix を叩く運用ができます。

使ってみて良かったところ

今後やりたいこと

AIエージェントや開発ツール自体もどんどん進化するでしょうから、また乗り換えるかもです。 ただ、普通に案件を進めながらvive自体の更新もviveでできるので普通にめちゃ捗って楽しい。 最近、複数イシューを選択して同時にタスク立ち上がれる機能も追加しました。 今後は以下あたりをやりたいなと思ってます。

  • 監視精度(入力待ち/思考中の判定)を上げる
  • 「人間の意思決定」を中心に据えた、スプリント/計画との統合を育てる