Independent Consultant · Since 2009|~€750 / day

Open source · MIT

Deadweight

The auditor I run on my own Claude Code configuration, released as open source. It finds what you pay for on every turn, and nothing ever reads.

Claude CodePython 3.9+MITZero dependency
Deadweight — the status line in its six states
Claude Code plugin — Configuration audit

I wrote deadweight to audit the Claude Code configurations I build for my projects, this one included - a CLAUDE.md, skills, rules, hooks, everything that gets paid for in tokens on every turn, read or not. A configuration like that only ever grows: one more rule, one more skill, until nobody can say which part is still earning its place. I measured it twice against public repositories it had never seen, fifteen each time, the second sample drawn after the first so neither could overlap. Both times it found real defects in itself - the second time, 6 of the 7 errors the previous release reported were still its own. This site runs the same auditor on its own configuration.

01

Six check families

From what a block of instructions costs on every turn to a plugin routing to a skill it doesn't ship. Every check id is stable across releases, so an exemption you write today doesn't break on the next one.

6check families
02

A status line that says when to act

Six states, one line: dim while the configuration sits at its accepted floor, red only when it regresses above it. Colour encodes what needs an action, not the size of the count - a signal that's always on teaches the eye to skip it.

03

A floor the configuration may not cross

`--set-floor` freezes today's counts, `--check-floor` fails CI the day they rise. A measurement with no floor is one people learn to ignore - the numbers drift for months and every single step looked reasonable on its own.

Install

Two commands, then a new session. The first adds the marketplace, the second installs the plugin from it.

claude plugin marketplace add e-xode/deadweight --scope project
claude plugin install deadweight@deadweight --scope project

`--scope project` on both commands writes the marketplace and the plugin into the project's `.claude/settings.json`, so anyone who clones the repository gets them too. Leave it out to install for yourself only, across every project.

Requirements: python3 3.9+, standard library only.

Then open a new session in that project and ask Claude to run `deadweight`. It prints the findings for this project.

What it checks

Six families, each with a stable check id, so an exemption you write today doesn't break on the next release.

  • What it costs

    Text injected on every turn whether or not anything reads it: CLAUDE.md size, the always-loaded budget, the skill-listing budget, description length.

  • What it points at

    References to things that no longer exist: dead links, dead path anchors inside a skill, rule globs matching no file, hooks calling a script that's gone.

  • Whether it loads

    Configuration Claude Code never actually reads: a skill sitting outside a loaded location, a withheld skill nothing points at, a name that doesn't match its folder.

  • Whether skills compete

    Two descriptions close enough to steal each other's triggers: overlap between skills, a missing anti-trigger clause.

  • Whether it can be shown wrong

    Claims nothing can refute: a skill naming no checkable path, an eval suite that can't fail or can't even run.

  • Plugin packaging

    A plugin that routes to what it doesn't ship: the manifest, routes to foreign skills, hook shapes and timeouts.

What stays local

The `SessionStart` hook that runs the audit never touches the network, and it prints nothing - a measurement worth stating plainly, not assuming.

  • No network

    Everything is read from files already on disk: the cached measurement, Claude Code's own record of installed plugins, the local copy of the marketplace. Nothing is sent anywhere.

  • The hook prints nothing

    A plugin hook's stdout enters the model's context - measured with a probe plugin whose printed marker lines were read back verbatim by a fresh session. Whatever a hook prints is paid for in tokens, on every session, in every project that installs it. So this one prints nothing; the findings surface in the status line, to you, for free.

  • The cache lives outside the repository

    Measurements are cached in your local cache directory (`~/.cache/claude-audit/` by default), never committed to the repository, never read by the model unless you ask.

FAQ

What is deadweight?

An open-source plugin that audits a Claude Code configuration - CLAUDE.md, skills, sub-agents, rules, hooks, settings - and reports what costs tokens on every turn and nothing reads.

Who is it for?

Anyone maintaining a CLAUDE.md, a skill library or a plugin - solo or in a team - who wants to know what the configuration actually costs before it outgrows what anyone can still read in full.

Does it send my configuration anywhere?

No. The audit reads local files only and never touches the network; the `SessionStart` hook that triggers it prints nothing back.

Does running it cost anything?

The background audit prints nothing, so it costs no tokens by itself; the status line that shows you the result runs locally and costs nothing either. Asking Claude to run `deadweight` explicitly is an ordinary command, like any other.

Is it stable?

No, and it says so: version , pre-1.0. The doctrine was built on a private fleet, then measured against two samples of public repositories it had never seen - each sample found real defects in the auditor itself, recorded in the CHANGELOG.

Is it Anthropic-verified?

No. It is a community plugin, not affiliated with, endorsed by, or verified by Anthropic. It is intended for submission to the plugin directory, not yet listed there.

Deadweight is an independent, community-built plugin. It is not affiliated with, endorsed by, or verified by Anthropic. "Claude Code" names the tool it audits, nothing more.

Want the same discipline on your team's AI setup?

Tell me how your team works with Claude Code or a similar tool today, and I'll tell you honestly whether an audit is worth your time.