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?

tmux 2ペインがバイブコーディングの最適解だった

0
Posted at

🤔 AIがコードを書く時代、開発者は何をしている?

AIにコードを任せるようになって、VSCode を開く回数が激減しました。

Claude Code や Aider に「この機能を実装して」と伝えれば、コードを書き、テストを通し、リファクタリングまでやってくれます。日常的に使っているのは、AI に指示を出す shell と、差分を確認する git クライアントだけ。

じゃあ開発環境に何が必要なんだっけ? この問いに答えるために、AI 駆動開発で自分がやっていることを洗い出してみました。6つあります。

活動 内容
🎯 指示 shell で AI に何をすべきか伝える
👁️ 監視 AI の作業過程をリアルタイムで追う
✅ 検証 git diff やテスト結果で成果物を確認する
⚖️ 意思決定 AI が判断を求めてきた時に答える
🛑 中断 間違った方向に進んでいるのを止める
🔀 文脈切替 複数タスク・プロジェクト間を行き来する

ただ、この6つを「画面上に何ペイン必要か」の視点で整理し直すと、景色が変わります。

  • 監視・意思決定・中断は、shell の中で指示と一体化して行われます。AI の出力を眺めて、「あ、違う方向に行ってる」と思ったら Ctrl+C で止める。全部同じターミナルの中で起きることです
  • 文脈切替は tmux のセッション/ウィンドウ層の仕事であり、ペイン構成の話ではありません

ペインとして独立する必要があるのは「指示」と「検証」の2つだけです。

💡 2ペインという答え

この2つの活動は、tmux の2ペインにそのままマッピングできます。

ペイン 役割 ツール
左 (30%) 検証 — diff を見る lazygit
右 (70%) 指示 — AI に伝える shell (Claude Code 等)

ウィンドウを切り替える必要がありません。すべてが視界に収まります。AI がコードを書いている間も、左ペインの lazygit でリアルタイムに差分が確認できます。

┌──────────┬─────────────────────┐
│          │                     │
│ lazygit  │    shell / AI       │
│  (検証)   │     (指示)          │
│          │                     │
└──────────┴─────────────────────┘

この環境を毎回手で組むのが面倒になったので、1コマンドで立ち上がる CLI ツールを作りました。

🚀 vibemux — 1コマンドで開発環境が立つ

vibemux new myproject

これだけで、lazygit + shell の2ペイン tmux セッションが起動します。

インストール

git clone https://github.com/hirokimry/vibemux.git
cd vibemux
make install

基本的な使い方

vibemux new myproject              # カレントディレクトリでセッション作成
vibemux new myproject ~/code/app   # 指定ディレクトリで作成
vibemux attach myproject           # 既存セッションに再接続
vibemux list                       # アクティブなセッション一覧

🔧 ツールに縛られない設計

vibemux は特定の AI ツールに依存しません。環境変数を変えるだけで、どんなツールでも載せられます。

# Claude Code + lazygit(--resume で前回セッションを引き継げる)
VIBEMUX_PANE_RIGHT="claude --resume" vibemux new dev

# Aider + tig
VIBEMUX_PANE_LEFT="tig" VIBEMUX_PANE_RIGHT="aider" vibemux new dev

# ミニマル構成 — AI アシスタントのみ
VIBEMUX_PANE_LEFT="" VIBEMUX_PANE_RIGHT="claude" vibemux new focus

毎回指定するのが面倒なら、設定ファイル (~/.config/vibemux/config) にデフォルト値を書いておけます。

AI ツールの世代交代は速いです。Claude Code → Aider → 次の何か。環境ランチャーがツールに依存していたら、ツールと一緒に捨てることになります。 vibemux はツールを差し替え可能にすることで、この問題を避けています。

🛡️ AIに tmux を壊されない仕組み

vibemux の設計段階で、ひとつ怖いシナリオに気づきました。

AI エージェントは tmux のコマンドを知っています。もし「使っていないセッションを片付けよう」と判断して tmux kill-server を実行したら、全ての tmux セッションが一瞬で消えます。 作業中の全プロジェクトが吹き飛びます。実際、Claude Code の承認ダイアログに tmux kill-server が提案として表示されたことがあり、ワンクリックで全環境が壊れる状況でした。

これは AI 駆動開発の構造的なリスクです。AI は「お掃除」のつもりで破壊的なコマンドを選択肢に出すことがあります。

vibemux では PATH shim というガードレールを実装しました。$PATH の先頭に tmux のラッパースクリプトを配置し、AI からの tmux コマンドを許可リストでフィルタリングします。kill-server(全セッション消失)や set-hook(環境改変)はブロック、split-windowsend-keys など安全なコマンドだけを通します。

AI エージェントが tmux を操作できる環境で Safety 機構を持つツールは、現時点でほとんどありません。

❓ 並列エージェント時代に2ペインで足りる?

「複数の AI エージェントを並列で動かす時代が来たら?」という疑問はもっともです。

vibemux が管理するのは最初の1画面だけです。並列エージェントが必要になったら、AI 自身が tmux split-window でペインを追加すればいい。その管理は tmux と git のネイティブ機能に委ねます。

管理機能を抱え込まないことで、並列エージェント時代にも自然に対応できます。

📊 まとめ — vibemux が提供するもの

  • 1コマンドで2ペイン環境が立つvibemux new project だけで shell + lazygit の開発環境が揃う
  • AI ツールに依存しない — 環境変数を1行変えるだけで Claude Code / Aider / 次世代ツールを差し替え可能
  • 並列エージェントを邪魔しない — 初期レイアウトだけ提供し、拡張は tmux ネイティブ機能に委ねる
  • AI の暴走を防ぐ — PATH shim が破壊的な tmux コマンドをブロック

AIがコードを書く時代、開発者に必要な環境はシンプルになりました。

指示するための shell。検証するための git クライアント。これだけで十分です。

git clone https://github.com/hirokimry/vibemux.git
cd vibemux
make install
vibemux new my-first-session

あなたのバイブコーディング環境はどんな構成ですか? 2ペインで足りる派も、もっとペインが必要な派も、コメントで教えてもらえると嬉しいです。


GitHub: hirokimry/vibemux
ライセンス: MIT

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?