
This runs OpenClaw validation jobs on remote Linux boxes instead of your laptop, which matters when you need CI parity, Docker lanes, or just don't want to spin up your fan for the full pnpm suite. The wrapper supports both direct AWS Crabbox leases and delegated Blacksmith Testbox runs, and the docs are careful about naming them correctly (cbx_ versus tbx_ IDs). You get reusable warm boxes, full resync flags when things smell stale, and static SSH target support for macOS and Windows hosts. The real value is keeping heavy integration work off local and getting actual provider proof with lease IDs you can trace.
$ npx -y skills add openclaw/agent-skills --skill crabbox --agent claude-codeInstalls into .claude/skills of the current project.
<check-command>, runtime/container image, PR, bootstrap from trusted
consumer instructions, package scripts, or hydration workflow.Routine configured use: creating/reusing/stopping task-owned leases, temporary state, clean checkouts/worktrees for proof or required Crabbox repair; no separate approval.
Preserve user checkouts, branches, unrelated edits; dirty/missing/occupied checkouts: use task-owned ones.
Preserve source-trust, credential, production-access, budget, publication boundaries.
Never execute untrusted repository wrappers/config locally or on credential-hydrated
Testbox. Use secretless fork CI or sanitized direct AWS: fresh lease per full head
SHA; no instance role, Tailscale, hydration; only CI forwarded.
Before untrusted AWS execution: read/follow complete untrusted recipe, including no-role + SHA proof. Proof unavailable: secretless fork CI.
Live credentials: exact key, one command, safe injection only. Never print secrets, put in repository files/shell history, or call fake keys live proof. No safe injection path: live auth blocked. Review captured artifacts for secrets.
Isolate proof in consumer's temporary state/config directory; never mutate operator's normal installation. Stop owned leases after use, including failures.
--provider; override only when explicitly requested or proof
requires backend semantics. Never for size, duration, hydration failure, capacity.| Provider | Use |
|---|---|
blacksmith-testbox | Trusted maintainer source with prepared CI; tbx_... |
aws | Direct brokered execution, fresh PRs, custom sync/env/capture; cbx_... |
local-container | Configured/requested local Docker; not remote proof |
ssh | Existing operator host for macOS/Windows/WSL2 |
From repo root, select trusted installed binary once:
export CRABBOX="$(command -v crabbox)"
test -n "$CRABBOX"
"$CRABBOX" --version
"$CRABBOX" config show --json | jq '{provider, profile, target}'
"$CRABBOX" run --help
.crabbox.yaml + resolved config, including user/environment settings.command -v blacksmith + blacksmith --version.Only for resolved/requested Testbox. Provider-neutral commands retain configuration;
add --provider blacksmith-testbox only for explicit override.
"$CRABBOX" run --timing-json -- CI=1 <check-command>
Several commands: save id, reuse, stop:
"$CRABBOX" warmup --keep --timing-json
"$CRABBOX" run --id <tbx_id> --timing-json -- <check-command>
"$CRABBOX" stop <tbx_id>
--reclaim only
for deliberate checkout-path ownership transfer.--no-sync is unsupported and
exits with code 2 before provider activity. It cannot preserve a remote baseline.warmup --blacksmith-ref (native blacksmith testbox warmup --ref):
branch/tag only, never raw SHA. Never checkout refs in synced root.--id; status has no --json. Use
blacksmith testbox list --all or blacksmith testbox status --id <tbx_id>.--fresh-pr, --full-resync, --script*, --env-helper,
and capture/download flags. Crabbox stop does not accept --timing-json.Read only relevant recipe; routing + immediate-availability rules still apply:
Sponsors