by vivekchand
See your agent think. Real-time observability dashboard for OpenClaw AI agents.
# Add to your Claude Code skills
git clone https://github.com/vivekchand/clawmetryLast scanned: 5/27/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-27T08:05:35.787Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": false
}No comments yet. Be the first to share your thoughts!
See your agent think. Real-time observability for OpenClaw AI agents.
🌐 Read this in: English · 简体中文 · 日本語 · 한국어 · Español · Português (BR) · Français · Deutsch · हिन्दी · العربية · Русский · more →
One command. Zero config. Auto-detects everything.
pip install clawmetry && clawmetry
Opens at http://localhost:8900 and you're done.









One-liner (recommended):
curl -sSL https://raw.githubusercontent.com/vivekchand/clawmetry/main/install.sh | bash
pip:
pip install clawmetry
clawmetry
From source:
git clone https://github.com/vivekchand/clawmetry.git
cd clawmetry && pip install flask && python3 dashboard.py
The v2 React app lives in frontend/ and is served at /v2 when the Flask
server is started with v2 enabled.
Use two terminals while developing:
# Terminal 1: Flask API/server on :8900
CLAWMETRY_V2=1 python3 dashboard.py
# Terminal 2: Vite dev server on :5173
cd frontend
nvm use
npm ci
npm run dev
Open http://localhost:5173/v2/. Vite proxies /api requests to
http://localhost:8900, so the React app can talk to the local Flask server
without extra CORS setup.
To build the bundle that ships with the Python package:
cd frontend
npm run build
The production bundle is written to clawmetry/static/v2/dist/.
ClawMetry observes many AI-agent runtimes, not just OpenClaw. Each non-OpenClaw runtime ships a dedicated reader adapter that translates its native session format into ClawMetry's unified shapes; the daemon ingests them into the same DuckDB store + cloud snapshot, tagged with the runtime, and the Session replay tab shows a runtime switcher when more than one is present. See docs/compatibility.md for the full matrix + a guide to adding runtimes, and docs/RUNTIME_FAMILY.md for the OpenClaw-family primer.
| Runtime / Agent | Status | Notes |
|---|---|---|
| OpenClaw | Native | Reference runtime, auto-detected |
| PicoClaw | Beta adapter | Flat providers.Message JSONL (~/.picoclaw/workspace/sessions). Transcripts, model, tool calls. |
| NanoClaw | Beta adapter | Per-session SQLite (data/v2-sessions). Transcripts + message counts. |
| Hermes | Beta adapter | SQLite ~/.hermes/state.db. Transcripts, model, tokens/cost. |
| Claude Code | Beta adapter | JSONL ~/.claude/projects/.../<id>.jsonl. Transcripts, model, tool calls + thinking, token usage. |
| Codex | Beta adapter | Rollout JSONL ~/.codex/sessions/.... Transcripts, model, tool calls, token usage. |
| Cursor | Beta adapter | SQLite state.vscdb. Chat/composer transcripts, model. |
| Aider | Beta adapter | .aider.chat.history.md per project. Transcripts, model, token counts. |
| Goose | Beta adapter | SQLite ~/.local/share/goose. Transcripts, model, tool calls, token totals. |
| opencode | Beta adapter | SQLite ~/.local/share/opencode. Transcripts, model, tool calls, tokens + cost. |
| Qwen Code | Beta adapter | JSONL ~/.qwen/projects/.../chats. Transcripts, model, tool calls, token usage. |
"Beta adapter" means ClawMetry ships a reader for that runtime's real on-disk format, each built + verified against a real install on a real machine (see tests/fixtures/runtimes/<rt>/). Adapters are read-only; each is honest about what its runtime actually stores (e.g. PicoClaw/NanoClaw/Cursor don't write token cost to disk). When several runtimes run on one node, the runtime switcher scopes the sessions view to one for a clean deep-dive.
ClawMetry speaks OpenTelemetry in both directions, using the GenAI semantic conventions, so your agent traces are never locked into one tool.
Export every session — LLM calls, tools, sub-agents, tokens, cost — as OTLP/HTTP GenAI spans to any collector (Datadog, Grafana, Honeycomb, or your own OTel Collector):
clawmetry --otel-export http://localhost:4318/v1/traces
# equivalently:
CLAWMETRY_OTEL_EXPORT_ENDPOINT=http://localhost:4318/v1/traces clawmetry
Auth headers and poll interval are optional env vars:
CLAWMETRY_OTEL_EXPORT_HEADERS='{"X-API-Key":"…"}' # extra HTTP headers
CLAWMETRY_OTEL_EXPORT_INTERVAL=60 # seconds (default 60)
Ingest — the built-in OTLP receiver accepts traces and metrics from anything else at /v1/traces and /v1/metrics (pip install clawmetry[otel] for protobuf ingest).
You get the zero-config, local-first ClawMetry dashboard and your data in whatever backend your team already runs — no lock-in, no second agent to install.
Most people don't need any config. ClawMetry auto-detects your workspace, logs, sessions, and crons.
If you do need to customize:
clawmetry --port 9000 # Custom port (default: 8900)
clawmetry --host 127.0.0.1 # Bind to localhost only
clawmetry --workspace ~/mybot # Custom workspace path
clawmetry --name "Alice" # Your name in Flow visualization
All options: clawmetry --help
ClawMetry shows live activity for every OpenClaw channel you have configured. Only channels that are actually set up in your openclaw.json appear in the Flow diagram — unconfigured ones are automatically hidden.
Click any channel node in the Flow to see a live chat bubble view with incoming/outgoing message counts.
| Channel | Status | Live Popup | Notes |
|---------|--------|------------|-------|
| 📱 Telegram | ✅ Full | ✅ | Messages, stats, 10s refresh |
| 💬 iMessage | ✅ Full | ✅ | Reads ~/Library/Messages/chat.db directly |
| 💚 WhatsApp | ✅ Full | ✅ | Via WhatsApp Web (Baileys) |
| 🔵 Signal | ✅ Full | ✅ | Via signal-cli |
| 🟣 Discord | ✅ Full | ✅ | Guild + channel detection |
| 🟪 Slack | ✅ Full | ✅ | Workspace + channel detection |
| 🌐 Webchat | ✅ Full | ✅ | Built-in web UI sessions |
| 📡 IRC | ✅ Full | ✅ | Terminal-style bubble UI |
| 🍏 BlueBubbles | ✅ Full | ✅ | iMessage via BlueBubbles REST API |
| 🔵 Google Chat | ✅ Full | ✅ | Via Chat API webhooks |
| 🟣 MS Teams | ✅ Full | ✅ | Via Teams bot plugin |
| 🔷 Mattermost | ✅ Full | ✅ | Self-hosted team chat |
| 🟩 Matrix | ✅ Full | ✅ | Decentralized, E2EE support |
| 🟢 LINE |