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
入门指南
- 安装 – 二进制分发或
cargo install crabbox(基于 Rust)。对于local-container提供商,必须运行 Docker/Podman。 - 选择提供商 – 例如,
local-container用于快速本地测试,或aws用于云 macOS 虚拟机。 - 运行
crabbox doctor– 检查提供商的凭据和先决条件是否可访问。 - 运行您的第一个命令 –
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