Skip to content

v0.2.0

Choose a tag to compare

@gauravkrp gauravkrp released this 27 Jul 10:03
· 2 commits to main since this release

See what your Claude Code setup costs you, and what it does not earn.

Setup inventory

contextlens config and the new Setup tab read every MCP server, plugin, skill and agent you have installed and join each to the cost your transcripts actually recorded for it.

  Your setup
                     INSTALLED  USED  NEVER USED   COST
  MCP servers               27    10          17    $2.3k
  Plugins (enabled)         50    17          33      n/a
  Skills                   194    12         182    $3.0k
  Agents                    32     4          28     $482

Config files know what is installed. Transcripts know what was used. Nothing else has both, which is what makes "installed and never called" answerable. An idle MCP server still loads its tool schemas into every session.

Secrets in MCP configs are masked to a short tail before they leave the reader, and nothing reports a connection status: Claude Code does not persist one, so measured calls are the honest answer.

The dashboard opens on Now

All-time totals were the landing view, which is not the question anyone opens a usage dashboard to ask. Now leads with the current billing window and burn rate, then today against yesterday, then what is driving cost, then what you are carrying without using. Totals moved to their own tab.

  • Every table sorts and filters, on raw values rather than formatted strings
  • Setup switches sections instead of stacking them, so 194 skills no longer bury what is below
  • Light, dark and follow-system, stamped before first paint

It keeps itself current

serve used to read a database that only a manual ingest updated. It now rescans every 60 seconds. Scans resume from saved byte offsets, so a repeat pass over 1.8 GB costs milliseconds. --no-watch restores the old behaviour.

Fixes

  • serve crashed with an unhandled EADDRINUSE instead of reporting a taken port. Running it twice now opens the dashboard that is already there.
  • Unknown /api/* routes returned the HTML shell, so callers saw a JSON parse error naming <!doctype and nothing else.
  • Attribution now reports tokens alongside cost. The two diverge, because a cache read is a tenth the price of fresh input.
  • A stale staging copy of the dashboard survived packing and shadowed local builds.
  • Usage no longer double counts when several scopes declare the same MCP server name.

Tests

26 covering redaction, frontmatter parsing, and how usage splits between declarations sharing a name. Wired into CI.