ClawCU: a local multi-agent lifecycle manager for OpenClaw and Hermes
Project description
ClawCU
ClawCU is a local-first lifecycle manager for running multiple AI agent runtimes on one machine. It currently supports: OpenClaw and Hermes Agent.
Why ClawCU
Running agent runtimes by hand breaks in predictable ways. ClawCU gives every runtime:
- Isolated — its own container, datadir, and env
- Reversible — every upgrade is snapshotted; rollback is one command
- Repeatable — clone first, test second, promote only if it works
Highlights
- One CLI, two runtimes — OpenClaw and Hermes through the same lifecycle commands
- Snapshots before every upgrade — datadir and env both captured;
rollbackrestores from real backups - Clone-first experiments — copy an instance, upgrade the copy, leave the original running
Install
uv tool install .
or
pipx install .
Quick Start
Check Docker access, runtime directories, and configure defaults:
clawcu setup
Show shell completion guidance only when you want it:
clawcu setup --completion
In an interactive terminal, clawcu setup prompts for:
- the default
ClawCU home - the default OpenClaw image repo
- the default Hermes image repo
OpenClaw
Prepare an OpenClaw version for use:
clawcu pull openclaw --version 2026.4.1
This records the OpenClaw image ClawCU should use. If it is missing locally, Docker pulls it when the instance starts.
Create and start an instance:
clawcu create openclaw --name writer --version 2026.4.1
Verify that the instance is really usable:
clawcu tui writer
Get the dashboard token:
clawcu token writer
Hermes
Pull a prebuilt Hermes image:
clawcu pull hermes --version v2026.4.13
Create and start a Hermes instance:
clawcu create hermes --name analyst --version v2026.4.13
Enter the Hermes interactive flow:
clawcu tui analyst
Shared day-to-day commands
List what is running:
clawcu list
clawcu list --managed
clawcu list --agents
clawcu list --removed # orphan datadirs whose records were lost
Inspect one managed instance:
clawcu inspect writer
clawcu inspect analyst
Run a native command inside the container:
clawcu exec writer pwd
clawcu exec analyst hermes version
For the full command reference for v0.2.8, see USAGE_v0.2.8.md.
Safe Upgrade Workflow
The recommended ClawCU workflow is:
- clone a working instance
- upgrade the clone
- validate the clone
- rollback the clone if needed
- only then decide whether to upgrade the original instance
Example:
clawcu clone writer --name writer-upgrade-test
clawcu upgrade writer-upgrade-test --version 2026.4.10
clawcu rollback writer-upgrade-test
The same pattern also works for Hermes:
clawcu clone analyst --name analyst-upgrade-test
clawcu upgrade analyst-upgrade-test --version v0.9.1
clawcu rollback analyst-upgrade-test
Why this works well:
- your primary instance stays untouched
- compatibility problems are isolated
- repairs happen in the cloned instance
- rollback has a real snapshot to restore from
What upgrade protects
Before upgrade, ClawCU snapshots:
- the instance data directory
- the matching service env file
That means:
- OpenClaw snapshots:
datadir~/.clawcu/instances/<instance>.env
- Hermes snapshots:
datadir<datadir>/.env
If the upgrade fails, ClawCU attempts to restore the previous version and the matching env snapshot automatically.
Model Configuration Collection and Reuse
ClawCU keeps the existing provider command family for compatibility, but it is now best read as model-configuration collection and reuse across services.
Collect from all managed instances plus local homes:
clawcu provider collect --all
Collect from one managed instance:
clawcu provider collect --instance writer
clawcu provider collect --instance analyst
Collect from a local home:
clawcu provider collect --path ~/.openclaw
clawcu provider collect --path ~/.hermes
Inspect what has been collected:
clawcu provider list
clawcu provider show openclaw:minimax
clawcu provider show hermes:openrouter
Apply a collected model configuration:
clawcu provider apply openclaw:minimax writer --agent main --primary minimax/MiniMax-M2.7
clawcu provider apply hermes:openrouter analyst --persist
Service identity is stored with each collected bundle so OpenClaw and Hermes configs with the same logical name do not silently collide.
Environment Variables
ClawCU manages env files per service instead of forcing a single storage model.
OpenClaw:
- env path:
~/.clawcu/instances/<instance>.env
Hermes:
- env path:
<datadir>/.env
Shared commands:
clawcu setenv <instance> KEY=VALUE
clawcu getenv <instance>
clawcu unsetenv <instance> KEY
Optional immediate apply:
clawcu setenv <instance> KEY=VALUE --apply
clawcu unsetenv <instance> KEY --apply
--apply recreates the instance so Docker reloads the env file for the running container.
Access and Service-Specific Commands
ClawCU keeps the common command surface broad, but some access commands remain service-specific.
OpenClaw-only:
clawcu token <instance>clawcu approve <instance> [requestId]
These work because OpenClaw has a matching dashboard token and pairing model.
Hermes:
- has a dashboard URL surfaced by
create,list, andinspect - uses
tui,config, andexecas the main operational entrypoints - does not map to the same
tokenorapproveconcepts
Release Notes
- Release notes for
v0.2.8: RELEASE_v0.2.8.md - Archived release notes for
v0.2.0: RELEASE_v0.2.0.md - Archived release notes for
v0.1.0: RELEASE_v0.1.0.md
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clawcu-0.2.8.tar.gz.
File metadata
- Download URL: clawcu-0.2.8.tar.gz
- Upload date:
- Size: 133.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd21b883b41e5e33c2cbe29d4220021a72fa26c4186f8a4a693be706204071c5
|
|
| MD5 |
4476494bf7aee9d7aa06136c56bfd15e
|
|
| BLAKE2b-256 |
94447e840038defd66c83557cce74b407b0bc8b85c315af289a71321c2a2ed76
|
File details
Details for the file clawcu-0.2.8-py3-none-any.whl.
File metadata
- Download URL: clawcu-0.2.8-py3-none-any.whl
- Upload date:
- Size: 95.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39e4276891d20dd36a248e8995521a5bba04830accd0cb4020b2b49767763c91
|
|
| MD5 |
7451d7a549afdc3e12c72e4acf0eb01c
|
|
| BLAKE2b-256 |
eabb3039076707518864b7eca1a985b920d60d4d06f5da7f1a2e69c7ba4ef1cc
|