Skip to main content

ClawMetry - Real-time observability dashboard for OpenClaw AI agents

Project description

๐Ÿฆž ClawMetry

PyPI Downloads PyPI Downloads/week PyPI version GitHub stars License: MIT

ClawMetry - #5 Product of the Day on Product Hunt

See your agent think. Real-time observability for OpenClaw AI agents.

One command. Zero config. Auto-detects everything.

pip install clawmetry && clawmetry

Opens at http://localhost:8900 and you're done.

Flow Visualization

What You Get

  • Flow โ€” Live animated diagram showing messages flowing through channels, brain, tools, and back
  • Overview โ€” Health checks, activity heatmap, session counts, model info
  • Usage โ€” Token and cost tracking with daily/weekly/monthly breakdowns
  • Sessions โ€” Active agent sessions with model, tokens, last activity
  • Crons โ€” Scheduled jobs with status, next run, duration
  • Logs โ€” Color-coded real-time log streaming
  • Memory โ€” Browse SOUL.md, MEMORY.md, AGENTS.md, daily notes
  • Transcripts โ€” Chat-bubble UI for reading session histories

Screenshots

๐Ÿง  Brain โ€” Live agent event stream

Brain tab

๐Ÿ“Š Overview โ€” Token usage & session summary

Overview tab

โšก Flow โ€” Real-time tool call feed

Flow tab

๐Ÿ’ฐ Tokens โ€” Cost breakdown by model & session

Tokens tab

๐Ÿงฌ Memory โ€” Workspace file browser

Memory tab

๐Ÿ” Security โ€” Posture & audit log

Security tab

Install

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

Configuration

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

Supported Channels

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 โœ… Full โœ… LINE Messaging API
โšก Nostr โœ… Full โœ… Decentralized NIP-04 DMs
๐ŸŸฃ Twitch โœ… Full โœ… Chat via IRC connection
๐Ÿ”ท Feishu/Lark โœ… Full โœ… WebSocket event subscription
๐Ÿ”ต Zalo โœ… Full โœ… Zalo Bot API

Auto-detection: ClawMetry reads your ~/.openclaw/openclaw.json and only renders the channels you've actually configured. No manual setup required.

Docker Deployment

Want to run ClawMetry in a container? No problem! ๐Ÿณ

Quick start with Docker:

# Build the image
docker build -t clawmetry .

# Run with default settings
docker run -p 8900:8900 clawmetry

# Or with your OpenClaw workspace mounted
docker run -p 8900:8900 \
  -v ~/.openclaw:/root/.openclaw \
  -v /tmp/moltbot:/tmp/moltbot \
  clawmetry

Docker Compose example:

version: '3.8'
services:
  clawmetry:
    build: .
    ports:
      - "8900:8900"
    volumes:
      - ~/.openclaw:/root/.openclaw:ro
      - /tmp/moltbot:/tmp/moltbot:ro
    restart: unless-stopped

Note: When running in Docker, make sure to mount your OpenClaw workspace and log directories so ClawMetry can auto-detect your setup.

Requirements

  • Python 3.8+
  • Flask (installed automatically via pip)
  • OpenClaw running on the same machine (or mounted volumes for Docker)
  • Linux or macOS

NemoClaw / OpenShell Support

ClawMetry automatically detects NemoClaw โ€” NVIDIA's enterprise security wrapper for OpenClaw that runs agents inside sandboxed OpenShell containers.

No extra configuration is needed in most cases. The sync daemon auto-discovers session files whether they live in ~/.openclaw/ on the host or inside an OpenShell container.

How it works

ClawMetry detects NemoClaw in two ways:

  1. Binary detection โ€” checks for the nemoclaw CLI and runs nemoclaw status to get sandbox info
  2. Container detection โ€” scans running Docker containers for openshell, nemoclaw, or ghcr.io/nvidia/ images, then reads sessions via volume mounts or docker cp

Session files synced from NemoClaw containers are tagged with runtime=nemoclaw and container_id metadata in the cloud dashboard, so you can tell them apart from standard OpenClaw sessions at a glance.

Recommended setup: sync daemon on the HOST

For the best experience, run ClawMetry's sync daemon on the host machine (not inside the sandbox). This avoids NemoClaw network policy restrictions.

# On the host (outside the sandbox)
pip install clawmetry
clawmetry connect
clawmetry sync

The sync daemon will automatically find sessions inside any running OpenShell containers.

Optional: explicit sandbox name

If auto-detection doesn't work, point ClawMetry at the right sandbox:

export NEMOCLAW_SANDBOX=my-sandbox-name
clawmetry sync

Running inside the sandbox (advanced)

If you must run the sync daemon inside the OpenShell sandbox, add this egress rule to your NemoClaw network policy so it can reach the ClawMetry ingest API:

# nemoclaw-policy.yaml
network:
  egress:
    - host: ingest.clawmetry.com
      port: 443
      protocol: https

Apply with:

nemoclaw policy apply --file nemoclaw-policy.yaml

Ports and endpoints

Endpoint Port Protocol Required
ingest.clawmetry.com 443 HTTPS Yes (sync daemon โ†’ cloud)
localhost:8900 8900 HTTP Yes (local dashboard UI)
Docker socket (/var/run/docker.sock) โ€” Unix socket For container session discovery

The sync daemon only makes outbound HTTPS calls to ingest.clawmetry.com. No inbound ports are required.


Cloud Deployment

See the Cloud Testing Guide for SSH tunnels, reverse proxy, and Docker.

Testing

This project is tested with BrowserStack.

BrowserStack

Star History

Star History Chart

License

MIT


๐Ÿฆž See your agent think
Built by @vivekchand ยท clawmetry.com ยท Part of the OpenClaw ecosystem

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

clawmetry-0.12.143.tar.gz (593.0 kB view details)

Uploaded Source

Built Distribution

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

clawmetry-0.12.143-py3-none-any.whl (617.9 kB view details)

Uploaded Python 3

File details

Details for the file clawmetry-0.12.143.tar.gz.

File metadata

  • Download URL: clawmetry-0.12.143.tar.gz
  • Upload date:
  • Size: 593.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for clawmetry-0.12.143.tar.gz
Algorithm Hash digest
SHA256 d8254e36e5f75abaa4c8d073ff93cafc8a806e01fea286771bb55cb9efe0148a
MD5 6d762f2d18b7d1addf0c929a0a3ba4b0
BLAKE2b-256 94d6137e68481a8c7f0146221a98ec003476d7297726e595d52ceeb6bbae1455

See more details on using hashes here.

File details

Details for the file clawmetry-0.12.143-py3-none-any.whl.

File metadata

  • Download URL: clawmetry-0.12.143-py3-none-any.whl
  • Upload date:
  • Size: 617.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for clawmetry-0.12.143-py3-none-any.whl
Algorithm Hash digest
SHA256 735490fe4a2508c13c6dea004a073872e12e146381676c32249e9ea82ab9e67a
MD5 bd368e46b5dd91853718a8b8f0c4d1cf
BLAKE2b-256 5d2aa9b12a4273e54d0bcc7d819c4260a69aafdae3384748a611139b75bc21f1

See more details on using hashes here.

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