Stelladocs
Telemetry & Usage Analytics

The Observatory dashboard

stella observe opens a local, loopback-only web dashboard over your workspace telemetry — runs, spend, models, tools, files, memory, MCP traffic, and the fleet ledger. Plus /export for a portable HTML report.

stella observe opens the Observatory — a local web dashboard over the telemetry your own runs recorded:

stella observe            # serves http://127.0.0.1:7787/
stella observe --open     # …and opens your browser
stella observe --port 0   # pick any free port

Local by construction

The Observatory is built to the same no-phone-home standard as the rest of Stella — not as a policy, as a construction:

  • Loopback only. It binds 127.0.0.1 and nothing else. There is no remote mode, no auth because there is no exposure.
  • Read-only. Every database open is SQLite read-only — the dashboard can never mutate your telemetry or block a live session (the store runs WAL, so readers never block writers).
  • Zero external references. The page is a single embedded HTML file with its assets inlined — no CDN, no web fonts, no analytics. A test in the repository enforces that the served HTML contains no external URL at all.
  • Graceful on empty. A missing table or a workspace with no runs renders as empty panels, never an error.

What you can see

The nav has eight tabs, plus a window selector — 24h / 7d / 30d / all (the default). The Overview KPIs, the tokens-per-run timeline, the Executions table, and every Activity chart honor the window; the leaderboard panels labeled all-time ignore it.

TabAnswers
OverviewKPI tiles (runs, resolve rate, total spend, tokens in/out, cache hits, model time), a tokens-per-run timeline, the Models breakdown ($/resolved task per provider/model), the tool leaderboard (calls, errors, p50/max latency, bytes returned), the most-touched files, the fleet ledger (per fleet run: tasks, attempts, successes, commits) with MCP traffic, a memory/reflections/skills digest — and the Executions table: every run's kind, prompt, model, outcome, steps, tool calls, files touched, tokens, and cost. Clicking a row opens a drill-down drawer with per-step tokens and latency, every tool call, the files touched, and the post-turn self-reflection
ActivityPer-day time series over the window: cost, tokens (input vs output), runs (resolved vs other outcomes), and tool calls (calls vs errors)
Code graphThe tree-sitter code-graph index of the workspace — a searchable force-directed canvas of files (with per-file symbol counts) and their resolved import edges, plus a selection detail panel
SkillsInstalled and learned skills, with per-skill usage
MCPConfigured servers (.stella/mcp.toml) and observed per-server / per-tool traffic
Memory & rulesThe memory plane: memories on disk (.stella/memories), citation receipts (were they useful and truthful?), and promoted rules
Self-improveThe self-improvement loop, receipted from .stella: self-rating per reflection, owned shortcomings, distilled lessons, and auto-extracted learned skills
ConfigThe merged engine config (user → org → project), where every store and database lives, and the per-scope config files

Everything is served from <workspace>/.stella/store.db (and .stella/fleet.db for the fleet view) — the same SQLite files you can query directly with any SQLite client.

$/resolved — the metric that matters

The models view computes dollars per resolved task per provider/model — the honest unit price of your agent work. A cheap model that rarely resolves can cost more per outcome than an expensive one that resolves reliably; this is the number that tells you which. stella stats prints the same aggregation in the terminal (table, json, or csv).

Portable reports: /export

Inside the Command Deck, the /export slash command packages the session's telemetry into .stella/exports/session-<timestamp>.zip. <timestamp> is the archive's watermark: the timestamp of the last log entry included — the data's own clock, not the moment you typed /export. Every entry nests under a matching <timestamp>/ folder inside the archive:

  • <timestamp>/raw/<table>.json — a pretty-printed dump of every telemetry table (executions, telemetry, tool calls, files touched, MCP usage, skill usage, reflections, …)
  • <timestamp>/dashboard.html — a self-contained HTML dashboard (no external CSS or JS) with KPI insights, cost & efficiency by model, token economy, tool usage, files touched, and execution outcomes — openable offline, emailable, or committable to a PR as the receipt for what an agent run did and cost
  • <timestamp>/manifest.json — the watermark (as exported_at) and per-table row counts

The Observatory is for living workspaces — point it at your repo and watch spend and resolve rates as you work. /export is for sharing — a frozen, portable snapshot anyone can open without Stella installed.

Stella is totally free and open source, dual-licensed MIT or Apache 2.0— your choice: MIT's three-paragraph simplicity, or Apache 2.0's explicit patent grant that enterprises prefer. Use it, fork it, embed it, ship it — no account, no phone-home, no strings. What that means →

On this page