Org: Clawland-AI/Geneclaw
Module:geneclaw/dashboard/
Type: Read-only Streamlit web application
| Requirement | Command |
|---|---|
| Python ≥ 3.11 | python --version |
| Geneclaw installed | pip install -e . |
| Dashboard extras | pip install -e ".[dashboard]" |
| Events data | nanobot geneclaw evolve --dry-run (generates events.jsonl) |
| Benchmark data (optional) | nanobot geneclaw benchmark --save |
The [dashboard] extra installs Streamlit, Plotly, and Pandas.
# Install dashboard dependencies (one-time)
pip install -e ".[dashboard]"
# Launch the dashboard
nanobot geneclaw dashboardThe dashboard opens at http://localhost:8501 by default.
nanobot geneclaw dashboard --port 9090nanobot geneclaw dashboard \
--events /path/to/events.jsonl \
--benchmarks /path/to/benchmarks.jsonl- Time range selector (24 h / 7 d / 30 d / All time)
- KPI cards: Proposals generated, Apply attempted/succeeded, Success rate
- Risk distribution bar chart
- Top files touched leaderboard
- Recent 20 events table
- Grouped bar chart (hourly or daily granularity) showing event types over time
- Risk level filter (multi-select)
- Event detail table (top 100 matching events)
- Proposal selector dropdown (by proposal_id)
- Metadata display: risk level, diff lines, files touched, objective, tests to run, rollback plan
- Related events timeline for the selected proposal
- Total duration trend line chart (across benchmark runs)
- Stage breakdown grouped bar chart (avg ms per stage)
- Event count filter (multi-select)
- Raw stage data table
| File | Generated By | Contents |
|---|---|---|
geneclaw/events/events.jsonl |
nanobot geneclaw evolve, apply |
EvoEvent records |
geneclaw/benchmarks/benchmarks.jsonl |
nanobot geneclaw benchmark --save |
BenchmarkResult records |
Both files are append-only JSONL. The dashboard reads them without modification.
- Read-only: The dashboard never writes files, triggers evolve/apply, or changes configuration.
- Redaction: All string fields are run through the same secret-redaction patterns used elsewhere in Geneclaw. API keys, tokens, and passwords are masked with
***REDACTED***. - No external network: The Streamlit server runs locally only (
--server.headless true). No data is sent externally.
| Problem | Solution |
|---|---|
ModuleNotFoundError: streamlit |
Run pip install -e ".[dashboard]" |
| "No events found" on Overview | Generate events: nanobot geneclaw evolve --dry-run |
| "No benchmark data" on Benchmarks | Run nanobot geneclaw benchmark --save |
| Port already in use | Use --port <other_port> |
| Stale data | Streamlit caches data per session; click Rerun (top-right) or press R |
pytest tests/test_geneclaw_dashboard.py -vgeneclaw/dashboard/
├── __init__.py
├── app.py # Streamlit entry point
├── loader.py # Data loading, filtering, redaction
└── views/
├── __init__.py
├── overview.py # Overview page
├── timeline.py # Event Timeline page
├── audit.py # Proposal Audit page
└── benchmarks.py # Benchmarks page