
2026/02/14 4:02
**Show HN:Claude Code/Codex が VM と GPU を起動できるスキル**
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
Manaflow CloudRouter CLI 概要
cloudrouter コマンドラインツールは、開発者が npm install -g @manaflow-ai/cloudrouter でインストールし、cloudrouter login で認証し、オプションで GPU をサポートした隔離されたクラウドサンドボックスを起動できるようにします。Sandbox の作成 は
cloudrouter start . によって行われ、現在のディレクトリと同期し、--size、--gpu、--cpu、--memory、--disk、--image、--git、--branch、および -p <provider> などのフラグを受け付けます。サポートされる GPU は T4、L4、A10G、H100、H200、B200(複数 GPU の構文は --gpu <type>:N)です。管理コマンド (
ls、status <id>、stop/<pause> <id>、resume <id>、extend <id> --seconds N、delete <id>) はユーザーがサンドボックスを監視し制御できるようにします。プラットフォームは最大 10 の同時サンドボックス を許可しています。クリーンアップするか、より高い上限が必要な場合は founders@manaflow.ai までご連絡ください。アクセス方法 は VS Code (
code <id>)、Jupyter Lab (jupyter <id>)、VNC デスクトップ (vnc <id>) およびターミナルセッション (pty <id>) を通じて提供されます。ファイル転送 は
upload <id> [local-path] [-r remote](オプションで watch/delete/dry‑run フラグ)と download <id> [local-path] -r remote で処理されます。ブラウザ自動化 は
cloudrouter browser スイート(open、snapshot、click、fill、screenshot など)を使用し、要素参照(@e1)は以前のスナップショットから取得されます。すべてのフラグはサンドボックス ID の前に置く必要があります。一般的なトラブルシューティング手順として、
cloudrouter ssh <id> "sudo chown -R 1000:1000 /home/user/.npm" を実行し、npm パッケージをインストールするときの権限エラーを回避します。セキュリティ上、原始的な E2B ポート転送 URL(
https://<port>-xxx.e2b.app)は共有しないでください。代わりに認証済みアクセスチャネル(VS Code、VNC、Jupyter)を使用してください。グローバルフラグには --team <slug> と --verbose が含まれます。本文
Cloudrouter – 開発用クラウドサンドボックス
Cloudrouter はコマンドラインツールで、リモート開発環境を起動し、コード実行やブラウザ自動化をターミナルまたは IDE からすべて操作できます。
以下に整理したリファレンスガイド(コマンド・フラグ・ベストプラクティス・よくある落とし穴)を示します。
1️⃣ インストール & 認証
# CLI をインストール/更新(idempotent) npm install -g @manaflow-ai/cloudrouter # `cloudrouter` とショートカット `cr` が入ります # ユーザーセッションごとに一度だけ認証 cloudrouter login # ブラウザで OAuth を開きます
Tip: 「not logged in」エラーが出たら、まず
を実行してください。cloudrouter login
2️⃣ クイックスタートコマンド
# カレントディレクトリからサンドボックスを作成(推奨) cloudrouter start . # GPU サンドボックスを起動 cloudrouter start --gpu T4 . # A100、H100 なども可 # ブラウザで VS Code を開く cloudrouter code <sandbox-id> # サンドボックス内にインタラクティブターミナルを開く cloudrouter pty <sandbox-id> # 全サンドボックス一覧表示 cloudrouter ls # サンドボックスを停止(ポーズ) cloudrouter stop <sandbox-id>
3️⃣ サンドボックス作成オプション
| フラグ | 意味 | デフォルト |
|---|---|---|
| カスタムサンドボックス名 | 自動生成 |
| 作成後すぐに VS Code を開く | なし |
| マシンサイズ (, , , ) | (8 vCPU、32 GB) |
| GPU タイプ (, , , など) | なし |
| CPU 数を上書き | サイズに合わせる |
| メモリ (MiB) を上書き | サイズに合わせる |
| ディスクサイズ (GB) を上書き | サイズに合わせる |
| コンテナイメージ ( など) | デフォルトイメージ |
| Git リポジトリをクローン ( または URL) | なし |
| クローンするブランチ | |
| プロバイダー (, ) | |
| サンドボックスの有効期間 (秒)(デフォルト 600 s) | 10 分 |
注意:
はユーザーが明示的に別サイズを要求した場合以外は渡さないでください。--size
デフォルト値を上書きする必要があるときは、個別のリソースフラグ (,--cpu,--memory) を使用してください。--disk
4️⃣ サンドボックス管理
| コマンド | 説明 |
|---|---|
| 全サンドボックスを一覧表示( でフィルタ可) |
| 詳細と URL を表示 |
/ | 一時停止(状態は保持) |
| ポーズされたサンドボックスを再開 |
| 有効期間を N 秒延長(デフォルト +1 h) |
(, ) | サンドボックスを完全に削除 |
同時実行ルール: ユーザーは 最大 10 個の稼働中サンドボックス を保持できます。制限に近づいたら、未使用サンドボックスの停止を促す警告を表示してください。
5️⃣ サンドボックスへのアクセス
| アクション | コマンド |
|---|---|
| ブラウザで VS Code | |
| Jupyter Lab | |
| VNC デスクトップ | |
| インタラクティブターミナル | |
セキュリティ注意: 生の E2B ポートフォワード URL(例:
)は共有しないでください。認証済み VNC、VS Code、または Jupyter の URL を使用してください。https://5173-xxx.e2b.app
6️⃣ ファイル転送
# アップロード (ローカル → サンドボックス) cloudrouter upload <id> [path] # デフォルト: /home/user/workspace cloudrouter upload <id> . -r /remote/path # 特定のリモートディレクトリへ cloudrouter upload <id> . --watch # 変更時に自動再アップロード # ダウンロード (サンドボックス → ローカル) cloudrouter download <id> [local-path] cloudrouter download <id> ./out -r /home/user/app # 特定のリモートディレクトリ
重要: リモートパスは
フラグで指定してください。位置引数として渡すと動作しません。-r
7️⃣ ブラウザ自動化 (cloudrouter browser
)
cloudrouter browser全コマンドは SSH 経由でサンドボックス内に実行され、agent-browser をラップします。
ナビゲーション
cloudrouter browser open <id> <url> cloudrouter browser back <id> cloudrouter browser forward <id> cloudrouter browser reload <id> cloudrouter browser url <id> cloudrouter browser title <id>
検査 / スナップショット
# インタラクティブ要素のみ (推奨) cloudrouter browser snapshot -i <id> # 完全なアクセシビリティツリー cloudrouter browser snapshot <id> # 画面キャプチャ cloudrouter browser screenshot <id> [file] cloudrouter browser screenshot <id> --full # 全ページスクリーンショット
要素操作
cloudrouter browser click <id> @e1 # ref で指定 cloudrouter browser fill <id> @e2 "text" # クリアして入力 cloudrouter browser type <id> @e3 "more text" cloudrouter browser press <id> Enter cloudrouter browser scroll <id> down 500
待機 / チェック
cloudrouter browser wait <id> @e1 # 要素が出現するまで待つ cloudrouter browser wait <id> 2000 # ミリ秒単位で待つ cloudrouter browser is-visible <id> @e1
セマンティックロケータ (ref が古くなった場合のフォールバック)
cloudrouter browser find <id> text "Submit" click cloudrouter browser find <id> label "Email" fill "user@test.com"
その他機能
| 機能 | コマンド |
|---|---|
| JS を評価 | |
| コンソール表示 | |
| スクリーンショット取得 | |
| クッキー管理 | |
| 状態永続化 | |
8️⃣ よくある落とし穴 & 修正
| 問題 | 解決策 |
|---|---|
が失敗 (EACCES/ENOENT) | 任意の npm コマンドを実行する前に を実行 |
エラー | コマンドを引用符で囲む: |
| スナップショットが空 | フラグは ID の前に置く: ではなく |
| ブラウザコマンドがすぐ失敗 | Chrome が起動するまで数秒待つ |
| スナップショットの ref が不一致 | DOM 変更後は必ず再スナップショットを取得し、 とフルスナップショットを混在させない |
開発サーバ URL () が漏れる | 共有しないでください。VNC () や認証済み VS Code/Jupyter の URL を使う |
| 長時間実行される SSH がハングする | を使ってインタラクティブまたは長時間コマンドを実行 |
9️⃣ ベストプラクティス
- ローカルディレクトリからサンドボックスを作成(推奨)し、必要に応じて Git クローンを利用。
- 停止しておくこと(削除は本当に不要なときのみ)。停止したサンドボックスは再開可能。
- 結果確認のために時間が必要なら拡張:
。cloudrouter extend <id> --seconds 1800 - 同時実行数を管理 – 新規作成前に
を確認。cloudrouter ls - URL とスクリーンショットで進捗可視化(VS Code、VNC、Jupyter、またはスクリーンショット)。
- 未認証の開発サーバ URL の漏洩を避ける。
🔧 グローバルフラグ
-t, --team <slug> デフォルトチームを上書き -v, --verbose 詳細出力