openclaw/crabbox

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

Crabbox – 面向编码代理的按需计算机

功能概述

Crabbox 是一个命令行工具,可让您租用临时计算机,复制当前源代码树(包括未提交的更改),在其中运行命令,流式传输输出,然后释放机器。它支持多种后端——本地 Docker/Podman 容器、云虚拟机、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 将仓库(包括未提交的更改)复制到机器中,遵循可配置的工作区同步规则,跳过大型构建目录。
协调器(可选) 一个中央服务,可以存储云凭据,强制执行支出上限,并提供 Web 门户查看活动租约、日志和 VNC 会话。
桌面 / 浏览器功能 一些提供商暴露图形桌面(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   # 打开 shell
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 虚拟机。
  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