メインコンテンツへスキップ
中級14分で読める

cmuxでAIコーディングを加速する

AIコーディングエージェント専用ターミナルcmuxのインストールから活用法まで、Claude CodeやGemini CLIとの連携を含めて実例とショートカットを交えて詳しく解説します。

効率化cmuxAIコーディングターミナル効率化Claude Code

🎯 この記事で学べること

  • 1
    cmuxの特徴とtmuxとの違いを理解できます
  • 2
    Homebrewを使ったインストールと初期設定ができるようになります
  • 3
    画面分割・ワークスペース・通知システムを使いこなせるようになります
  • 4
    Claude CodeなどAIエージェントとの連携方法がわかります
  • 5
    内蔵ブラウザやCLI APIを活用した実践的なワークフローが構築できます

読了時間: 約14

cmuxとは

こんにちは!今日は「cmux」について学びましょう。

AIコーディングエージェントを使って開発していると、こんな場面に遭遇しませんか?

  • Claude Codeが複数のタスクを並行して進めているけど、どれが完了したか分からない
  • エージェントの出力を確認しながら、別のターミナルでテストも走らせたい
  • 開発サーバーのブラウザ確認と、ターミナル作業を行き来するのが面倒

cmux(シーマックス)は、まさにこのような悩みを解決するために生まれたAIコーディングエージェント専用のターミナルです。Ghosttyのレンダリングエンジン(libghostty)を搭載したmacOSネイティブアプリで、GPU高速レンダリング、通知リング、内蔵ブラウザなど、AIエージェントとの連携に特化した機能を備えています。

cmuxはmacOS専用のネイティブアプリです。Swift + AppKitで構築されており、WindowsやLinuxでは動作しません。Linux環境やリモートサーバーでのターミナル多重化にはtmuxをお使いください。

cmux vs tmux:どう使い分ける?

特徴cmuxtmux
対応OSmacOSのみmacOS / Linux / BSD
描画エンジンGhostty(GPU高速)端末エミュレータ依存
AIエージェント通知通知リング・サイドバーバッジなし(手動確認)
内蔵ブラウザあり(スクリプタブル)なし
リモートサーバー対応ローカル専用SSH越しに利用可能
セッション復元自動(レイアウト・作業ディレクトリ)プラグイン必要(tmux-resurrect)
設定ファイルGhostty config互換~/.tmux.conf
ライセンスAGPL-3.0(無料)ISC(無料)

🔄 使い分けのポイント: cmuxはローカルでのAIエージェント開発に、tmuxはリモートサーバーでの作業に最適です。両方を場面に応じて使い分けるのがおすすめですよ!

インストール

Homebrewでインストール(推奨)

# cmuxのtapを追加してインストール
brew tap manaflow-ai/cmux
brew install --cask cmux

Nightlyビルドも別のバンドルIDで提供されており、安定版と並行してインストールできます。最新機能をいち早く試したい方はGitHubリリースページをチェックしてみてください。

DMGでインストール

GitHubリリースページからDMGファイルをダウンロードし、Applicationsフォルダにドラッグ&ドロップするだけです。Sparkleによる自動アップデートにも対応しています。

Ghostty設定の互換性

cmuxはGhosttyの設定ファイル(~/.config/ghostty/config)をそのまま読み込みます。すでにGhosttyを使っている方は、テーマ・フォント・カラースキームがそのまま引き継がれるので、追加設定は不要です。

# Ghosttyの設定ファイルの場所を確認
ls ~/.config/ghostty/config

# 設定例(Ghosttyと共通)
# font-family = JetBrains Mono
# font-size = 14
# theme = catppuccin-mocha

基本的な使い方

ワークスペース

ワークスペースは、プロジェクトごとに作業環境をまとめる単位です。サイドバーにタブとして表示され、各ワークスペースには以下の情報が表示されます:

  • Gitブランチ名: 現在のブランチがひと目でわかる
  • PR状態・番号: リンクされたPRのステータス
  • 作業ディレクトリ: 今いるパス
  • リスニングポート: 開発サーバーのポート番号
  • 最新の通知テキスト: エージェントからの最新メッセージ
# ワークスペースのショートカット
# Cmd+N          新しいワークスペースを作成
# Cmd+1〜8       ワークスペース1〜8に移動
# Cmd+Shift+W    ワークスペースを閉じる
# Cmd+Shift+R    ワークスペースの名前を変更

サーフェス(タブ)

各ワークスペース内に複数のサーフェス(タブ)を作成できます。プロジェクト内の異なる作業を切り替えるのに便利です。

# サーフェスのショートカット
# Cmd+T          新しいサーフェスを作成
# Cmd+Shift+]    次のサーフェスへ
# Cmd+Shift+[    前のサーフェスへ
# Ctrl+1〜8      サーフェス1〜8に移動

よく使うショートカット一覧

操作ショートカット
ワークスペース作成Cmd+N
サーフェス作成Cmd+T
右に分割Cmd+D
下に分割Cmd+Shift+D
ペイン移動Option+Cmd+矢印キー
通知パネルCmd+I
未読通知にジャンプCmd+Shift+U
スクロールバッククリアCmd+K
ターミナル検索Cmd+F
フォントサイズ変更Cmd+Plus / Cmd+Minus

画面分割

cmuxの画面分割はMacネイティブなショートカットで直感的に操作できます。tmuxのようにプレフィックスキーを覚える必要はありません。

水平・垂直分割

# 垂直分割(右にペインを追加)
# Cmd+D

# 水平分割(下にペインを追加)
# Cmd+Shift+D

# ペイン間の移動(方向キーで指定)
# Option+Cmd+↑    上のペインへ
# Option+Cmd+↓    下のペインへ
# Option+Cmd+←    左のペインへ
# Option+Cmd+→    右のペインへ

tmuxとの分割操作の比較

操作cmuxtmux
垂直分割(左右)Cmd+DCtrl+b, %
水平分割(上下)Cmd+Shift+DCtrl+b, "
ペイン移動Option+Cmd+矢印Ctrl+b, 矢印
ペイン最大化Ctrl+b, z

🔍 注目ポイント: cmuxはプレフィックスキー不要で、Macの一般的なアプリと同じ感覚で操作できます。tmuxのCtrl+bを覚える必要がなく、すぐに使い始められるのが魅力です!

内蔵ブラウザ

cmuxにはスクリプタブルな内蔵ブラウザが搭載されています。ターミナルのペインと並べてブラウザを表示できるため、開発サーバーの確認やドキュメント参照がシームレスに行えます。

# ブラウザのショートカット
# Cmd+Shift+L    ブラウザをスプリットで開く
# Cmd+L          アドレスバーにフォーカス
# Cmd+[          戻る
# Cmd+]          進む
# Option+Cmd+I   開発者ツールの表示/非表示

内蔵ブラウザはスクリプタブルAPIを備えており、要素スナップショットの取得、アクセシビリティツリーのクエリ、フォーム入力、JavaScript実行など、エージェントがブラウザを直接操作することも可能です。

実践的な使い方

例えば、Next.jsの開発中に以下のようなレイアウトを作れます:

# 1. 左ペインでClaude Codeを実行
# 2. 右上ペインでdev serverのログを確認
# 3. 右下に内蔵ブラウザでlocalhost:3000を表示

# Cmd+D で左右分割
# 右ペインで Cmd+Shift+D で上下分割
# 右下ペインで Cmd+Shift+L でブラウザを開く

通知システム

cmuxの最大の特徴ともいえるのが、AIエージェント向けの通知システムです。複数のエージェントを並行して動かしているとき、どのペインで入力待ちが発生しているかをひと目で確認できます。

通知リング

エージェントが入力待ち(ユーザーの確認や承認が必要な状態)になると、そのペインに青い通知リングが表示されます。同時に、サイドバーのタブにもバッジが付くので、別のワークスペースにいても見落としません。

通知の取得方法

cmuxは以下の方法で通知を検知します:

  1. ターミナルエスケープシーケンス: OSC 9 / OSC 99 / OSC 777に対応
  2. cmux CLIコマンド: cmux notifyコマンドで手動通知
  3. エージェントフック: Claude Codeのフック機能と連携

Claude Codeフックとの連携

Claude Codeのフック機能を使って、エージェントの状態変化をcmuxの通知に連携できます:

# Claude Codeがユーザー入力を待っているときに通知を送る例
# .claude/settings.json のフック設定で
# cmux notify コマンドを呼び出す

# cmux CLIで通知を送信
cmux notify "Claude Codeがレビューを待っています"

通知のショートカット

# Cmd+I          通知パネルを表示
# Cmd+Shift+U    最新の未読通知にジャンプ

セッション復元

cmuxはアプリを再起動しても、以前のセッションを自動的に復元します。tmuxのようにプラグイン(tmux-resurrect)をインストールする必要はありません。

自動復元される項目

  • ウィンドウのレイアウト(分割状態)
  • 各ペインの作業ディレクトリ
  • スクロールバック履歴
  • ブラウザの状態

cmuxはターミナル内で実行中のプロセス(tmuxセッション、AIエージェントなど)の状態は復元しません。アプリ再起動後は、必要なプロセスを再度起動してください。

実践的な使用例

1. フルスタック開発

フロントエンドとバックエンドを同時に開発するケース:

# ワークスペース「my-app」を作成(Cmd+N)

# サーフェス1: コーディング
# - 左ペイン: Claude Codeでフロントエンド開発
# - 右上ペイン: バックエンドのログ監視
# - 右下ペイン: 内蔵ブラウザでUI確認

# サーフェス2: テスト(Cmd+T で追加)
# - 左ペイン: テスト実行
# - 右ペイン: テストカバレッジ確認

2. マルチエージェント並列開発

複数のAIエージェントを同時に動かすケース:

# ワークスペース「multi-agent」を作成

# サーフェス1: エージェント管理
# - 左上ペイン: Claude Code(フロントエンドタスク)
# - 右上ペイン: Claude Code(バックエンドタスク)
# - 下ペイン: Gemini CLI(テスト生成)
#
# 通知リングで入力待ちのエージェントが一目瞭然!
# Cmd+Shift+U で未読通知にすぐジャンプ

🔄 並列作業のコツ: 各エージェントに明確なタスクを割り当て、通知リングが光ったペインから順に対応していくと効率的です。

3. コードレビュー

PRのレビューを効率的に行うケース:

# ワークスペース「review」を作成

# 左ペイン: git diffの確認
git diff main...feature-branch

# 右上ペイン: 内蔵ブラウザでPRページを表示
# Cmd+Shift+L でブラウザを開く

# 右下ペイン: ローカルでコードを動かして検証
npm run test

カスタマイズ

Ghostty configとの互換性

cmuxはGhosttyの設定ファイルを読み込むため、ターミナルの見た目や挙動をカスタマイズするにはGhosttyと同じ設定ファイルを編集します。

# 設定ファイルの場所
# ~/.config/ghostty/config

# テーマの設定例
# theme = catppuccin-mocha
# theme = tokyo-night
# theme = dracula

# フォントの設定例
# font-family = JetBrains Mono
# font-family = Fira Code
# font-family = Hack Nerd Font
# font-size = 14

# カーソルの設定例
# cursor-style = block
# cursor-style-blink = true

cmux固有の設定

cmux固有のショートカットや動作は、cmuxのSettings画面からカスタマイズできます。

CLI・Socket API

cmuxはCLIとSocket APIを通じてプログラムから制御できます。シェルスクリプトやエージェントフックから呼び出すことで、ワークフローを自動化できます。

cmux notifyコマンド

# 基本的な通知の送信
cmux notify "ビルドが完了しました"

# シェルスクリプトでの活用例
npm run build && cmux notify "ビルド成功" || cmux notify "ビルド失敗"

cmux notifyをClaude Codeのフックに組み込めば、エージェントがタスクを完了したときや承認を求めるときに自動で通知を受け取れます。長時間かかるタスクを投げて、別の作業に集中できますよ!

シェルスクリプト連携

CLIやSocket APIを使えば、ワークスペースの作成、ペインの操作、キーストロークの送信、ブラウザの操作などをスクリプトから実行できます。

# 例: 開発環境を一発で立ち上げるスクリプト
#!/bin/bash
# dev-setup.sh

# ビルドが終わったら通知
npm run build && cmux notify "ビルド完了!テストを開始します"

# テストを実行して結果を通知
npm run test && cmux notify "全テスト通過" || cmux notify "テスト失敗あり"

トラブルシューティング

設定が反映されない

# Ghosttyの設定ファイルが正しい場所にあるか確認
ls -la ~/.config/ghostty/config

# cmuxを再起動して設定を反映
# Cmd+Q で終了してから再度起動

通知が表示されない

# macOSの通知設定を確認
# システム設定 > 通知 > cmux が許可されているか確認

# cmux CLIが使えるか確認
which cmux
cmux notify "テスト通知"

権限の問題

# macOSのセキュリティ設定を確認
# システム設定 > プライバシーとセキュリティ > アクセシビリティ
# cmuxが許可リストに含まれているか確認

# 初回起動時に「開発元が未確認」と表示される場合
# 右クリック > 開く で起動

アップデート

# Homebrewでインストールした場合
brew upgrade cmux

# DMGでインストールした場合
# Sparkleによる自動アップデートが有効
# または、GitHubリリースページから最新版をダウンロード

🎮 理解度チェック

Q1: cmuxで画面を右に分割するショートカットは?

cmuxで画面を右に分割(垂直分割)するショートカットは?

Q2: エージェントが入力待ちになったとき、cmuxはどう知らせてくれる?

cmuxでAIエージェントがユーザー入力を待っているとき、何が表示される?

Q3: cmuxとtmuxの最大の違いは何?

cmuxとtmuxの最大の違いとして、最も適切なものは?

ベストプラクティス

ワークスペース運用のコツ

  1. プロジェクトごとにワークスペースを作成: Cmd+Shift+R で分かりやすい名前を付ける
  2. サーフェスを用途別に分ける: コーディング用・テスト用・デバッグ用など
  3. 通知を活用する: マルチエージェント作業では Cmd+Shift+U を多用する
  4. 内蔵ブラウザを活用する: 外部ブラウザとの切り替えを減らして集中力を維持

tmuxとの併用

cmuxとtmuxは競合するツールではなく、補完し合う関係です:

  • ローカル開発 → cmux: AIエージェント連携、内蔵ブラウザ、通知リング
  • リモートサーバー作業 → tmux: SSH越しセッション永続化、接続断に強い
  • チーム共有 → tmux: ペアプログラミングでのセッション共有

🔒 セキュリティTips: cmuxはローカルマシン上で動作するため、リモートサーバー上のプロセス管理にはtmuxを使い、それぞれの強みを活かしましょう!

📝 まとめ

今回はcmuxについて学びました!

cmuxはAIコーディングエージェントとの連携を前提に設計された、新しいタイプのターミナルでしたね。覚えておきたいポイントをまとめます:

  • Ghosttyエンジン搭載: GPU高速レンダリングで快適な操作感
  • 通知リング: AIエージェントの入力待ちをひと目で把握(Cmd+Shift+U)
  • 画面分割: Cmd+D(左右)/ Cmd+Shift+D(上下)でプレフィックスキー不要
  • 内蔵ブラウザ: Cmd+Shift+L でターミナルとブラウザを並べて表示
  • tmuxと併用: ローカルはcmux、リモートはtmuxの使い分けが最強

AIエージェントを使った開発がますます一般的になる中、cmuxのようなエージェント特化のツールを使いこなすことが生産性の鍵になります。

tmuxの画面分割やリモート作業の基本を学びたい方は、tmuxで画面分割の記事もぜひチェックしてみてください!