Real-time observability dashboard for OpenClaw AI agents
Project description
๐ฆ OpenClaw Dashboard
See your agent think. The Grafana for your personal AI agent.
Real-time observability dashboard for OpenClaw/Moltbot AI agents. One file. Zero config. Just run it.
โก Quick Start
pip install openclaw-dashboard
openclaw-dashboard
Or run directly:
pip install flask
python3 dashboard.py
Opens at http://localhost:8900 โ auto-detects your OpenClaw workspace.
โจ Features
| Tab | What it shows |
|---|---|
| Overview | Model, sessions, crons, tokens, memory, โค๏ธ health checks (auto-refresh via SSE), ๐ฅ activity heatmap (GitHub-style), recent logs |
| ๐ Usage | Token/cost tracking โ bar chart of tokens per day (14 days), today/week/month totals, cost breakdown. With OTLP: real token counts, actual cost, avg run duration, messages processed, model breakdown |
| Sessions | All active agent sessions with model, channel, token usage, last activity |
| Crons | Scheduled jobs with status, schedule, last run, next run, duration |
| Logs | Parsed JSON logs with color-coded levels, configurable line count, real-time SSE streaming |
| Memory | Clickable file browser for SOUL.md, MEMORY.md, AGENTS.md, daily memory files |
| ๐ Transcripts | Session transcript viewer โ browse .jsonl files, click to see chat-bubble conversation view with color-coded roles, expand/collapse |
| Flow | Real-time animated SVG showing data flow: You โ Channels โ Gateway โ Brain โ Tools โ Infrastructure |
Flow Visualization
The Flow tab is the star โ a live animated architecture diagram that lights up in real-time as your agent processes messages:
- ๐ฃ Purple particles โ your message entering through a channel
- ๐ต Blue particles โ request flowing to the brain
- ๐ก Yellow particles โ tool calls (exec, browser, search, cron, tts, memory)
- ๐ข Green particles โ response flowing back to you
- ๐ด Red flash โ errors
- ๐ต Cyan pulses โ infrastructure layer activity (network, storage, runtime)
New in v0.2: OTLP Receiver + Full Observability
- ๐ก OTLP Receiver โ Dashboard becomes a lightweight OTel collector. Point OpenClaw at it, get real metrics. No Grafana/Prometheus needed.
- ๐ฅ Activity Heatmap โ GitHub-style 7ร24 grid showing when your agent is busiest. Pure CSS, no libraries.
- โค๏ธ Health Checks โ Gateway, disk, memory, uptime, OTLP status at a glance. Auto-refreshes every 30s via SSE.
- ๐ Real Token/Cost Tracking โ With OTLP: real token counts, actual cost, model breakdown, avg run duration.
- ๐ Transcript Viewer โ Read your agent's conversations in a beautiful chat-bubble UI. Color-coded roles, expand/collapse for long messages.
๐ค What Makes This Different?
| OpenClaw Dashboard | Langfuse | AgentOps | |
|---|---|---|---|
| Install | pip install openclaw-dashboard |
Docker + Postgres | SDK + cloud account |
| Config | Zero. Auto-detects everything. | Database URLs, API keys | API keys, SDK init |
| Focus | Personal AI agent | Enterprise LLM apps | Enterprise agent monitoring |
| Memory-first | โ Browse SOUL.md, MEMORY.md, daily notes | โ | โ |
| Single file | โ One Python file, one dependency | โ Multi-service | โ Cloud service |
| Transcripts | โ Chat-bubble viewer built-in | โ (needs SDK) | โ (needs SDK) |
| Cost tracking | โ Zero config (OTLP or log parsing) | โ (needs SDK) | โ (needs SDK) |
| Built-in OTel collector | โ OTLP/HTTP receiver | โ | โ |
TL;DR: Langfuse and AgentOps are great for teams building LLM products. OpenClaw Dashboard is for the person running a personal AI agent on their own machine โ zero instrumentation, zero config, memory-first. It's the Grafana for your personal AI agent.
๐ก Real-time Metrics (OpenTelemetry)
The dashboard can act as a lightweight OpenTelemetry collector โ no need for Grafana, Prometheus, or a separate OTel Collector. Just point OpenClaw at the dashboard.
Setup
1. Install OTLP support:
pip install openclaw-dashboard[otel]
2. Configure OpenClaw โ add one line to your config:
diagnostics:
otel:
endpoint: http://localhost:8900
That's it! The dashboard now receives real-time metrics directly from OpenClaw.
What you get
| Metric | Source | What it shows |
|---|---|---|
| Token counts per day | openclaw.tokens |
Real input/output/total token usage (bar chart) |
| Cost per day | openclaw.cost.usd |
Actual cost from your provider |
| Avg run duration | openclaw.run.duration_ms |
How long model completions take |
| Messages processed | openclaw.message.processed |
Message throughput |
| Model breakdown | attributes | Which models are being used and how much |
| OTLP Connected indicator | health check | Green when data is flowing |
OTLP Endpoints
POST /v1/metricsโ receives OTLP/HTTP protobuf metric dataPOST /v1/tracesโ receives OTLP/HTTP protobuf trace data
Without OTLP
Everything still works! The dashboard falls back to parsing session JSONL files for token estimates. OTLP just gives you real numbers instead of estimates.
Persistence
Metrics are stored in-memory (capped at ~10K entries per category, 14-day retention) and auto-persisted to {workspace}/.openclaw-dashboard-metrics.json every 60 seconds. Override the path with --metrics-file or OPENCLAW_METRICS_FILE.
โ๏ธ Configuration
CLI Arguments
openclaw-dashboard --port 9000 # Custom port (default: 8900)
openclaw-dashboard --host 127.0.0.1 # Bind to localhost only
openclaw-dashboard --workspace ~/mybot # Custom workspace path
openclaw-dashboard --log-dir /var/log # Custom log directory
openclaw-dashboard --sessions-dir ~/data # Custom sessions directory
openclaw-dashboard --metrics-file ~/m.json # Custom metrics persistence path
openclaw-dashboard --name "Alice" # Your name in Flow visualization
Environment Variables
| Variable | Description | Default |
|---|---|---|
OPENCLAW_HOME |
Agent workspace directory | Auto-detected |
OPENCLAW_WORKSPACE |
Alternative to OPENCLAW_HOME | Auto-detected |
OPENCLAW_SESSIONS_DIR |
Sessions directory (.jsonl transcripts) | Auto-detected |
OPENCLAW_LOG_DIR |
Log directory | /tmp/moltbot |
OPENCLAW_METRICS_FILE |
Metrics persistence file path | {workspace}/.openclaw-dashboard-metrics.json |
OPENCLAW_USER |
Your name in Flow tab | You |
Auto-Detection
If no paths are configured, the dashboard automatically searches for:
- Workspace: Checks
~/.clawdbot/agents/main/config.jsonโ~/.clawdbot/workspaceโ~/clawdโ~/openclawโ current directory. Looks forSOUL.md,AGENTS.md,MEMORY.md, ormemory/directory. - Logs: Checks
/tmp/moltbotโ/tmp/openclawโ~/.clawdbot/logs - Sessions: Reads from
~/.clawdbot/agents/main/sessions/ - Crons: Reads from
~/.clawdbot/cron/jobs.json
๐๏ธ How It Works
The dashboard is a single-file Flask app that reads directly from your OpenClaw/Moltbot data directories:
Your Agent (Moltbot) OpenClaw Dashboard
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Writes logs to โโโโโโโโโโโถโ Reads & parses โ
โ /tmp/moltbot/ โ โ JSON log lines โ
โ โ โ โ
โ Stores sessions โโโโโโโโโโโถโ Lists sessions โ
โ in ~/.clawdbot/ โ โ with metadata โ
โ โ โ โ
โ Saves crons to โโโโโโโโโโโถโ Shows schedules โ
โ cron/jobs.json โ โ and status โ
โ โ โ โ
โ Agent workspace โโโโโโโโโโโถโ Browses memory โ
โ SOUL.md, etc. โ โ files inline โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
Real-time streaming uses tail -f piped through Server-Sent Events (SSE) โ no WebSockets, no dependencies, just works.
๐ฆ Installation Options
pip (recommended)
pip install openclaw-dashboard
openclaw-dashboard
From source
git clone https://github.com/vivekchand/openclaw-dashboard.git
cd openclaw-dashboard
pip install -r requirements.txt
python3 dashboard.py
One-liner
curl -sSL https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/install.sh | bash
๐ง Requirements
- Python 3.8+
- Flask (only required dependency)
- opentelemetry-proto + protobuf (optional, for OTLP receiver โ
pip install openclaw-dashboard[otel]) - OpenClaw/Moltbot running on the same machine (reads its logs and state files)
- Linux/macOS (uses
tail,df,free,/proc/loadavg)
๐ License
MIT โ do whatever you want with it.
๐ Credits
- Built by Vivek Chand as part of the OpenClaw ecosystem
- Powered by OpenClaw and Moltbot
- The Flow visualization was inspired by watching an AI agent actually think
๐ฆ See your agent think
Star this repo if you find it useful!
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
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 openclaw_dashboard-0.2.2.tar.gz.
File metadata
- Download URL: openclaw_dashboard-0.2.2.tar.gz
- Upload date:
- Size: 37.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebe1e286c2c26eb54c30b1158af4b0d75d04fa921fa9b09974a47ea94e39acfc
|
|
| MD5 |
b0abcaa029e03ff51fa9caa8dadaf0c0
|
|
| BLAKE2b-256 |
3872713d2d6f7600fd51ae931fdf0ac229a01870af4fa190ff6b75f08831a8aa
|
File details
Details for the file openclaw_dashboard-0.2.2-py3-none-any.whl.
File metadata
- Download URL: openclaw_dashboard-0.2.2-py3-none-any.whl
- Upload date:
- Size: 34.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
467a8ae76a968f36b835275b96f508c67c9e9d2ada8fab3b0a999fbcfe854ece
|
|
| MD5 |
a12e3b06f8ce46f2557e1052c321d35e
|
|
| BLAKE2b-256 |
5a87a791082a57e27a8e7993aa0b9d4186b2e5b5ac0738dc283735f4ace387c8
|