Developer Tools & CLI Active Development v2.0.0 2026 AGPL-3.0-only

AgentMeter

Local-first analytics and cross-tool comparison for AI coding agents

Go CLILocal-FirstZero TelemetrySchema v3AGPL-3.0
AgentMeter editorial woodblock artwork
Linux & macOS
go install github.com/jadmadi/agentmeter/cmd/agentmeter@latest
Windows (PowerShell)
go install github.com/jadmadi/agentmeter/cmd/agentmeter@latest
Domain Developer Tools & CLI
Languages Go, SQLite, Python
License AGPL-3.0-only
Status Active Development
The Problem

Why This Was Built

Developers running more than one AI coding agent cannot see how token spend, cache efficiency, latency, and session health compare across tools. The evidence sits in different local stores, in different shapes, and usually only surfaces one vendor at a time.

The Solution

The Architectural Answer

AgentMeter reads those local stores read-only, validates one schema v3 across tools, and renders per-tool reports plus like-for-like comparisons in a single static binary. It names the winner, shows the uncertainty, and marks cost and coverage caveats instead of hiding them.

Capabilities

Key Features & Architecture

Per-tool reports for Command Code, OpenCode, and Muse covering throughput, tokens, cache, reasoning, cost, tool time, and session health
Cross-tool comparison for any pair (oc-cmd, oc-muse, cmd-muse) with shared model-family pooling, output-size strata, explicit verdict confidence, and Simpson's-paradox detection
Schema v3 fail-closed report and comparison builders plus independent Python oracle audits and fixture parity checks
Read-only local readers: OpenCode SQLite, Command Code and Muse session JSONL; no prompts, assistant text, tool arguments, or file contents are read or emitted
Embedded HTML dashboards and JSON/JS data files, with --serve and --watch, plus --json modes for cmd, oc, muse, and compare
Per-tool wall-clock split into work and wait time, and per-model timed coverage that gates fixed-latency rankings
Cost labels that mark recorded spend as a provider-reported floor and cache savings as a counterfactual, not a bill reduction
Strict CLI behavior: date-window validation, fail-closed empty sources, actionable wrong-side report errors, ANSI-aware width adaptation, and documented exit codes 0/1/2
Six cross-platform release archives for Linux, macOS, and Windows with checksums and AGPL, NOTICE, and third-party license texts
Engineering

Technical Specifications

Primary Languages
GoSQLitePython
Frameworks & Tooling
Go standard librarymodernc.org/sqliteEmbedded HTML/CSS/JavaScript
Architecture & Execution Model
Single static Go binary with read-only SQLite and JSONL readers, schema v3 fail-closed report and comparison builders, embedded HTML dashboards, and six cross-platform release archives
Licensing Model
AGPL-3.0-only (copyleft)
Release & Lineage
Active release cycle since 2026 · Maintained by @JadMadi
Knowledge

Frequently Asked Questions

Does AgentMeter send my session data to the cloud?

No. AgentMeter is local-first and zero-telemetry. It reads the local stores already on your disk, opens the OpenCode database read-only, and makes no network requests.

Which tools can I analyze and compare?

Command Code, OpenCode, and Muse. Any two can be compared (`agentmeter compare`), and each tool also has its own report command (`agentmeter cmd`, `agentmeter oc`, `agentmeter muse`).

How do I install AgentMeter?

Use a precompiled release archive from GitHub, or run `go install github.com/jadmadi/agentmeter/cmd/agentmeter@latest` with Go 1.26 or newer. `./build.sh --all` builds the same six archives locally.

Why is recorded cost called a floor?

Recorded cost comes from what the provider reports. Free, contributor, and subscription-tier models may report $0, so per-step and per-1M figures can understate paid usage. Cache savings are a counterfactual at fitted prices, not money removed from a bill.

Does AgentMeter read my prompts or code?

No. It reads usage, timing, model, and tool metadata. It does not read or emit prompts, assistant text, tool arguments, or file contents. Session titles and project names are included by default and can be suppressed with `--no-titles` and `--full-paths`.