Skip to main content

OpenClaw session and model monitor (TUI/CLI) with Gateway correlation and manual progress nudges.

Project description

ClawMonitor

English | 简体中文

ClawMonitor TUI

ClawMonitor loading screen

Real-time OpenClaw session 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)
  • 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 selection
  • PgUp/PgDn: page up / down
  • g / G: jump to top / bottom
  • Enter: nudge selected session (choose template)
  • ?: show help overlay
  • v: toggle session/model view
  • x: focus filter (hide stale sessions)
  • t: toggle tree view (group by agent)
  • c: toggle cron jobs in tree view
  • R: rename/label selected session (writes [labels] in config)
  • n: toggle NODE label mode (channel:label)
  • l: toggle related logs panel
  • d: re-run diagnosis for selected session
  • e: export a redacted report for selected session
  • r: force refresh
  • f: cycle refresh interval
  • q: 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 r after switching with v.
  • The top banner shows WAITING, RUNNING, DONE, or ERROR, so you can tell whether a probe run actually started.
  • Each row shows the effective agent + model chain entry, including primary / fallbackN roles.
  • ClawMonitor probes both paths when enabled:
    • Direct provider/API path (--mode direct or both)
    • OpenClaw execution path via temporary probe sessions (--mode openclaw or both)
  • Supported direct transports today: openai-completions, openai-responses, anthropic-messages

See docs/model-monitor.md for the probe model, classifications, and UI behavior.

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_OTHER in clawmonitor status
  • BIND in the TUI list

Relevant files/settings:

  • Thread bindings: ~/.openclaw/telegram/thread-bindings-default.json
  • Config toggle: ~/.openclaw/openclaw.jsonchannels.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.json and 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 tui may hide the details panel; use clawmonitor status as a stable fallback.
  • For ClawHub import, see docs/clawhub-skill.md and skills/claw-monitor/SKILL.md.

See CONTRIBUTORS.md for acknowledgements.

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

clawmonitor-0.1.9.tar.gz (78.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clawmonitor-0.1.9-py3-none-any.whl (87.2 kB view details)

Uploaded Python 3

File details

Details for the file clawmonitor-0.1.9.tar.gz.

File metadata

  • Download URL: clawmonitor-0.1.9.tar.gz
  • Upload date:
  • Size: 78.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for clawmonitor-0.1.9.tar.gz
Algorithm Hash digest
SHA256 ff415065f635660849e5a894909e93367f47b362eb02abea1878bc49883ccb88
MD5 dc32d2923e9f9eda68320b5ef36c92eb
BLAKE2b-256 db889592ade77ddc8d1d380643f433d3fefd3a46c147db3579f661ea22b3c529

See more details on using hashes here.

Provenance

The following attestation bundles were made for clawmonitor-0.1.9.tar.gz:

Publisher: pypi-publish.yml on openclawq/clawmonitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clawmonitor-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: clawmonitor-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 87.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for clawmonitor-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 a77a7969409806a56ab72dfa9006322251edc126acc063652faf431d21c88dec
MD5 2cf00e7b46f5e7c0b4d6fc04bf36c3bc
BLAKE2b-256 4f2fa540cc0b415dcfbde878ad51fdf96d28421774c9109f63220d1e23c41e9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for clawmonitor-0.1.9-py3-none-any.whl:

Publisher: pypi-publish.yml on openclawq/clawmonitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page