#cmux TUI

cmux TUI は macOS、Linux、Windows 向けの Rust 製ターミナルマルチプレクサです。ワークスペース、スクリーン、分割ペイン、ターミナルタブ、ブラウザタブ、リモートセッション、制御ソケットを一つのプロセスにまとめます。

macOS の cmux 内で TUI ワークスペースレールの横に Neovim、OpenCode、Hunk を3つのペインで表示する cmux TUI
Neovim、OpenCode、Hunk レビュー TUI を表示するライブセッション。

#インストールと実行

インストールスクリプトが OS とアーキテクチャに合うネイティブバイナリを選び、SHA-256 チェックサムを検証して、cmux を PATH に追加します。

curl -fsSL https://cmux.com/tui/install.sh | sh

Node.js がインストール済みなら、恒久的にインストールせずに実行できます。

npx cmux
配布ビルドは Apple Silicon と Intel Mac、x64 と Arm64 Linux、x64 Windows に対応します。Windows on Arm では x64 ビルドをエミュレーションで実行します。ソースからのビルドには Rust、Zig 0.15.2、リポジトリの Ghostty サブモジュールが必要です。

#ワークスペースモデル

cmux TUI は各プロセスを無関係なターミナルタブへ平坦化せず、一つの永続ツリーで管理します。

session
└── workspaces
    └── screens
        └── panes
            └── tabs (terminal or browser surfaces)

セッションは一つの制御ソケットを持ちます。各ワークスペースには複数のスクリーン、各スクリーンにはペインレイアウト、各ペインにはターミナルとブラウザのタブを置けます。他のタブが残っていれば、タブを閉じてもペインは閉じません。

#キーボードとマウス

標準プレフィックスは Ctrl-b です。Ctrl-b を2回押すと、リテラルの Ctrl-b をアクティブなターミナルへ送ります。

キー操作
Ctrl-b %アクティブペインを右に分割
Ctrl-b "アクティブペインを下に分割
Ctrl-b tターミナルタブを作成
Ctrl-b Wワークスペースを作成
Ctrl-b sワークスペースレールを表示または非表示
Ctrl-b dローカルでは終了、サーバーからはデタッチ

ペイン境界、タブ、ワークスペース、スクリーンを直接クリックできます。ペインを右クリックすると操作メニューが開きます。ペイン内のアプリがマウス入力を所有している場合は、Shift を押しながら右クリックします。

#ヘッドレスセッションとアタッチ

ヘッドレスモードはローカル UI なしで mux バックエンドとターミナルを実行し続けます。UI が必要なときに別のターミナルからアタッチできます。

cmux --headless --session agents
cmux attach --session agents

標準セッション名は main です。名前付きセッションは別々の Unix ソケットを使います。デタッチ後もヘッドレスサーバーは動き続けるため、後から同じツリーとターミナル状態を復元できます。

#リモートマシン

マシンレールを有効にすると、現在のセッションと設定済みの Unix ソケットまたは SSH ターゲットを切り替えられます。

{
  "machine_sidebar": { "enabled": true },
  "machines": [
    {
      "id": "buildbox",
      "name": "Build box",
      "transport": "ssh",
      "host": "dev@buildbox",
      "session": "agents"
    }
  ]
}

リモートマシンではヘッドレス cmux セッションを事前に実行し、非対話 SSH から cmux バイナリを見つけられるようにします。cmux は厳格なホスト鍵確認を使い、エージェント転送とポート転送を無効にします。

#ブラウザタブ

ブラウザタブは Chrome DevTools Protocol を通じて実際の Chrome または Chromium ターゲットを操作します。プロファイルはセッション間で維持されるため、Cookie とサインインを保持できます。次のキーでブラウザタブを開きます。

Ctrl-b B

#自動化と制御ソケット

TUI が使うすべてのツリー操作と検査は、コマンドラインと JSON Lines 制御ソケットからも利用できます。

cmux --session agents list-workspaces --json
cmux --session agents run --new-workspace --name review -- npm test
cmux --session agents read-screen --surface <surface-id>

コマンドはワークスペース作成、プロセス実行、ペイン分割、入力送信、表示テキスト取得、イベント購読、エージェント状態報告に対応します。TypeScript、Python、Go、Java、Rust の型付きバインディングがリポジトリに含まれます。

#設定

TUI 設定ファイルでキー、サイドバー幅、マシン、ブラウザ動作、起動コマンド、テーマ値を設定できます。CMUX_TUI_CONFIG で標準パスを上書きできます。

~/.config/cmux/cmux-tui.json

#関連情報