Skip to content

Releases: gauravkrp/claude-contextlens

v0.2.1

Choose a tag to compare

@gauravkrp gauravkrp released this 27 Jul 10:16

Fixes a correctness bug in the 0.2.0 setup audit that could recommend removing the most expensive thing in your setup.

Plugins are credited with what they ship

Claude Code's plugin counter only moves when one of that plugin's commands runs. It says nothing about the MCP server, skills or agents the plugin installed.

So a plugin whose MCP server answered a thousand calls read as never used. On a real setup that meant playwright showed 0 uses while its server accounted for $1,177, and the audit pointed at it for removal.

A plugin's usage is now its own counter plus the measured usage of everything it provides. The raw counter stays available as ownUsage, and plugins get a real cost column instead of n/a.

  Plugins  (enabled only, credited with what they ship)
                 PROVIDES                    USES    LAST USED   COST
  playwright     mcp                         1982   5m 51s ago  $1.2k
  deploy-on-aws  3 skills, mcp, hooks        8633      51s ago    $94
  figma          12 skills, mcp                26   51d 4h ago   $180

figma is the case worth noting: its own counter is 0, but what it ships has 26 calls and $180 behind it.

Tests

Five more covering the rollup, including that a plugin's items are not credited to a different plugin. 31 total.

v0.2.0

Choose a tag to compare

@gauravkrp gauravkrp released this 27 Jul 10:03

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.

v0.1.3

Choose a tag to compare

@gauravkrp gauravkrp released this 27 Jul 08:38

Searchable npm description and expanded keywords. No functional changes.

v0.1.2

Choose a tag to compare

@gauravkrp gauravkrp released this 27 Jul 08:36

Rewritten README: 581 lines to 184, restructured around a runnable quickstart. No functional changes.

v0.1.1

Choose a tag to compare

@gauravkrp gauravkrp released this 27 Jul 08:28

First release published through CI via npm trusted publishing.

No functional changes from 0.1.0; this release exists to exercise the automated publish path end to end.