openclaw/crabbox

Crabbox: warm a box, sync the diff, run the suite.

Crabbox – コーディングエージェント向けのオンデマンドコンピューター

機能概要

Crabbox は、一時的なコンピューターをリースし、現在のソースツリー(未コミットの変更を含む)をコピーし、そこでコマンドを実行し、出力をストリーミングして戻し、マシンを解放できるコマンドラインツールです。ローカル Docker/Podman コンテナ、クラウド VM、macOS/Windows ホスト、または SSH でアクセス可能な任意のボックスなど、多くのバックエンドで動作するため、エージェントや開発者は自分のラップトップを占有せずにテスト、ビルド、UI チェックを実行できます。

AI/ML ワークフローにとって重要な理由

  • 並列エージェント – コードを生成する大規模言語モデルエージェントは、それぞれ独立した隔離されたボックスを取得でき、単一ワークステーションでの競合を回避できます。
  • 高速編集-テストループ – ウォームアップボックスは依存関係をインストールしたままにするため、繰り返しの実行が高速になり、反復的なプロンプトからコードへのサイクルに役立ちます。
  • クロスプラットフォーム検証 – 単一の CLI から Linux、macOS、Windows、または WSL2 で同じテストスイートを実行し、生成されたコードがどこでも動作することを確認します。
  • ヒューマンインザループ UI – VNC/WebVNC またはブラウザベースの VS Code インスタンスを使用して、UI テストを監視したり手動で介入したりしてから、エージェントを続行させることができます。

コアコンセプト

概念 説明
プロバイダー 特定の種類のマシン(Docker、AWS、Azure、SSH ホストなど)を起動、停止、通信する方法を知っているプラグイン。Crabbox には 80 以上の組み込みプロバイダーと external プラグインインターフェースが付属しています。
リース / ボックス 短期間のコンピューターインスタンス。リースを要求し(crabbox run …)、使用し、ウォームアップを維持しない限り自動的に解放されます。
ウォームアップ / プリウォーム 複数の実行にわたってリースを維持し、オプションで GitHub Actions アーティファクトでハイドレートします。
同期 実行前に、Crabbox はリポジトリ(未コミットの変更を含む)をボックスにコピーし、大きなビルドディレクトリをスキップする設定可能なワークスペース同期ルールに従います。
コーディネーター(オプション) クラウド資格情報を保存し、支出上限を強制し、アクティブなリース、ログ、VNC セッションを表示する Web ポータルを提供できる中央サービス。
デスクトップ / ブラウザ機能 一部のプロバイダーは、グラフィカルデスクトップ(VNC/WebVNC)またはインストールされたブラウザを公開し、UI テストや手動デバッグを可能にします。

典型的なワークフロー(CLI スニペット)

# 1️⃣ ボックスをリースし、リポジトリをコピーし、テストスイートを実行してから解放
crabbox run -- pnpm test

# 2️⃣ 迅速な反復のためにボックスをウォームアップ
crabbox warmup --slug dev-box
crabbox run --id dev-box -- npm test
crabbox connect --id dev-box   # シェルを開く
crabbox stop dev-box           # 完了したら解放

# 3️⃣ 表示可能なデスクトップで UI テストを実行
crabbox warmup --class tiny --desktop --browser --slug ui-box
crabbox webvnc --id ui-box --open --take-control
crabbox run --id ui-box -- "npm run e2e"
crabbox stop ui-box

はじめに

  1. インストール – バイナリ配布または cargo install crabbox(Rust ベース)。local-container プロバイダーには Docker/Podman が実行されている必要があります。
  2. プロバイダーを選択 – 例:local-container はローカルでの迅速なテスト用、aws はクラウド macOS VM 用。
  3. crabbox doctor を実行 – プロバイダーの資格情報と前提条件が到達可能かどうかを確認します。
  4. 最初のコマンドを実行 – crabbox run -- uname -a。

プロバイダーエコシステム(高レベル)

  • ブローカー可能なクラウド – AWS、Azure、GCP、Hetzner(コーディネーターが資格情報を管理できます)。
  • 直接クラウド – DigitalOcean、Linode、VULTR、GitHub Codespaces など。
  • 委任されたサンドボックス – Cloud-run、Cloudflare、E2B、Modal など、短期間のコンテナスタイル実行用。
  • ローカルおよびセルフホスト – Docker、Podman、Multipass、Hyper-V、Proxmox、Firecracker など。
  • GPU 対応 – Lambda、RunPod、Vast、WandB は ML ワークロード用。
  • デスクトップ対応 – VNC または WebVNC を公開するプロバイダー(AWS、Azure、Parallels など)。

誰が使用すべきか?

  • LLM ベースのコーディングエージェント – 生成された各スニペットに隔離された再現可能な環境が必要です。
  • 開発者 – 重いテストスイートをクラウドにオフロードし、高速なローカル編集ループを維持したい人。
  • CI/CD パイプライン – マシンを起動し、ジョブを実行し、証拠を収集するための一貫したプロバイダーに依存しない方法が必要です。
  • チーム – 支出制限を強制し、チームメイトに実行中の UI テストへの視覚的アクセスを提供する共有「ブローカー」を望むチーム。

上記のすべての情報はプロジェクトの README から直接取得されています。外部の仮定は追加されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch