plugin-auditor

An auditor for installed Claude Code plugins that compares their always-loaded agents with recent use. It reads plugin files and session transcripts to identify plugins that may be unused but consume context.

In plain words
What is it for?
Use it to list installed plugins, count their agents, find their commands, check recent command and agent usage, and flag possible uninstall candidates.
Why use it?
It helps reveal idle token costs from plugins that load agents on every session. This supports decisions about which plugins may be candidates for removal.

Agent

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/yacb2/aidex/plugin-auditor
Clone the repo
git clone --depth 1 https://github.com/yacb2/aidex
Per session 25 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,597 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00025 $0.01597
Opus 5 $0.00013 $0.00798
Sonnet 5 $0.00005 $0.00319
Haiku 4.5 $0.00003 $0.00160

Measured yesterday against content hash 85d5b2dabbcd, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

plugin-auditor scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reads agent configuration directorieslowAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

2. Zero use in any project in the last 30 days (grep all `~/.claude/projects/*/` transcripts).

Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.

skills/aidex/agents/plugin-auditor.md · 136 lines

How it starts

The opening of the file, as written. The whole thing — 136 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You audit installed plugins for token cost vs. usage.

Inputs

  • ~/.claude/plugins/installed_plugins.json
  • ~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/agents/*.md
  • ~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/commands/*.md (for command names)
  • Transcript history under ~/.claude/projects/*/*.jsonl

Steps

1. Enumerate plugins

Parse installed_plugins.json. For each plugin entry, record:

  • Plugin name and marketplace (<plugin>@<marketplace>)
  • installPath
  • installedAt, lastUpdated

2. Count always-loaded agents

For each plugin's installPath, list agents/*.md. Cost estimate = count × 600 tokens. Plugins with 0 agents have negligible idle cost — mark OK and skip.

3. Collect command names

For each plugin, list commands/*.md. The command name is the filename stem (e.g., review-pr.md/review-pr). Also gather any namespaced slash commands from SKILL.md headers if present.

4. Check recent usage

Grep transcripts for invocations. Use rg on ~/.claude/projects/*/ for each command name and for each agent name:

  • Pattern for commands: /<command-name>\b
  • Pattern for agents: subagent_type[":\s]+<agent-name> or "agent"[":\s]+"<agent-name>"

Count matches within the last 30 days (filter by file mtime or by the transcript's embedded timestamps — use file mtime as a fast proxy). 0 matches → unused.

5. Detect plugin scope and protected status

For each plugin, read installed_plugins.json and check the scope field (or equivalent — typically user for global installs, project for .claude/plugins/-local installs).

Protected marketplaces (require strong justification before suggesting any change):

PROTECTED_MARKETPLACES = [
  "claude-plugins-official",   # Anthropic-curated
  "anthropics",                # Anthropic-published
]

A plugin is "protected" if its marketplace (the part after @ in <plugin>@<marketplace>) appears in PROTECTED_MARKETPLACES. Treat protected plugins conservatively:

Read the full file on GitHub · 136 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 136 lines · 25 tokens per session scan A 85d5b2dabbcd

Subscribe to this mod's changes

plugin-auditor is an agent published in the GitHub repository yacb2/aidex (2 stars, last pushed 4d ago), licensed MIT. It adds 25 tokens to every session and 1,597 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other agents, from other repositories

ap-execharness-resolver

L3 executor - EXECHARNESS RESOLVE. Resolves the per-task EXECUTION harness - the two-sided gate SWE-bench actually grades (failToPass flips RED→GREEN ∧ passToPass stays GREEN), multi-language, via real build-system detection. Ingests shipped FAILTOPASS/PASSTOPASS, else derives failToPass from the mission's behavioral…

Spielewoy/autoprompt-skill · 100 tokens

ap-feature-coordinator

L1 feature coordinator - drives approved ROADMAP.md lanes through their required build/review/verification gates and owns the run-wide feature frontier.

Spielewoy/autoprompt-skill · 33 tokens

ap-goal-checker

L4 terminal leaf - GOAL-CHECK. Independent, adversarial, default-FAIL. Re-derives every mission ask from the mission text alone; each ask starts NOT-DONE, flips to DONE only on opened evidence. DONE only if zero open findings at ANY severity AND user-usable AND coverage >=95% AND a tri-axis end-to-end run (scope +…

Spielewoy/autoprompt-skill · 92 tokens

ap-implementer

L3 executor - G4 IMPLEMENT. Builds one feature from its approved executable roadmap item or conditional frozen plan using strict TDD and real test runs; coverage >=95% on changed lines. Reports PLAN-CONFLICT rather than improvising.

Spielewoy/autoprompt-skill · 52 tokens

ap-manager

L2 optional manager - coordinates a multi-lane slice, builds compact pointer envelopes, and dispatches disjoint L3 work without executing it.

Spielewoy/autoprompt-skill · 32 tokens

ap-researcher

L3 executor - bounded research that materializes a usable output with reconciled receipts. Owns one theme, runs at most 6 searches and 6 fetches in one batch, and stops when the named deliverable is complete or the budget is exhausted. Does not spawn.

Spielewoy/autoprompt-skill · 61 tokens