🤔 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-window や send-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