Changelog
Generated from CHANGELOG.md in the project repository. Never maintained twice.
Unreleased
- changedPages: the project site uses the current shared theme (0.12.6).
0.1.1
31 October 2026
- fixedCLI: text output stays within the terminal width, at most 88 columns: evidence lines and long paths break after
/and before·with an indent, and the sessions and projects tables shrink their bars instead of spilling over (#2).
0.1.0
30 October 2026
- addedCLI:
agentmeterreads Claude Code session logs (~/.claude/projects,CLAUDE_CONFIG_DIR) and prints a summary with days and compactions;--sessions,--projects,--findings,--since <Nd|date>,--project <name>and--jsonselect and filter. Read-only, no network. - addedAdapter: merges streaming duplicates and drops sub-agent replays, reads cache writes by lifetime (5 min / 1 h) from the nested
cache_creationobject, and counts unreadable lines, unknown entry types and unknown usage fields instead of failing. - addedFindings:
baseline-load,cache-rebuild,compact-thrash,big-contextandlong-sessionreport an observation with rule version, measure, denominator, sample, evidence (file and event id), certainty, counterexamples and a next step. None is an error; thresholds are uncalibrated. - addedData quality: the report states the observed period, files without usage, unreadable entries and rules that could not be measured, and separates "no analysis possible" from "no findings".
- addedCodex adapter: reads Codex CLI rollouts (
$CODEX_HOMEor~/.codex) from the runningtoken_counttotals, ignoring repeated events and replayed parent history. Compressed.jsonl.zstfiles are streamed within limits; damaged ones are counted, never fatal. Rules that need cache writes or compaction sizes report "not measurable" instead of guessing. - addedCLI:
--tool claude|codex|allselects the source; by default every source that has logs is reported on its own, with its own data quality.--jsonnow returns asourcesarray. - addedFindings: every rule appears once per source as observed, checked with nothing to report (with its measure and sample) or not measurable (with the reason), in text and JSON.
big-contextuses 50 % of the logged context window where a window is recorded (Codex) and 500k otherwise. - addedCLI:
agentmeterwithout arguments on a terminal opens a menu (summary, sessions, projects, one row per rule with its status, data quality per source) with the source and the period selectable; in a pipe or with any flag it prints the text as before. - addedCLI:
--check data-qualityexits 1 when a source has unreadable lines or compressed files over a limit or no usage in the period, 0 otherwise and 2 for a bad call. Notices and info never fail it. - addedJSON: the output carries
schema_version(1) and is documented field by field in JSON output. - addedCLI:
--probeasks Claude Code via/context(local, no model request) what a session start holds and splits the median start into configuration and the rest; also in the menu. Details: Asking Claude Code. - addedFindings: every diagnosis opens with a conclusion (lever, look at it, fine) and splits its measure into parts;
conclusionandpartsare in the JSON. Details: Conclusions. - addedFindings:
cache-rebuildlists sub-agent files apart from the main conversation and, where writes are split by lifetime, compares a 1 h cache lifetime with 5 min at list-price ratios;baseline-loadnames the front end that wrote the session starts (entrypoint, Codexoriginator). - addedCLI: the text output starts with a block of what was read and how well, and shows bars for days, models, sessions, projects and every breakdown.
- addedRelease: binaries for macOS and Linux on the GitHub release with
.sha256,SHA256SUMSand a signed build provenance attestation; the crates are on crates.io (cargo install agentmeter). Details: Install. - fixedBuild: the declared minimum Rust version is 1.88, the version the code and
ruzstdneed; 1.85 did not build. - fixedCLI:
--sincewith a day count too large to compute is refused as a bad call instead of overflowing. - fixedCLI:
--projectthat matches no project in any source exits 1 with a message instead of printing an empty summary. - fixedCLI: requests without a model name appear as
(unknown)in the model table instead of a blank row. - fixedFindings: the
baseline-loadnext step names/contextas a Claude Code command instead of suggesting it for every source.