cmux-終端機多工器 是做什麼的?
AI 原生的終端機多工器,具備可程式化的 Socket API、完整的 Playwright 等效瀏覽器自動化,以及代理團隊協調功能——專為 Claude Code 和自主代理工作流程打造。
安裝與設定
安裝
需要 Go 1.21 或更新版本。
go install github.com/aradotso/cmux@latest
或者從原始碼建置:
git clone https://github.com/aradotso/cmux.git
cd cmux
make build
初始化
在您的專案目錄中執行:
cmux init
這會建立一個 cmux.json 設定檔和預設的 socket 端點。
使用方法
啟動伺服器
cmux server
預設情況下,伺服器會監聽 Unix socket ./cmux.sock。若要使用 TCP,請在 cmux.json 中設定或傳遞 --tcp :8080 標誌。
代理 API 端點
Socket API 提供以下端點:
| 端點 | 方法 | 說明 |
|---|---|---|
/session | POST | 建立新的終端機工作階段 |
/session/{id} | GET | 取得工作階段詳細資訊 |
/session/{id}/send | POST | 將命令傳送到工作階段 |
/sessions | GET | 列出所有活躍的工作階段 |
/browser | POST | 啟動新的瀏覽器實例 |
/browser/{id}/navigate | POST | 導航至 URL |
/browser/{id}/screenshot | GET | 取得螢幕截圖 |
/agent | POST | 部署一個子代理 |
/agent/{id}/message | POST | 傳送訊息給代理 |
範例:以程式方式建立工作階段
# 建立新的終端機工作階段
cmux api /session -X POST -d '{"name": "build-session"}'
# 發送命令
cmux api /session/1/send -X POST -d '{"command": "npm run build"}'
瀏覽器自動化
import socket
import json
# 連線至 cmux socket
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock.connect("./cmux.sock")
# 啟動瀏覽器
sock.send(json.dumps({"method": "POST", "path": "/browser", "body": {}}))
response = json.loads(sock.recv(4096))
browser_id = response["id"]
# 導航
sock.send(json.dumps({
"method": "POST",
"path": f"/browser/{browser_id}/navigate",
"body": {"url": "https://example.com"}
}))
代理團隊協調
部署多個代理以協作處理大型任務:
# 部署子代理
cmux api /agent -X POST -d '{"role": "code-reviewer", "context": "review PR #42"}'
# 傳送訊息
cmux api /agent/1/message -X POST -d '{"text": "請檢查這個合併請求。"}'
代理可以透過 socket 相互通訊,共享工作階段與資源。
設定
cmux.json 支援以下選項:
| 選項 | 類型 | 預設值 | 說明 |
|---|---|---|---|
socket_path | 字串 | ./cmux.sock | Unix socket 路徑 |
tcp_address | 字串 | "" | TCP 監聽位址(留空則使用 socket) |
log_level | 字串 | info | 日誌等級(debug、info、warn、error) |
max_sessions | 整數 | 50 | 最大並行工作階段數 |
agent_pool_size | 整數 | 5 | 預分配的代理數量 |
browser_timeout | 整數 | 30000 | 瀏覽器操作逾時(毫秒) |
與 Claude Code 的整合
在 Claude Code 中使用時,請指定 socket 路徑:
claude code --socket ./cmux.sock
然後您可以使用 CLI 命令與 cmux 互動:
# 在 Claude Code 中執行 cmux 命令
cmux session create "執行測試"
cmux browser open https://claude.ai
cmux agent deploy "data-analyzer"
故障排除
- 無法連線至 socket:請確保伺服器正在執行 (
cmux server),且 socket 路徑正確。 - 工作階段未回應:檢查
max_sessions設定;您可能已達到限制。 - 瀏覽器無法啟動:驗證是否已安裝 Playwright 及其相依性。
- 代理通訊失敗:檢查
agent_pool_size是否足夠應付負載。
如需更多協助,請參閱文件或在儲存庫中開啟問題。
授權
MIT