Keyboard-first OpenClaw monitor for sessions, models, token usage, and gateway service health.
Project description
ClawMonitor
English | 简体中文
Keyboard-first OpenClaw monitor with:
- Per-session last inbound user message + last outbound assistant message (preview + timestamp)
- Per-model health probes (direct provider API and through OpenClaw itself)
- On-demand session history with task trajectory (
todo / doing / done) - Token visibility from local session snapshots plus Gateway
1d / 7d / 30dusage windows - Gateway service / cgroup health view with zombie-orphan-helper inspection and reclaim estimates
- Work state: WORKING / FINISHED / INTERRUPTED / NO_MESSAGE (+ NO_FEEDBACK alert)
- Long-run visibility via
*.jsonl.lock(works even if Gateway is down) - Optional Gateway log tail + channel runtime snapshot correlation (Feishu/Telegram-focused rules)
- Full-screen TUI with manual “nudge” (send a progress request via
chat.send)
Install (editable)
cd ~/program/clawmonitor
python3 -m pip install -e .
Install (PyPI)
pip install clawmonitor
Run
clawmonitor init
clawmonitor tui
Other commands:
clawmonitor snapshot --format json
clawmonitor snapshot --format md
clawmonitor nudge --session-key 'agent:main:main' --template progress
clawmonitor nudge --session-key 'agent:main:main' --template continue
clawmonitor push --session-key 'agent:main:main' --dry-run
clawmonitor status
clawmonitor status --detail
clawmonitor status --format json
clawmonitor status --format md
clawmonitor status --format md --detail
clawmonitor cron
clawmonitor models
clawmonitor models --mode direct --format json
clawmonitor models --mode openclaw --timeout 15
clawmonitor tree
clawmonitor report --session-key 'agent:main:main' --format both
clawmonitor watch --interval 1
Configuration
Default config path:
~/.config/clawmonitor/config.toml
Example config is in config.example.toml.
Optional labels
You can assign human-friendly names to long session keys (e.g. Feishu ou_...).
See the [labels] section in config.example.toml.
Runtime data (NOT stored in this repo):
- Logs:
~/.local/state/clawmonitor/events.jsonl - Reports:
~/.local/state/clawmonitor/reports/ - Cache:
~/.cache/clawmonitor/
Keys (TUI)
↑/↓: move selectionPgUp/PgDn: page up / downg/G: jump to top / bottomEnter: nudge selected session (choose template)?: show help overlayv: cycle sessions / models / system viewss: jump directly to system viewh: toggle status / history on the rightu: cycle token windows (now/1d/7d/30d)x: focus filter (hide stale sessions)t: toggle tree view (group by agent)c: toggle cron jobs in tree viewR: rename/label selected session (writes[labels]in config)n: toggle NODE label mode (channel:label)l: toggle related logs paneld: re-run diagnosis for selected sessione: export a redacted report for selected sessionz: cycle pane widthsZ: toggle fullscreen detail paneo: open operator note in system viewEsc: reset to the default surfacer: force refreshf: cycle refresh intervalq: quit
Rows are color-coded when your terminal supports colors (OK green, RUN cyan, IDLE yellow, ALERT red).
In the details panel, Task: / Thinking: lines are highlighted (magenta when supported).
Model view notes:
- Model view is manual-refresh by design. Press
rafter switching withv. - The top banner shows
WAITING,RUNNING,DONE, orERROR, so you can tell whether a probe run actually started. - Each row shows the effective
agent + modelchain entry, includingprimary/fallbackNroles. - ClawMonitor probes both paths when enabled:
- Direct provider/API path (
--mode directorboth) - OpenClaw execution path via temporary probe sessions (
--mode openclaworboth)
- Direct provider/API path (
- Supported direct transports today:
openai-completions,openai-responses,anthropic-messages
Session/token/system notes:
- History loading is on demand. In the session view, press
hand thenrto read cached task history for the selected session. - Token
1d / 7d / 30dwindows are loaded from Gateway on demand and then cached in the TUI. - System view is read-only by design: it summarizes service state, helper buildup, zombies/orphans, and reclaimable memory estimates without killing anything.
See docs/model-monitor.md for the probe model, classifications, and UI behavior.
See docs/system-monitor.md and docs/system-view-guide.zh-CN.md for the new system view.
Telegram note: ACP “thread bindings”
OpenClaw can route a Telegram chat to a different session key via local thread bindings. This may make it look like your “main” session stopped receiving messages.
ClawMonitor detects this and flags it:
BOUND_OTHERinclawmonitor statusBINDin the TUI list
Relevant files/settings:
- Thread bindings:
~/.openclaw/telegram/thread-bindings-default.json - Config toggle:
~/.openclaw/openclaw.json→channels.telegram.threadBindings.spawnAcpSessions
First run
If no config file exists, most commands will offer to run the init wizard (interactive terminals only).
See docs/launch-post.md for a longer intro.
Notes
- ClawMonitor never prints or writes OpenClaw secrets. It avoids dumping
openclaw.jsonand redacts suspicious token-like strings in logs/reports. - If Gateway is unreachable, ClawMonitor still works in offline mode (sessions/transcripts/locks/delivery-queue) but disables log tail + nudge.
- If your terminal window is narrow,
clawmonitor tuimay hide the details panel; useclawmonitor statusas a stable fallback. - For ClawHub import, see
docs/clawhub-skill.mdandskills/claw-monitor/SKILL.md.
See CONTRIBUTORS.md for acknowledgements.
Project details
Release history Release notifications | RSS feed
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 clawmonitor-0.2.0.tar.gz.
File metadata
- Download URL: clawmonitor-0.2.0.tar.gz
- Upload date:
- Size: 115.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
320f10af14877c1726cbe53cb0e495dac8ef9bd692137871eb1e8034c972b3cf
|
|
| MD5 |
7609f568cc7f8d3c79d3a86a94fbff7a
|
|
| BLAKE2b-256 |
18f6c86e51576256ae55d1939f7e23674a0186f1156cd3cb23e19781db60ad84
|
Provenance
The following attestation bundles were made for clawmonitor-0.2.0.tar.gz:
Publisher:
pypi-publish.yml on openclawq/clawmonitor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clawmonitor-0.2.0.tar.gz -
Subject digest:
320f10af14877c1726cbe53cb0e495dac8ef9bd692137871eb1e8034c972b3cf - Sigstore transparency entry: 1154359592
- Sigstore integration time:
-
Permalink:
openclawq/clawmonitor@fcc4f0b5875cee9963b1b18eb5446eb455e58fb1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/openclawq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@fcc4f0b5875cee9963b1b18eb5446eb455e58fb1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file clawmonitor-0.2.0-py3-none-any.whl.
File metadata
- Download URL: clawmonitor-0.2.0-py3-none-any.whl
- Upload date:
- Size: 121.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fef9460a0535c0c8d0b9a3b67699917bceb56c4f54190b6cef3f929a1ea71be3
|
|
| MD5 |
8cb27a591682eac210f9cf5992dd1712
|
|
| BLAKE2b-256 |
4a043ec2428cbbc3525de010d377d49a517665529016b724180cbda9bed06a74
|
Provenance
The following attestation bundles were made for clawmonitor-0.2.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on openclawq/clawmonitor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clawmonitor-0.2.0-py3-none-any.whl -
Subject digest:
fef9460a0535c0c8d0b9a3b67699917bceb56c4f54190b6cef3f929a1ea71be3 - Sigstore transparency entry: 1154359593
- Sigstore integration time:
-
Permalink:
openclawq/clawmonitor@fcc4f0b5875cee9963b1b18eb5446eb455e58fb1 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/openclawq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@fcc4f0b5875cee9963b1b18eb5446eb455e58fb1 -
Trigger Event:
push
-
Statement type: