Real-time OpenClaw session monitor (TUI) with Gateway log correlation and manual progress nudges.
Project description
ClawMonitor
English | 简体中文
Real-time OpenClaw session monitor with:
- Per-session last inbound user message + last outbound assistant message (preview + timestamp)
- 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)
Once published to PyPI, you’ll be able to install via:
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 --format json
clawmonitor status --format md
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.
Runtime data (NOT stored in this repo):
- Logs:
~/.local/state/clawmonitor/events.jsonl - Reports:
~/.local/state/clawmonitor/reports/ - Cache:
~/.cache/clawmonitor/
Keys (TUI)
↑/↓: move selectionEnter: nudge selected session (choose template)?: show help overlayl: toggle related logs paneld: re-run diagnosis for selected sessione: export a redacted report for selected sessionr: force refreshf: cycle refresh intervalq: quit
Rows are color-coded when your terminal supports colors (OK green, RUN cyan, IDLE yellow, ALERT red).
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.
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.1.3.tar.gz.
File metadata
- Download URL: clawmonitor-0.1.3.tar.gz
- Upload date:
- Size: 37.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c181b0a6a870d2999a361eaa8ec35cdc489139bfa4853e8883ef3bb609895c0
|
|
| MD5 |
6ae2d21845f187ef1cb30c46828ad976
|
|
| BLAKE2b-256 |
fece46a04fd9eb715f8b1f182f392e3dcc759a42798dcd51471eeeb5b86f13a2
|
Provenance
The following attestation bundles were made for clawmonitor-0.1.3.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.1.3.tar.gz -
Subject digest:
1c181b0a6a870d2999a361eaa8ec35cdc489139bfa4853e8883ef3bb609895c0 - Sigstore transparency entry: 1091445436
- Sigstore integration time:
-
Permalink:
openclawq/clawmonitor@1f39630c1e371e88b39f6cb508eb5feb7afed642 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/openclawq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@1f39630c1e371e88b39f6cb508eb5feb7afed642 -
Trigger Event:
push
-
Statement type:
File details
Details for the file clawmonitor-0.1.3-py3-none-any.whl.
File metadata
- Download URL: clawmonitor-0.1.3-py3-none-any.whl
- Upload date:
- Size: 45.0 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 |
a49f199f5e4e4e27d8dee5029a97b75974c20a8c1740c820fed1985dad7c026b
|
|
| MD5 |
9d4418b743df42ff4d4c2e9c2b4616bf
|
|
| BLAKE2b-256 |
3db91b47935b587add43b44c248ab99481a00f08fbc80d1f2a7de2f40039da5f
|
Provenance
The following attestation bundles were made for clawmonitor-0.1.3-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.1.3-py3-none-any.whl -
Subject digest:
a49f199f5e4e4e27d8dee5029a97b75974c20a8c1740c820fed1985dad7c026b - Sigstore transparency entry: 1091445440
- Sigstore integration time:
-
Permalink:
openclawq/clawmonitor@1f39630c1e371e88b39f6cb508eb5feb7afed642 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/openclawq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@1f39630c1e371e88b39f6cb508eb5feb7afed642 -
Trigger Event:
push
-
Statement type: