Moving to a standardized CLI interface with clawctl
If you've been using Clawrium with clm, the next install replaces it with clawctl. Same hosts, same agents, same ~/.config/clawrium/ state — a single, consistent, kubectl-style command surface across the entire fleet.
Why this matters to you
- One grammar, six resources.
get,describe,create,delete,apply-style verbs work the same way acrosshost,agent,provider,channel,integration,skill. Learn it once. - Pipe-friendly output. Every
getsupports-o yaml,-o json,-o name, and--no-headers. Scripts compose; output is no longer a moving target. - Tab completion that works.
clawctl completion bash(orzsh/fish) gives you completion across every group, verb, and flag. - One place to see everything about an agent.
clawctl agent describe <name>shows attached providers, channels, skills, secrets, onboarding state, and host details in one block. agent getreads likekubectl get pods. STATUS / AGE columns, predictable sort, scriptable.- Channels are a real resource. Register a Discord or Slack channel once with
clawctl channel registry create, attach it to as many agents as you want withclawctl agent channel attach. No more per-agent re-entry.
What it looks like
Three real outputs from the live fleet (no synthetic data — these are verbatim from the validation transcript).
List your fleet
$ clawctl agent get
NAME TYPE HOST PROVIDER STATUS AGE
wolf-i openclaw wolf-i - ready 42d
espresso hermes wolf-i - ready 13d
maurice hermes wolf-i - ready 2d
clawrium-d01 zeroclaw wolf-i - ready 5d
nemotron-beta zeroclaw wolf-i - ready 4d
nemotron-alpha zeroclaw wolf-i - ready 2d
Look at one agent
$ clawctl agent describe maurice
Name: maurice
Kind: agent
Type: hermes
Version: 2026.5.7
Host: wolf-i (wolf.<redacted>.ts.net)
Provider: -
Status: ready
Age: 2d
Installed: 2026-05-22T20:39:02Z
Channels (1):
discord
Skills (0):
Integrations (0):
Machine-readable
$ clawctl host get -o yaml
- kind: host
name: wolf-i
hostname: wolf.<redacted>.ts.net
user: xclm
status: ready
age_seconds: 3774446
aliases: [wolf-i]
addresses:
- address: 192.168.1.Y
is_primary: false
- address: wolf.<redacted>.ts.net
is_primary: true
label: tailscale
Migration
Install clawctl (it ships as the new binary in the same clawrium package). Existing agents on existing hosts keep running — clawctl agent get will list them immediately. The first clawctl agent sync <agent> you run picks up the new template names.
uv tool uninstall clm 2>/dev/null || true
uv tool install clawrium
clawctl agent get # confirm your fleet is intact
The full command-by-command mapping lives in the CLI reference docs — one page per resource (agent, host, provider, channel, integration, skill).
Breaking changes
- No
clmalias. The old binary is gone; the verb grammar is different enough that an alias would mislead more than help. - Channels moved out of
agent configure. Useclawctl channel registry createthenclawctl agent channel attach. The old--stage channelsflag prints a deprecation pointer. - Some templates renamed on disk (e.g.
clm-env.conf.j2→zeroclaw-env.conf.j2). The firstclawctl agent syncper agent cleans up the legacy dropin automatically.
Full migration recipe in CHANGELOG.md under [Unreleased] BREAKING.
Where to go from here
- CLI reference — every verb, every flag
- Installation guide — fresh install + agent quickstart
- GitHub issues — for migration snags
