clawmetry 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- clawmetry-0.3.0/LICENSE +21 -0
- clawmetry-0.3.0/PKG-INFO +238 -0
- clawmetry-0.3.0/README.md +194 -0
- clawmetry-0.3.0/clawmetry.egg-info/PKG-INFO +238 -0
- clawmetry-0.3.0/clawmetry.egg-info/SOURCES.txt +10 -0
- clawmetry-0.3.0/clawmetry.egg-info/dependency_links.txt +1 -0
- clawmetry-0.3.0/clawmetry.egg-info/entry_points.txt +3 -0
- clawmetry-0.3.0/clawmetry.egg-info/requires.txt +5 -0
- clawmetry-0.3.0/clawmetry.egg-info/top_level.txt +1 -0
- clawmetry-0.3.0/dashboard.py +8475 -0
- clawmetry-0.3.0/setup.cfg +4 -0
- clawmetry-0.3.0/setup.py +48 -0
clawmetry-0.3.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Vivek Chand
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
clawmetry-0.3.0/PKG-INFO
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: clawmetry
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Real-time observability dashboard for OpenClaw AI agents — the Grafana for your personal AI
|
|
5
|
+
Home-page: https://github.com/vivekchand/openclaw-dashboard
|
|
6
|
+
Author: Vivek Chand
|
|
7
|
+
Author-email: vivek@openclaw.dev
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Bug Reports, https://github.com/vivekchand/openclaw-dashboard/issues
|
|
10
|
+
Project-URL: Source, https://github.com/vivekchand/openclaw-dashboard
|
|
11
|
+
Keywords: clawmetry openclaw moltbot dashboard observability ai agent monitoring opentelemetry
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
22
|
+
Classifier: Topic :: System :: Monitoring
|
|
23
|
+
Requires-Python: >=3.8
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: flask>=2.0
|
|
27
|
+
Provides-Extra: otel
|
|
28
|
+
Requires-Dist: opentelemetry-proto>=1.20.0; extra == "otel"
|
|
29
|
+
Requires-Dist: protobuf>=4.21.0; extra == "otel"
|
|
30
|
+
Dynamic: author
|
|
31
|
+
Dynamic: author-email
|
|
32
|
+
Dynamic: classifier
|
|
33
|
+
Dynamic: description
|
|
34
|
+
Dynamic: description-content-type
|
|
35
|
+
Dynamic: home-page
|
|
36
|
+
Dynamic: keywords
|
|
37
|
+
Dynamic: license
|
|
38
|
+
Dynamic: license-file
|
|
39
|
+
Dynamic: project-url
|
|
40
|
+
Dynamic: provides-extra
|
|
41
|
+
Dynamic: requires-dist
|
|
42
|
+
Dynamic: requires-python
|
|
43
|
+
Dynamic: summary
|
|
44
|
+
|
|
45
|
+
# 🦞 Clawmetry
|
|
46
|
+
|
|
47
|
+
[](https://www.python.org/downloads/)
|
|
48
|
+
[](https://opensource.org/licenses/MIT)
|
|
49
|
+
[](https://pypi.org/project/clawmetry/)
|
|
50
|
+
[](https://github.com/vivekchand/openclaw-dashboard/issues)
|
|
51
|
+
[](https://github.com/vivekchand/openclaw-dashboard/stargazers)
|
|
52
|
+
|
|
53
|
+
**See your agent think.** The Grafana for your personal AI agent.
|
|
54
|
+
|
|
55
|
+
Real-time observability dashboard for [OpenClaw](https://github.com/openclaw/openclaw) AI agents. One file. Zero config. Just run it.
|
|
56
|
+
|
|
57
|
+
> *Previously published as `openclaw-dashboard` — same project, better name.*
|
|
58
|
+
|
|
59
|
+

|
|
60
|
+
|
|
61
|
+
## 🎬 Demo
|
|
62
|
+
|
|
63
|
+
<video src="https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/clawmetry-landing/videos/clawmetry.webm" controls muted loop playsinline width="100%"></video>
|
|
64
|
+
|
|
65
|
+
[▶ Watch video directly](https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/clawmetry-landing/videos/clawmetry.webm)
|
|
66
|
+
|
|
67
|
+
> 🌟 **[Star this repo](https://github.com/vivekchand/openclaw-dashboard)** if you find it useful!
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## ⚡ Quick Start (30 seconds)
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
pip install clawmetry
|
|
75
|
+
clawmetry
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
🎉 Opens at **http://localhost:8900** — auto-detects your OpenClaw workspace.
|
|
79
|
+
|
|
80
|
+
### Alternative: run from source
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
curl -O https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/dashboard.py
|
|
84
|
+
pip install flask
|
|
85
|
+
python3 dashboard.py
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 📸 Screenshots
|
|
91
|
+
|
|
92
|
+
| Overview | Flow | Usage |
|
|
93
|
+
|----------|------|-------|
|
|
94
|
+
|  |  |  |
|
|
95
|
+
|
|
96
|
+
| Sessions | Logs | Memory |
|
|
97
|
+
|----------|------|--------|
|
|
98
|
+
|  |  |  |
|
|
99
|
+
|
|
100
|
+
| Crons | Transcripts |
|
|
101
|
+
|-------|-------------|
|
|
102
|
+
|  |  |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## ✨ Features
|
|
107
|
+
|
|
108
|
+
| Tab | What it shows |
|
|
109
|
+
|-----|--------------|
|
|
110
|
+
| **🌊 Flow** | **Real-time animated SVG** — data flow from You → Channels → Gateway → Brain → Tools → Infrastructure |
|
|
111
|
+
| **Overview** | Model, sessions, crons, tokens, memory, **❤️ health checks** (auto-refresh via SSE), **🔥 activity heatmap** (GitHub-style) |
|
|
112
|
+
| **📊 Usage** | **Token/cost tracking** — bar charts, daily/weekly/monthly totals, model breakdown. With OTLP: real token counts & actual cost |
|
|
113
|
+
| **Sessions** | Active agent sessions with model, channel, token usage, last activity |
|
|
114
|
+
| **Crons** | Scheduled jobs with status, schedule, last/next run, duration |
|
|
115
|
+
| **Logs** | Color-coded JSON logs with **real-time SSE streaming** |
|
|
116
|
+
| **Memory** | Clickable file browser for SOUL.md, MEMORY.md, AGENTS.md, daily notes |
|
|
117
|
+
| **📜 Transcripts** | Session transcript viewer — chat-bubble UI with color-coded roles |
|
|
118
|
+
|
|
119
|
+
### 🌊 Flow Visualization
|
|
120
|
+
|
|
121
|
+
The star feature — a live animated architecture diagram that lights up as your agent processes messages:
|
|
122
|
+
|
|
123
|
+
- 🟣 **Purple** — your message entering through a channel
|
|
124
|
+
- 🔵 **Blue** — request flowing to the brain
|
|
125
|
+
- 🟡 **Yellow** — tool calls (exec, browser, search, cron, tts, memory)
|
|
126
|
+
- 🟢 **Green** — response flowing back
|
|
127
|
+
- 🔴 **Red** — errors
|
|
128
|
+
- 🔵 **Cyan** — infrastructure activity
|
|
129
|
+
|
|
130
|
+
### 📡 Built-in OpenTelemetry Collector
|
|
131
|
+
|
|
132
|
+
No Grafana or Prometheus needed. Point OpenClaw at the dashboard:
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
diagnostics:
|
|
136
|
+
otel:
|
|
137
|
+
endpoint: http://localhost:8900
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Install OTLP support: `pip install clawmetry[otel]`
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 🤔 Why Clawmetry?
|
|
145
|
+
|
|
146
|
+
| | Clawmetry | Langfuse | AgentOps |
|
|
147
|
+
|---|---|---|---|
|
|
148
|
+
| **Install** | `pip install clawmetry` | Docker + Postgres | SDK + cloud account |
|
|
149
|
+
| **Config** | Zero. Auto-detects everything. | Database URLs, API keys | API keys, SDK init |
|
|
150
|
+
| **Focus** | Personal AI agent | Enterprise LLM apps | Enterprise agent monitoring |
|
|
151
|
+
| **Memory browser** | ✅ SOUL.md, MEMORY.md, daily notes | ❌ | ❌ |
|
|
152
|
+
| **Single file** | ✅ One Python file | ❌ Multi-service | ❌ Cloud service |
|
|
153
|
+
| **Built-in OTel** | ✅ OTLP/HTTP receiver | ❌ | ❌ |
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## ⚙️ Configuration
|
|
158
|
+
|
|
159
|
+
### CLI
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
clawmetry --port 9000 # Custom port (default: 8900)
|
|
163
|
+
clawmetry --host 127.0.0.1 # Bind to localhost only
|
|
164
|
+
clawmetry --workspace ~/mybot # Custom workspace path
|
|
165
|
+
clawmetry --log-dir /var/log # Custom log directory
|
|
166
|
+
clawmetry --sessions-dir ~/data # Custom sessions directory
|
|
167
|
+
clawmetry --metrics-file ~/m.json # Custom metrics persistence path
|
|
168
|
+
clawmetry --name "Alice" # Your name in Flow visualization
|
|
169
|
+
clawmetry --no-debug # Disable auto-reload
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Environment Variables
|
|
173
|
+
|
|
174
|
+
| Variable | Description | Default |
|
|
175
|
+
|----------|-------------|---------|
|
|
176
|
+
| `OPENCLAW_HOME` | Agent workspace directory | Auto-detected |
|
|
177
|
+
| `OPENCLAW_WORKSPACE` | Alternative to OPENCLAW_HOME | Auto-detected |
|
|
178
|
+
| `OPENCLAW_SESSIONS_DIR` | Sessions directory (.jsonl transcripts) | Auto-detected |
|
|
179
|
+
| `OPENCLAW_LOG_DIR` | Log directory | `/tmp/moltbot` |
|
|
180
|
+
| `OPENCLAW_METRICS_FILE` | Metrics persistence file path | `{workspace}/.openclaw-dashboard-metrics.json` |
|
|
181
|
+
| `OPENCLAW_USER` | Your name in Flow tab | `You` |
|
|
182
|
+
| `OPENCLAW_SSE_MAX_SECONDS` | Max duration per SSE stream | `300` |
|
|
183
|
+
|
|
184
|
+
### Auto-Detection
|
|
185
|
+
|
|
186
|
+
No config needed — the dashboard searches for your workspace, logs, sessions, and crons automatically.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 📦 Installation
|
|
191
|
+
|
|
192
|
+
### pip (recommended)
|
|
193
|
+
```bash
|
|
194
|
+
pip install clawmetry
|
|
195
|
+
clawmetry
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### From source
|
|
199
|
+
```bash
|
|
200
|
+
git clone https://github.com/vivekchand/openclaw-dashboard.git
|
|
201
|
+
cd openclaw-dashboard
|
|
202
|
+
pip install -r requirements.txt
|
|
203
|
+
python3 dashboard.py
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### One-liner
|
|
207
|
+
```bash
|
|
208
|
+
curl -sSL https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/install.sh | bash
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 🔧 Requirements
|
|
214
|
+
|
|
215
|
+
- **Python 3.8+**
|
|
216
|
+
- **Flask** (only required dependency)
|
|
217
|
+
- **opentelemetry-proto + protobuf** (optional — `pip install clawmetry[otel]`)
|
|
218
|
+
- **OpenClaw/Moltbot** running on the same machine
|
|
219
|
+
- Linux/macOS
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## ☁️ Cloud Deployment
|
|
224
|
+
|
|
225
|
+
See the **[Cloud Testing Guide](docs/CLOUD_TESTING.md)** for SSH tunnels, reverse proxy, Docker, and OTLP-only mode.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 📄 License
|
|
230
|
+
|
|
231
|
+
MIT
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
<p align="center">
|
|
236
|
+
<strong>🦞 See your agent think</strong><br>
|
|
237
|
+
<sub>Built by <a href="https://linkedin.com/in/vivekchand46">Vivek Chand</a> as part of the <a href="https://github.com/openclaw/openclaw">OpenClaw</a> ecosystem</sub>
|
|
238
|
+
</p>
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# 🦞 Clawmetry
|
|
2
|
+
|
|
3
|
+
[](https://www.python.org/downloads/)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](https://pypi.org/project/clawmetry/)
|
|
6
|
+
[](https://github.com/vivekchand/openclaw-dashboard/issues)
|
|
7
|
+
[](https://github.com/vivekchand/openclaw-dashboard/stargazers)
|
|
8
|
+
|
|
9
|
+
**See your agent think.** The Grafana for your personal AI agent.
|
|
10
|
+
|
|
11
|
+
Real-time observability dashboard for [OpenClaw](https://github.com/openclaw/openclaw) AI agents. One file. Zero config. Just run it.
|
|
12
|
+
|
|
13
|
+
> *Previously published as `openclaw-dashboard` — same project, better name.*
|
|
14
|
+
|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
## 🎬 Demo
|
|
18
|
+
|
|
19
|
+
<video src="https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/clawmetry-landing/videos/clawmetry.webm" controls muted loop playsinline width="100%"></video>
|
|
20
|
+
|
|
21
|
+
[▶ Watch video directly](https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/clawmetry-landing/videos/clawmetry.webm)
|
|
22
|
+
|
|
23
|
+
> 🌟 **[Star this repo](https://github.com/vivekchand/openclaw-dashboard)** if you find it useful!
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## ⚡ Quick Start (30 seconds)
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pip install clawmetry
|
|
31
|
+
clawmetry
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
🎉 Opens at **http://localhost:8900** — auto-detects your OpenClaw workspace.
|
|
35
|
+
|
|
36
|
+
### Alternative: run from source
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
curl -O https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/dashboard.py
|
|
40
|
+
pip install flask
|
|
41
|
+
python3 dashboard.py
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 📸 Screenshots
|
|
47
|
+
|
|
48
|
+
| Overview | Flow | Usage |
|
|
49
|
+
|----------|------|-------|
|
|
50
|
+
|  |  |  |
|
|
51
|
+
|
|
52
|
+
| Sessions | Logs | Memory |
|
|
53
|
+
|----------|------|--------|
|
|
54
|
+
|  |  |  |
|
|
55
|
+
|
|
56
|
+
| Crons | Transcripts |
|
|
57
|
+
|-------|-------------|
|
|
58
|
+
|  |  |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## ✨ Features
|
|
63
|
+
|
|
64
|
+
| Tab | What it shows |
|
|
65
|
+
|-----|--------------|
|
|
66
|
+
| **🌊 Flow** | **Real-time animated SVG** — data flow from You → Channels → Gateway → Brain → Tools → Infrastructure |
|
|
67
|
+
| **Overview** | Model, sessions, crons, tokens, memory, **❤️ health checks** (auto-refresh via SSE), **🔥 activity heatmap** (GitHub-style) |
|
|
68
|
+
| **📊 Usage** | **Token/cost tracking** — bar charts, daily/weekly/monthly totals, model breakdown. With OTLP: real token counts & actual cost |
|
|
69
|
+
| **Sessions** | Active agent sessions with model, channel, token usage, last activity |
|
|
70
|
+
| **Crons** | Scheduled jobs with status, schedule, last/next run, duration |
|
|
71
|
+
| **Logs** | Color-coded JSON logs with **real-time SSE streaming** |
|
|
72
|
+
| **Memory** | Clickable file browser for SOUL.md, MEMORY.md, AGENTS.md, daily notes |
|
|
73
|
+
| **📜 Transcripts** | Session transcript viewer — chat-bubble UI with color-coded roles |
|
|
74
|
+
|
|
75
|
+
### 🌊 Flow Visualization
|
|
76
|
+
|
|
77
|
+
The star feature — a live animated architecture diagram that lights up as your agent processes messages:
|
|
78
|
+
|
|
79
|
+
- 🟣 **Purple** — your message entering through a channel
|
|
80
|
+
- 🔵 **Blue** — request flowing to the brain
|
|
81
|
+
- 🟡 **Yellow** — tool calls (exec, browser, search, cron, tts, memory)
|
|
82
|
+
- 🟢 **Green** — response flowing back
|
|
83
|
+
- 🔴 **Red** — errors
|
|
84
|
+
- 🔵 **Cyan** — infrastructure activity
|
|
85
|
+
|
|
86
|
+
### 📡 Built-in OpenTelemetry Collector
|
|
87
|
+
|
|
88
|
+
No Grafana or Prometheus needed. Point OpenClaw at the dashboard:
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
diagnostics:
|
|
92
|
+
otel:
|
|
93
|
+
endpoint: http://localhost:8900
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Install OTLP support: `pip install clawmetry[otel]`
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 🤔 Why Clawmetry?
|
|
101
|
+
|
|
102
|
+
| | Clawmetry | Langfuse | AgentOps |
|
|
103
|
+
|---|---|---|---|
|
|
104
|
+
| **Install** | `pip install clawmetry` | Docker + Postgres | SDK + cloud account |
|
|
105
|
+
| **Config** | Zero. Auto-detects everything. | Database URLs, API keys | API keys, SDK init |
|
|
106
|
+
| **Focus** | Personal AI agent | Enterprise LLM apps | Enterprise agent monitoring |
|
|
107
|
+
| **Memory browser** | ✅ SOUL.md, MEMORY.md, daily notes | ❌ | ❌ |
|
|
108
|
+
| **Single file** | ✅ One Python file | ❌ Multi-service | ❌ Cloud service |
|
|
109
|
+
| **Built-in OTel** | ✅ OTLP/HTTP receiver | ❌ | ❌ |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## ⚙️ Configuration
|
|
114
|
+
|
|
115
|
+
### CLI
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
clawmetry --port 9000 # Custom port (default: 8900)
|
|
119
|
+
clawmetry --host 127.0.0.1 # Bind to localhost only
|
|
120
|
+
clawmetry --workspace ~/mybot # Custom workspace path
|
|
121
|
+
clawmetry --log-dir /var/log # Custom log directory
|
|
122
|
+
clawmetry --sessions-dir ~/data # Custom sessions directory
|
|
123
|
+
clawmetry --metrics-file ~/m.json # Custom metrics persistence path
|
|
124
|
+
clawmetry --name "Alice" # Your name in Flow visualization
|
|
125
|
+
clawmetry --no-debug # Disable auto-reload
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Environment Variables
|
|
129
|
+
|
|
130
|
+
| Variable | Description | Default |
|
|
131
|
+
|----------|-------------|---------|
|
|
132
|
+
| `OPENCLAW_HOME` | Agent workspace directory | Auto-detected |
|
|
133
|
+
| `OPENCLAW_WORKSPACE` | Alternative to OPENCLAW_HOME | Auto-detected |
|
|
134
|
+
| `OPENCLAW_SESSIONS_DIR` | Sessions directory (.jsonl transcripts) | Auto-detected |
|
|
135
|
+
| `OPENCLAW_LOG_DIR` | Log directory | `/tmp/moltbot` |
|
|
136
|
+
| `OPENCLAW_METRICS_FILE` | Metrics persistence file path | `{workspace}/.openclaw-dashboard-metrics.json` |
|
|
137
|
+
| `OPENCLAW_USER` | Your name in Flow tab | `You` |
|
|
138
|
+
| `OPENCLAW_SSE_MAX_SECONDS` | Max duration per SSE stream | `300` |
|
|
139
|
+
|
|
140
|
+
### Auto-Detection
|
|
141
|
+
|
|
142
|
+
No config needed — the dashboard searches for your workspace, logs, sessions, and crons automatically.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 📦 Installation
|
|
147
|
+
|
|
148
|
+
### pip (recommended)
|
|
149
|
+
```bash
|
|
150
|
+
pip install clawmetry
|
|
151
|
+
clawmetry
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### From source
|
|
155
|
+
```bash
|
|
156
|
+
git clone https://github.com/vivekchand/openclaw-dashboard.git
|
|
157
|
+
cd openclaw-dashboard
|
|
158
|
+
pip install -r requirements.txt
|
|
159
|
+
python3 dashboard.py
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### One-liner
|
|
163
|
+
```bash
|
|
164
|
+
curl -sSL https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/install.sh | bash
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 🔧 Requirements
|
|
170
|
+
|
|
171
|
+
- **Python 3.8+**
|
|
172
|
+
- **Flask** (only required dependency)
|
|
173
|
+
- **opentelemetry-proto + protobuf** (optional — `pip install clawmetry[otel]`)
|
|
174
|
+
- **OpenClaw/Moltbot** running on the same machine
|
|
175
|
+
- Linux/macOS
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## ☁️ Cloud Deployment
|
|
180
|
+
|
|
181
|
+
See the **[Cloud Testing Guide](docs/CLOUD_TESTING.md)** for SSH tunnels, reverse proxy, Docker, and OTLP-only mode.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 📄 License
|
|
186
|
+
|
|
187
|
+
MIT
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
<p align="center">
|
|
192
|
+
<strong>🦞 See your agent think</strong><br>
|
|
193
|
+
<sub>Built by <a href="https://linkedin.com/in/vivekchand46">Vivek Chand</a> as part of the <a href="https://github.com/openclaw/openclaw">OpenClaw</a> ecosystem</sub>
|
|
194
|
+
</p>
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: clawmetry
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Real-time observability dashboard for OpenClaw AI agents — the Grafana for your personal AI
|
|
5
|
+
Home-page: https://github.com/vivekchand/openclaw-dashboard
|
|
6
|
+
Author: Vivek Chand
|
|
7
|
+
Author-email: vivek@openclaw.dev
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Bug Reports, https://github.com/vivekchand/openclaw-dashboard/issues
|
|
10
|
+
Project-URL: Source, https://github.com/vivekchand/openclaw-dashboard
|
|
11
|
+
Keywords: clawmetry openclaw moltbot dashboard observability ai agent monitoring opentelemetry
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
22
|
+
Classifier: Topic :: System :: Monitoring
|
|
23
|
+
Requires-Python: >=3.8
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: flask>=2.0
|
|
27
|
+
Provides-Extra: otel
|
|
28
|
+
Requires-Dist: opentelemetry-proto>=1.20.0; extra == "otel"
|
|
29
|
+
Requires-Dist: protobuf>=4.21.0; extra == "otel"
|
|
30
|
+
Dynamic: author
|
|
31
|
+
Dynamic: author-email
|
|
32
|
+
Dynamic: classifier
|
|
33
|
+
Dynamic: description
|
|
34
|
+
Dynamic: description-content-type
|
|
35
|
+
Dynamic: home-page
|
|
36
|
+
Dynamic: keywords
|
|
37
|
+
Dynamic: license
|
|
38
|
+
Dynamic: license-file
|
|
39
|
+
Dynamic: project-url
|
|
40
|
+
Dynamic: provides-extra
|
|
41
|
+
Dynamic: requires-dist
|
|
42
|
+
Dynamic: requires-python
|
|
43
|
+
Dynamic: summary
|
|
44
|
+
|
|
45
|
+
# 🦞 Clawmetry
|
|
46
|
+
|
|
47
|
+
[](https://www.python.org/downloads/)
|
|
48
|
+
[](https://opensource.org/licenses/MIT)
|
|
49
|
+
[](https://pypi.org/project/clawmetry/)
|
|
50
|
+
[](https://github.com/vivekchand/openclaw-dashboard/issues)
|
|
51
|
+
[](https://github.com/vivekchand/openclaw-dashboard/stargazers)
|
|
52
|
+
|
|
53
|
+
**See your agent think.** The Grafana for your personal AI agent.
|
|
54
|
+
|
|
55
|
+
Real-time observability dashboard for [OpenClaw](https://github.com/openclaw/openclaw) AI agents. One file. Zero config. Just run it.
|
|
56
|
+
|
|
57
|
+
> *Previously published as `openclaw-dashboard` — same project, better name.*
|
|
58
|
+
|
|
59
|
+

|
|
60
|
+
|
|
61
|
+
## 🎬 Demo
|
|
62
|
+
|
|
63
|
+
<video src="https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/clawmetry-landing/videos/clawmetry.webm" controls muted loop playsinline width="100%"></video>
|
|
64
|
+
|
|
65
|
+
[▶ Watch video directly](https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/clawmetry-landing/videos/clawmetry.webm)
|
|
66
|
+
|
|
67
|
+
> 🌟 **[Star this repo](https://github.com/vivekchand/openclaw-dashboard)** if you find it useful!
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## ⚡ Quick Start (30 seconds)
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
pip install clawmetry
|
|
75
|
+
clawmetry
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
🎉 Opens at **http://localhost:8900** — auto-detects your OpenClaw workspace.
|
|
79
|
+
|
|
80
|
+
### Alternative: run from source
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
curl -O https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/dashboard.py
|
|
84
|
+
pip install flask
|
|
85
|
+
python3 dashboard.py
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 📸 Screenshots
|
|
91
|
+
|
|
92
|
+
| Overview | Flow | Usage |
|
|
93
|
+
|----------|------|-------|
|
|
94
|
+
|  |  |  |
|
|
95
|
+
|
|
96
|
+
| Sessions | Logs | Memory |
|
|
97
|
+
|----------|------|--------|
|
|
98
|
+
|  |  |  |
|
|
99
|
+
|
|
100
|
+
| Crons | Transcripts |
|
|
101
|
+
|-------|-------------|
|
|
102
|
+
|  |  |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## ✨ Features
|
|
107
|
+
|
|
108
|
+
| Tab | What it shows |
|
|
109
|
+
|-----|--------------|
|
|
110
|
+
| **🌊 Flow** | **Real-time animated SVG** — data flow from You → Channels → Gateway → Brain → Tools → Infrastructure |
|
|
111
|
+
| **Overview** | Model, sessions, crons, tokens, memory, **❤️ health checks** (auto-refresh via SSE), **🔥 activity heatmap** (GitHub-style) |
|
|
112
|
+
| **📊 Usage** | **Token/cost tracking** — bar charts, daily/weekly/monthly totals, model breakdown. With OTLP: real token counts & actual cost |
|
|
113
|
+
| **Sessions** | Active agent sessions with model, channel, token usage, last activity |
|
|
114
|
+
| **Crons** | Scheduled jobs with status, schedule, last/next run, duration |
|
|
115
|
+
| **Logs** | Color-coded JSON logs with **real-time SSE streaming** |
|
|
116
|
+
| **Memory** | Clickable file browser for SOUL.md, MEMORY.md, AGENTS.md, daily notes |
|
|
117
|
+
| **📜 Transcripts** | Session transcript viewer — chat-bubble UI with color-coded roles |
|
|
118
|
+
|
|
119
|
+
### 🌊 Flow Visualization
|
|
120
|
+
|
|
121
|
+
The star feature — a live animated architecture diagram that lights up as your agent processes messages:
|
|
122
|
+
|
|
123
|
+
- 🟣 **Purple** — your message entering through a channel
|
|
124
|
+
- 🔵 **Blue** — request flowing to the brain
|
|
125
|
+
- 🟡 **Yellow** — tool calls (exec, browser, search, cron, tts, memory)
|
|
126
|
+
- 🟢 **Green** — response flowing back
|
|
127
|
+
- 🔴 **Red** — errors
|
|
128
|
+
- 🔵 **Cyan** — infrastructure activity
|
|
129
|
+
|
|
130
|
+
### 📡 Built-in OpenTelemetry Collector
|
|
131
|
+
|
|
132
|
+
No Grafana or Prometheus needed. Point OpenClaw at the dashboard:
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
diagnostics:
|
|
136
|
+
otel:
|
|
137
|
+
endpoint: http://localhost:8900
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Install OTLP support: `pip install clawmetry[otel]`
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 🤔 Why Clawmetry?
|
|
145
|
+
|
|
146
|
+
| | Clawmetry | Langfuse | AgentOps |
|
|
147
|
+
|---|---|---|---|
|
|
148
|
+
| **Install** | `pip install clawmetry` | Docker + Postgres | SDK + cloud account |
|
|
149
|
+
| **Config** | Zero. Auto-detects everything. | Database URLs, API keys | API keys, SDK init |
|
|
150
|
+
| **Focus** | Personal AI agent | Enterprise LLM apps | Enterprise agent monitoring |
|
|
151
|
+
| **Memory browser** | ✅ SOUL.md, MEMORY.md, daily notes | ❌ | ❌ |
|
|
152
|
+
| **Single file** | ✅ One Python file | ❌ Multi-service | ❌ Cloud service |
|
|
153
|
+
| **Built-in OTel** | ✅ OTLP/HTTP receiver | ❌ | ❌ |
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## ⚙️ Configuration
|
|
158
|
+
|
|
159
|
+
### CLI
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
clawmetry --port 9000 # Custom port (default: 8900)
|
|
163
|
+
clawmetry --host 127.0.0.1 # Bind to localhost only
|
|
164
|
+
clawmetry --workspace ~/mybot # Custom workspace path
|
|
165
|
+
clawmetry --log-dir /var/log # Custom log directory
|
|
166
|
+
clawmetry --sessions-dir ~/data # Custom sessions directory
|
|
167
|
+
clawmetry --metrics-file ~/m.json # Custom metrics persistence path
|
|
168
|
+
clawmetry --name "Alice" # Your name in Flow visualization
|
|
169
|
+
clawmetry --no-debug # Disable auto-reload
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Environment Variables
|
|
173
|
+
|
|
174
|
+
| Variable | Description | Default |
|
|
175
|
+
|----------|-------------|---------|
|
|
176
|
+
| `OPENCLAW_HOME` | Agent workspace directory | Auto-detected |
|
|
177
|
+
| `OPENCLAW_WORKSPACE` | Alternative to OPENCLAW_HOME | Auto-detected |
|
|
178
|
+
| `OPENCLAW_SESSIONS_DIR` | Sessions directory (.jsonl transcripts) | Auto-detected |
|
|
179
|
+
| `OPENCLAW_LOG_DIR` | Log directory | `/tmp/moltbot` |
|
|
180
|
+
| `OPENCLAW_METRICS_FILE` | Metrics persistence file path | `{workspace}/.openclaw-dashboard-metrics.json` |
|
|
181
|
+
| `OPENCLAW_USER` | Your name in Flow tab | `You` |
|
|
182
|
+
| `OPENCLAW_SSE_MAX_SECONDS` | Max duration per SSE stream | `300` |
|
|
183
|
+
|
|
184
|
+
### Auto-Detection
|
|
185
|
+
|
|
186
|
+
No config needed — the dashboard searches for your workspace, logs, sessions, and crons automatically.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 📦 Installation
|
|
191
|
+
|
|
192
|
+
### pip (recommended)
|
|
193
|
+
```bash
|
|
194
|
+
pip install clawmetry
|
|
195
|
+
clawmetry
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### From source
|
|
199
|
+
```bash
|
|
200
|
+
git clone https://github.com/vivekchand/openclaw-dashboard.git
|
|
201
|
+
cd openclaw-dashboard
|
|
202
|
+
pip install -r requirements.txt
|
|
203
|
+
python3 dashboard.py
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### One-liner
|
|
207
|
+
```bash
|
|
208
|
+
curl -sSL https://raw.githubusercontent.com/vivekchand/openclaw-dashboard/main/install.sh | bash
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 🔧 Requirements
|
|
214
|
+
|
|
215
|
+
- **Python 3.8+**
|
|
216
|
+
- **Flask** (only required dependency)
|
|
217
|
+
- **opentelemetry-proto + protobuf** (optional — `pip install clawmetry[otel]`)
|
|
218
|
+
- **OpenClaw/Moltbot** running on the same machine
|
|
219
|
+
- Linux/macOS
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## ☁️ Cloud Deployment
|
|
224
|
+
|
|
225
|
+
See the **[Cloud Testing Guide](docs/CLOUD_TESTING.md)** for SSH tunnels, reverse proxy, Docker, and OTLP-only mode.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 📄 License
|
|
230
|
+
|
|
231
|
+
MIT
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
<p align="center">
|
|
236
|
+
<strong>🦞 See your agent think</strong><br>
|
|
237
|
+
<sub>Built by <a href="https://linkedin.com/in/vivekchand46">Vivek Chand</a> as part of the <a href="https://github.com/openclaw/openclaw">OpenClaw</a> ecosystem</sub>
|
|
238
|
+
</p>
|