Skip to content

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”

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.

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.

  • 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) — the crabbox: check verb (three method classes: credential-free CLI / coordinator HTTP probes / broker-backed CLI).

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.

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.

charly check run check-crabbox-pod # steps=13 PASS (verb surface)
charly check run check-crabbox-e2e-pod # steps=13 PASS (coordinator+broker)