Skip to content

openclaw

Recipe card from the charly-check plugin (Commands — runtime CLI verbs).

openclaw: probes a running OpenClaw 2.0 gateway, served out-of-process over go-plugin gRPC by opencharly/plugin-openclaw. Install the gateway itself with /charly-openclaw:openclaw (opencharly/pod-openclaw).

http: already does URL + status + body/header matchers. This verb exists for what http: structurally cannot do:

  • Endpoint resolution. cc.ResolveEndpoint turns the in-venue gateway port into a host-reachable address, so one authored step works unchanged against a pod’s published port and a VM’s forwarded one.
  • Domain semantics. Methods map to the gateway’s real probe surface and return real verdicts, with json_path: to assert one field instead of pattern-matching a JSON blob.
  • In-venue CLI. The status/models/channels methods run the openclaw binary inside the venue over the reverse channel — http: cannot reach the gateway CLI at all.
Group Methods
HTTP probes (host-side) health (/healthz liveness) ready (/readyz readiness) startup (/startupz startup)
In-venue CLI status (openclaw status --all) models (openclaw models status) channels (openclaw channels status) version (openclaw --version)

All methods are read-only — there are no mutating methods in this first cut.

Field Meaning
method the operation (also the scalar-sugar primary: openclaw: health)
port gateway port (default 18789)
timeout HTTP probe timeout (default 10s)
json_path dotted path into the response; stdout becomes that value
openclaw: health # scalar sugar
openclaw: # map form — identical meaning
method: health

Both parse. The sugar is enabled by this candy’s plugin.primary: {openclaw: method}, which charly reads in a PRE-CONNECT prescan — so the plugin candy must be composed into the box that authors the step.

# Liveness — the 2.0 container probe.
- check: the gateway's /healthz liveness endpoint reports ok
openclaw: health
stdout: [{contains: ok}]
eventually: 60s
retry_interval: 5s
context: [runtime]
# Readiness — configured channels healthy.
- check: the gateway is ready
openclaw: ready
context: [runtime]
# Assert ONE field instead of matching a blob.
- check: the gateway reports ok
openclaw:
method: health
json_path: status
stdout: [{equals: ok}]
context: [runtime]
# Gateway state via the in-venue CLI.
- check: the gateway CLI reports its model status
openclaw: models
context: [runtime]