cmuxlayer
cmuxLayer
AIエージェント同士は、お互いのターミナルを見ることができません。 1つのエージェントがタブ1で動き、もう1つがタブ2で動いている場合、あなたがその間のクリップボード役を担うことになります。cmuxLayerはこれを解決します。AIエージェントにターミナルワークスペースのプログラム制御権を与える22個のMCPツールを提供します。
クイックスタート
npm install -g cmuxlayercmux が実行されている必要があります。
MCP設定(Claude Code、Cursor、VS Code、Claude Desktop)に追加してください:
{
"mcpServers": {
"cmux": {
"command": "cmuxlayer"
}
}
}設定ファイルの場所: Claude Code
.mcp.jsonまたはclaude mcp add cmuxlayer -s user -- cmuxlayer| Cursor.cursor/mcp.json| VS Code.vscode/mcp.json| Claude Desktop — プラットフォームごとのパスについては MCPドキュメント を参照してください
できること
AIエージェントに以下のような指示を出せます:
「ペインを右に分割して、そこでテストスイートを実行して」
「新しいペインでClaude Codeエージェントを起動し、auth.tsをリファクタリングして」
「surface:2の画面を読み取って、ビルドが成功したか教えて」
「すべてのエージェントが終了するのを待ってから、その出力を読み取って」
「サイドバーのステータスをデプロイの進捗状況を表示するように設定して」
内部的には、cmuxLayerはターミナル制御、画面読み取り、マルチエージェントオーケストレーションのための22個のMCPツールを公開しています。read_screenは、Claude Code、Codex、Gemini、Cursor、Kiroのエージェントメタデータ(ステータス、モデル、トークン、コンテキスト%)を解析します。
MCPツール (22個)
すべてのツールには、自動的な安全ポリシー適用のための ToolAnnotations が付属しています。
ターミナル制御 — new_split send_input send_key read_screen rename_tab close_surface browser_surface
エージェントライフサイクル — spawn_agent send_to_agent wait_for wait_for_all interact stop_agent kill
ワークスペース — list_surfaces list_agents my_agents get_agent_state read_agent_output notify set_status set_progress
読み取り専用 (6)
ツール | 機能 |
| ワークスペース全体のすべてのサーフェスを一覧表示 |
| 解析されたエージェントステータスを含むターミナル出力を読み取る |
| 追跡対象エージェントの完全な状態 |
| すべてのエージェント(フィルタリング可能) |
| ライブ画面ステータスを持つ親エージェントの子エージェント |
| 区切りマーカー間の構造化された出力 |
ミューテーション (13)
ツール | 機能 |
| ターミナルまたはブラウザの分割ペインを作成 |
| サーフェスにテキストを送信 |
| キー押下を送信 (return, escape, ctrl-cなど) |
| サーフェスタブの名前を変更 |
| cmux通知バナーを表示 |
| サイドバーのステータスキーと値を設定 |
| 進捗インジケーターを設定 (0.0-1.0) |
| ブラウザサーフェスと対話 |
| 新しいペインでCLIエージェントを起動 |
| 実行中のエージェントにプロンプトを送信 |
| エージェントがターゲット状態に達するまで待機 |
| 複数のエージェントが終了するまで待機 |
| 対話型入力を送信 (確認、キャンセル、再開) |
破壊的 (3)
ツール | 機能 |
| ターミナルまたはブラウザペインを閉じる |
| エージェントを正常に停止 |
| エージェントプロセスを強制終了 |
対応エージェント
CLI | コマンド | 自動検出 |
Claude Code |
| ステータス、モデル、トークン、コンテキスト% |
Codex |
| ステータス、モデル |
Gemini CLI |
| ステータス、モデル |
Cursor |
| ステータス |
Kiro |
| ステータス |
read_screenはエージェントタイプを自動検出し、ターミナル出力からメタデータを解析します。
アーキテクチャ
AI Agent ─── MCP ───> cmuxLayer ─── Unix socket ───> cmux
├── Agent engine (spawn → monitor → teardown)
├── Screen parser (5 agent formats)
├── Mode policy (autonomous vs manual)
└── State manager + event logソケットクライアントはUnixソケット経由でcmuxに接続します。切断時には自動再接続を行い、ソケットが利用できない場合はCLIサブプロセスにフォールバックします。
接続 | レイテンシ | 高速化 |
CLIサブプロセス | ~142ms | ベースライン |
Unixソケット | ~0.1ms | 1,423倍 |
トラブルシューティング
cmuxが実行されていません cmuxLayerには実行中の cmux インスタンスが必要です。最初にインストールし、cmuxLayerを使用する前にcmuxセッションを開始してください。
Claude Codeでツールが表示されません
MCP設定を追加した後、Claude Codeを再起動してください。claude mcp listを実行して、cmuxlayerが接続されていることを確認してください。
ソケット接続に失敗しました
cmuxLayerはcmuxソケットを自動検出します(macOS: ~/Library/Application Support/cmux/cmux.sock)。必要に応じて CMUX_SOCKET_PATH で上書きしてください。
テスト
npm test # 335 tests via vitest
npm run typecheck # Type checking開発
npm install
npm run dev # Run with tsx (hot reload)
npm run build # Compile TypeScript
npm start # Run compiled output貢献
開発環境のセットアップとPRガイドラインについては CONTRIBUTING.md を参照してください。
ライセンス
Apache 2.0 — LICENSE を参照してください。
Golems AIエージェントエコシステムの一部です。cmuxlayer.etanheyman.com | @EtanHey によって構築されました。
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/EtanHey/cmuxlayer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server