Session-review: OSS complements¶
/session-review (issue #131) produces plugin-specific qualitative
suggestions — it knows this plugin's agents and skills, so it can say "skill X
under-specifies which files to read" or "this opus subagent only greps, re-tier
it to haiku." Open-source tools cover the complementary axis: continuous
quantitative monitoring of the same *.jsonl transcripts. They do not know
our agents/skills, so they cannot make our suggestions — and /session-review
is not a dashboard, so it does not replace them.
Recommend these alongside /session-review, not instead of it.
| Tool | Role |
|---|---|
ccusage (npm) |
Parses the same ~/.claude/projects/**/*.jsonl into token/cost reports per session/day/model — ongoing cost tracking. |
Native OpenTelemetry (CLAUDE_CODE_ENABLE_TELEMETRY=1) |
Exports usage/cost/tool metrics to an OTel collector → Grafana/Honeycomb for longitudinal dashboards. |
claude-code-log (community) |
JSONL → HTML viewer for eyeballing one specific bad session. |
When to reach for which¶
- "How much am I spending over time, per model/day?" →
ccusage(or the cost meter'spaceview for budget projection). Continuous, quantitative. - "I want longitudinal dashboards / alerting across the team." → native OpenTelemetry into your collector. Operational monitoring.
- "This one session went badly — let me read what happened." →
claude-code-log. - "What should I change in the plugin to stop wasting tokens / re-work?" →
/session-review. Qualitative, plugin-aware, hands suggestions to/feedback-learning,/harness-audit,/agent-eval,token-efficiency-review.
The quantitative tools tell you that a session was expensive; /session-review
proposes which plugin artifact to change so the next one isn't.
ccusage example (against this project's logs)¶
# One-off report for the current and recent days, per model:
npx ccusage@latest daily
# Session-level breakdown (the same transcripts session_extract.py reads):
npx ccusage@latest session
ccusage reads ~/.claude/projects/**/*.jsonl directly — no plugin install,
no config. Use it for the running cost number; use /session-review for the
"why and what to change."
OpenTelemetry enablement¶
# Turn on Claude Code's native telemetry export, then point it at a collector:
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
This exports usage/cost/tool metrics to any OTLP collector (Grafana, Honeycomb, Datadog, …). See Claude Code's "Monitoring usage" docs for the full env-var set.
Cross-reference: the plugin's own telemetry beacon (#106)¶
This plugin also ships an opt-in, local-only telemetry beacon (#106,
/telemetry) that records minimal command/skill/gate events with no network
egress. It and native OpenTelemetry overlap in intent but differ in scope:
- Native OTel exports rich usage/cost/tool metrics to an external collector — best when you want dashboards and already run a collector. It may satisfy part of what #106 set out to do.
- The plugin beacon is deliberately minimal, default-off, and never leaves the machine — best when you want a quick local "which commands/skills do I use, how often is the commit gate bypassed?" without standing up a collector.
Prefer native OTel for longitudinal/team monitoring; prefer the beacon (or
/session-review) for local, privacy-clean, plugin-aware analysis. Avoid
running both for the same purpose — pick the one that matches your monitoring
posture.