crabbox-deploy
Recipe card from the charly-automation plugin (Commands — runtime CLI verbs).
Crabbox - Remote Test Execution, Local Control Plane
Section titled “Crabbox - Remote Test Execution, Local Control Plane”Overview
Section titled “Overview”Crabbox (https://github.com/openclaw/crabbox) leases or selects a runner,
syncs the current working tree, runs commands remotely, streams output,
records evidence, and releases the target. In OpenCharly the CLI
(layer-crabbox candy), the Node.js/PostgreSQL coordinator
(pod-crabbox candy, supervised, postgres-backed), and the crabbox:
check verb (plugin-crabbox) compose into a FULLY-LOCAL control plane:
CLI -> broker at loopback :8080 -> postgres :5432 -> leases via
--provider local-container on the box’s nested rootless podman.
Quick Reference
Section titled “Quick Reference”| Action | Command | Description |
|---|---|---|
| CLI version | crabbox --version |
Verified 0.48.1 pin |
| Doctor | crabbox doctor |
Local prerequisites; exit 0 needs NO broker (or a reachable one) |
| Providers | crabbox providers |
Credential-free local provider matrix (local-container/ssh/external) |
| Login (shared token) | printf '%s' "$CRABBOX_SHARED_TOKEN" | crabbox login --url http://127.0.0.1:8080 --token-stdin |
Broker auth |
| Usage | crabbox usage |
Broker-backed spend/history |
| Leases | crabbox list |
Enumerate leases (status needs an id) |
| Run | crabbox run --provider local-container -- '<cmd>' |
Lease/sync/run/stream/release |
| Check verb | crabbox: health / ready / version / … |
Declarative plan steps (plugin-crabbox) |
For container lifecycle use charly commands – see /charly-core:service.
OpenCharly Integration
Section titled “OpenCharly Integration”Candies
Section titled “Candies”layer-crabbox(v2026.247.0855) — the CLI binary at /usr/local/bin/crabbox (pinned GoReleaser archive), prerequisites composed (layer-gh / layer-ssh-client / rsync / curl), plan checks: version/providers/doctor.pod-crabbox(v2026.247.1016) — the coordinator: built from the pinned upstream tag in-image, supervised at priority 20 (after postgres), port 8080, /v1/health + /v1/ready, start wrapper waiting for the database.plugin-crabbox(v2026.247.1021) — thecrabbox:check verb (three method classes: credential-free CLI / coordinator HTTP probes / broker-backed CLI).
Boxes + beds (distro-cachyos)
Section titled “Boxes + beds (distro-cachyos)”box/crabbox (CLI) and box/crabbox-e2e (full local control plane +
container-nesting) with the disposable beds check-crabbox-pod and
check-crabbox-e2e-pod proving the surface: coordinator health/ready,
shared-token login, doctor/usage/leases, the verb dispatch, and the
nesting INFRA smoke.
Local loop status (recorded)
Section titled “Local loop status (recorded)”The local-container LOOP and the four stretch steps are routed to the
NAMED thematic batch plan/crabbox-loop-cutover.md (distro-cachyos):
uid-1000 has no caps for crun’s sethostname under the nesting recipe’s
userns=host, and the root posture breaks the shared postgresql candy
(initdb refuses root) — the two named exits are a root-capable postgresql
variant and an upstream hostname knob.
Verification
Section titled “Verification”charly check run check-crabbox-pod # steps=13 PASS (verb surface)charly check run check-crabbox-e2e-pod # steps=13 PASS (coordinator+broker)Cross-References
Section titled “Cross-References”/charly-tools:crabbox— the CLI candy./charly-check:crabbox— the check verb./charly-crabbox:crabbox-coordinator— the coordinator candy.