Cloud 工作区与代理
Cloud 工作区的用法与本地 cmux 工作区相同,只是其中的终端运行在云端机器上。本页介绍持久化终端、运行代理、通知,以及每台机器上预装的工具。
持久化终端
终端位于机器的守护进程中,而不在你的 Mac 上。关闭面板、退出 cmux、断开 Wi-Fi 或合上笔记本时,终端都会继续运行。从任何已登录的 Mac 重新打开机器,终端的输出和正在运行的进程都还在。
如果连接断开,面板会显示 Cloud session disconnected 和 Reconnect 按钮,同时 cmux 会自动重试。
如果机器的守护进程重启,cmux 会恢复工作区布局,但之前正在运行的进程不会在重启后保留。
关闭工作区时,其终端会以分离状态继续运行。移除工作区则会停止其终端。
运行 coding agent
每台机器都预装了 Claude Code、Codex、OpenCode 和 Pi。打开 Cloud 工作区,像在本地一样启动代理即可。代理 hook 已配置好,因此代理状态和通知会传回你的 Mac。
cmux vm agent 从你的 Mac 在机器上启动代理。提供提示词时,会使用代理的一次性模式。添加 --sync 可先上传当前目录,添加 --wait 可等待结果。
cmux vm agent --agent claude --machine brave-otter -- "add tests for the parser"
cmux vm agent --agent codex --machine brave-otter --sync --wait -- "fix the build"
cmux vm agent --agent opencode --new --size 16g -- "profile the importer"cmux vm prompt 会为你的本地代理安装 cmux Cloud 技能,并输出一段教它使用 Cloud 机器的提示词。
cmux vm prompt --open claude运行命令
cmux vm run 在机器上运行命令并返回其退出码。首次从某个目录运行时会选择一台机器,并为该目录记住它 14 天。添加 --sync 可先上传目录,添加 --pull 可下载结果。
cmux vm run -- npm test
cmux vm run --sync --pull dist -- npm run build
cmux vm route --jsoncmux vm exec 在没有终端的情况下运行简短命令,适合快速检查。默认超时时间为 30 秒,最长 5 分钟。长时间的工作请使用 cmux vm run、cmux vm agent 或工作区终端。
cmux vm exec brave-otter -- uname -a
cmux vm exec --timeout 120 brave-otter -- docker ps启动开发服务器
cmux vm dev 会上传项目,识别其启动方式,并在包含服务器和浏览器的工作区中打开它。它可以识别 package.json 项目、Cargo、Go、Makefile 的 dev 目标、Django、uv、pyproject、requirements.txt 以及静态 index.html 站点。使用 --dry-run 可先查看执行计划。
cmux vm dev brave-otter --dry-run
cmux vm dev brave-otter . --port 3000通知
在机器内运行 cmux notify,会在你的 Mac 上为该终端显示一条通知。代理 hook 会在代理完成、需要批准、提出问题或失败时发送通知。标题最多 128 字节,正文最多 1 KB,短时间内的大量通知会被限流。
# Inside a Cloud machine
cmux notify --title "Build" --body "Tests passed"粘贴图片
在 Cloud 终端中,当剪贴板中有图片时按 ⌘V。cmux 会将图片上传到机器并粘贴远程路径,这样 Claude Code 和 Codex 就能读取它。支持 PNG、JPEG、GIF 和 WebP,每张最大 20 MB,一次最多 8 张。
通过 CLI 管理布局和终端
cmux vm workspace 可在机器上创建、打开、重命名、关闭和移除工作区。cmux vm terminal 可发送文本、读取输出,以及等待特定文本出现或等待退出。cmux vm tree 显示机器的工作区和终端。cmux vm layout export 和 apply 使用与 cmux new-workspace --layout 相同的 JSON。
cmux vm tree brave-otter
cmux vm workspace new brave-otter --name review
cmux vm terminal send brave-otter term_2f9c "npm run dev" --keys enter
cmux vm terminal wait brave-otter term_2f9c --pattern "ready" --timeout 60
cmux vm terminal read brave-otter term_2f9c
cmux vm layout export brave-otter review > layout.json
cmux vm layout apply brave-otter layout.json --open预装内容
机器运行 Ubuntu 24.04。你以用户 cmux 的身份工作,可免密码使用 sudo,而不是以 root 身份工作。Docker 会在开机时启动。
- 语言和工具:Node.js LTS、Bun、Python 3.12、uv、Docker、git、GitHub CLI、ripgrep、fd、fzf、jq、tmux、sqlite3、构建工具、vim、nano 和 rsync。
- 浏览器和桌面:Chrome、agent-browser、VNC 桌面和 Ghostty。
- 代理:Claude Code、Codex、OpenCode 和 Pi。它们固定在经过测试的版本,并随机器镜像更新而更新。
如果刚创建机器后找不到代理命令,说明初始化仍在进行中。初始化日志位于 /tmp/cmux/provision.log。
模型访问
机器上的代理无需在机器上存放密钥即可使用 cmux 的模型路由。真实凭据在机器外部添加,因此 VM 中不会存储任何账户令牌。你也可以在机器内登录代理,或使用 cmux ai-accounts upload 为团队上传账户。
cmux ai-accounts list
cmux ai-accounts upload claude
cmux coderouter status机器内的 cmux CLI
在机器内,cmux 命令控制该机器的会话。它支持 tree、new-workspace、new-split、send、send-key、read-screen、terminal、layout、env、notify、open-url 和 self。cmux self 会显示所有者、当前机器以及你的其他机器。cmux vm verb peer 可在机器内控制你的其他机器。
# Inside a Cloud machine
cmux tree
cmux new-split right
cmux self peers
cmux vm exec calm-heron -- git status登录、上传 AI 账户,以及 new、delete、checkpoint、fork、resize、pause、domains、open 和 vpn 等机器生命周期命令只能在你的 Mac 上运行。
iPhone
cmux iOS 应用不管理 Cloud 机器。正在启动的机器会显示为占位卡片。