Cloudワークスペースとエージェント
Cloudワークスペースはローカルのcmuxワークスペースと同じように動作しますが、ターミナルはクラウドマシン上で実行されます。このページでは、永続的なターミナル、エージェントの実行、通知、すべてのマシンにインストール済みのツールについて説明します。
永続的なターミナル
ターミナルはMacではなく、マシンのデーモン上にあります。ペインを閉じても、cmuxを終了しても、Wi-Fiが切れても、ノートパソコンを閉じても動き続けます。サインイン済みのどのMacからマシンを開き直しても、ターミナルの出力と実行中のプロセスはそのまま残っています。
接続が切れると、ペインに「Cloud セッションが切断されました」と「再接続」ボタンが表示され、cmuxは自動的に再試行します。
マシンのデーモンが再起動した場合、cmuxはワークスペースのレイアウトを復元しますが、実行中だったプロセスは再起動後に残りません。
ワークスペースを閉じると、ターミナルはデタッチされた状態で動き続けます。ワークスペースを削除すると、ターミナルは停止します。
コーディングエージェントを実行する
Claude Code、Codex、OpenCode、Piはすべてのマシンにインストール済みです。Cloudワークスペースを開き、ローカルと同じようにエージェントを起動します。エージェントフックは設定済みなので、エージェントの状態と通知が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に表示されます。エージェントフックは、エージェントが完了したとき、承認が必要なとき、質問したとき、失敗したときに通知を送ります。タイトルは128バイト、本文は1 KBまでで、連続した通知にはレート制限がかかります。
# Inside a Cloud machine
cmux notify --title "Build" --body "Tests passed"画像を貼り付ける
Cloudターミナルで、クリップボードに画像がある状態で ⌘V を押します。cmuxが画像をマシンにアップロードしてリモートのパスを貼り付けるので、Claude CodeやCodexがその画像を読めます。PNG、JPEG、GIF、WebPに対応し、1枚あたり最大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で動作します。rootではなく、パスワードなしでsudoを使えるユーザー cmux として作業します。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 statusCodeRouterドキュメント:対応アカウント、共有、使用量
マシン内の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マシンを管理できません。起動中のマシンはプレースホルダーカードとして表示されます。