Files
can1357 72000acfeb
Warm bazel disk cache / Seed darwin release bazel cache: darwin-arm64 (push) Has been cancelled
Warm bazel disk cache / Seed darwin release bazel cache: darwin-x64-baseline (push) Has been cancelled
Warm bazel disk cache / Seed bun store cache (push) Has been cancelled
CI / Resolve release metadata (push) Has been cancelled
CI / Lint, type check & web build (push) Has been cancelled
CI / Validate Rust workspace (bazel) (push) Has been cancelled
CI / Build native addons (bazel) (push) Has been cancelled
OMP Nix / Evaluate flake (push) Has been cancelled
CI / Test TS workspace fast (push) Has been cancelled
CI / Test coding-agent singleton/global-state (TS) (push) Has been cancelled
CI / Test TS native/integration packages (push) Has been cancelled
CI / Test coding-agent UI/TUI (TS) (push) Has been cancelled
CI / Test coding-agent runtime/session (TS) (push) Has been cancelled
CI / Test coding-agent native/unit (TS) (push) Has been cancelled
CI / Test CLI smoke (TS) (push) Has been cancelled
CI / Install method smoke tests (push) Has been cancelled
CI / Release validation gate (push) Has been cancelled
CI / Release binary: linux-arm64 (push) Has been cancelled
CI / Release binary: linux-musl-arm64 (push) Has been cancelled
CI / Release binary: linux-musl-x64 (push) Has been cancelled
CI / Release binary: linux-x64 (push) Has been cancelled
CI / Release binary: win32-x64 (push) Has been cancelled
CI / Release binary: darwin-arm64 (push) Has been cancelled
CI / Release binary: darwin-x64 (push) Has been cancelled
CI / Publish native leaf packages (push) Has been cancelled
CI / Publish GitHub release (push) Has been cancelled
CI / Verify published release (macOS) (push) Has been cancelled
CI / Publish to npm (push) Has been cancelled
CI / Update Homebrew tap (push) Has been cancelled
chore: bump version to 17.4.0
2026-08-20 08:13:58 +02:00
..
2026-08-20 08:13:58 +02:00
2026-08-20 08:13:58 +02:00

@oh-my-pi/omp-stats

Local observability dashboard for AI usage statistics.

Features

  • Session log parsing: Reads JSONL session logs from ~/.omp/agent/sessions/
  • SQLite aggregation: Efficient stats storage and querying using bun:sqlite
  • Web dashboard: Real-time metrics visualization with Chart.js
  • Incremental sync: Only processes new/modified log entries

Metrics Tracked

Metric Calculation
Tokens/s output_tokens / (duration / 1000)
Cache Rate cache_read / (input + cache_read) * 100
Cache Savings (uncached prompt cost - actual prompt cost) / uncached prompt cost * 100
Error Rate count(stopReason=error) / total_calls * 100
Total Cost Sum of usage.cost.total
Avg Latency Mean of duration
TTFT Mean of ttft (time to first token)

Usage

Via CLI

# Start dashboard server (default: http://localhost:3847)
omp stats

# Custom port
omp stats --port 8080

# Print summary to console
omp stats --summary

# Output as JSON (for scripting)
omp stats --json

Programmatic

import { getDashboardStats, syncAllSessions } from "@oh-my-pi/omp-stats";

// Sync session logs to database
const { processed, files } = await syncAllSessions();

// Get aggregated stats
const stats = await getDashboardStats();
console.log(stats.overall.totalCost);
console.log(stats.byModel[0].avgTokensPerSecond);

API Endpoints

Endpoint Description
GET /api/stats Overall stats with all breakdowns
GET /api/stats/models Per-model statistics
GET /api/stats/folders Per-folder/project statistics
GET /api/stats/timeseries Hourly time series data
GET /api/sync Trigger sync and return counts

Data Storage

  • Session logs: ~/.omp/agent/sessions/ (JSONL files)
  • Stats database: ~/.omp/stats.db (SQLite)

Dashboard

The web dashboard provides:

  • Overall metrics cards (requests, cost, cache rate, cache savings, error rate, duration, tokens/s)
  • Time series chart showing requests and errors over time
  • Per-model breakdown table
  • Per-folder breakdown table
  • Auto-refresh every 30 seconds

License

MIT