Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add iliaal/codesage/plugin install codesage-toolsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/iliaal/codesage/codesage-bench)<a href="https://agentmods.dev/commands/iliaal/codesage/codesage-bench"><img src="https://agentmods.dev/badge/commands/iliaal/codesage/codesage-bench/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/iliaal/codesage/codesage-bench"><img src="https://agentmods.dev/badge/commands/iliaal/codesage/codesage-bench.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00025 | $0.00714 |
| Opus 5.5 | $0.00010 | $0.00286 |
| Sonnet 5.5 | $0.00005 | $0.00143 |
| Haiku 4.5 | $0.00003 | $0.00071 |
Grade A, and why
codesage-bench scanned grade A with 0 findings 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 24d ago.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 72 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CodeSage retrieval regression check
Wraps ${CLAUDE_PLUGIN_ROOT}/bin/codesage-bench, which runs codesage-bench-runner against every *-eval.yaml corpus in the corpus directory, saves timestamped scorecards under history/, and prints an aggregates table.
Corpus directory resolution (first match wins):
--corpus-dir DIRargument$CODESAGE_BENCH_CORPUS_DIRenvironment variable./bench-corporain the current working directory (fallback default)
Step 1: Run the benchmark
${CLAUDE_PLUGIN_ROOT}/bin/codesage-bench $ARGUMENTS
No re-indexing happens; this only runs codesage search against existing indexes. Each corpus takes 10-60 seconds depending on case count. Background and poll if total runtime exceeds ~2 minutes.
Step 2: Report the summary
Parse the summary table and surface per corpus:
- Cases count
- Miss rate (% of queries with no ground-truth file in top-10)
- Median first-hit rank (1 is ideal)
- Mean recall@5 and recall@10
Flag anything off. Healthy thresholds across application codebases:
miss_rate ≤ ~15%per corpusmedian_first_hit ≤ 3recall@10 ≥ 0.55
Compare the fresh numbers against the most recent prior run of the same corpus (saved under history/). A deviation of more than ~5 points in r@10 on the same corpus signals a regression.
Step 3: Identify stale corpora
If any corpus returns FAIL or produces unexpectedly high miss rates, check whether the eval YAML's expected_files still exist in the indexed project. Renames and deletions upstream stale out the ground truth and distort metrics.
Read the corresponding scorecard file under history/ to see failed queries. Present the list to the user and offer to:
- Update the eval YAML to remove or replace stale references
- Leave it alone: the surprise is the benchmark doing its job
Do not silently "fix" the YAML without explicit direction.
Step 4: Compare to the previous run (only if asked)
If the user says "compare to last run" or similar, take the two most recent scorecards per corpus in <corpus-dir>/history/, compute deltas on the aggregates, and report them.
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.
- 24d ago Changed 9496c8c77529
- 1mo ago First seen · 72 lines · 25 tokens per session scan A 08de72d6632e
codesage-bench is a command published in the GitHub repository iliaal/codesage (21 stars, last pushed yesterday), licensed MIT. It adds 25 tokens to every session and 714 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
coverage
Ingest or inspect test-coverage reports (LCOV, Cobertura, Clover, Go cover profiles, JaCoCo, repowise JSON, or coverage.py .coverage; builds the per-test map when contexts are present), or gate a change on its patch coverage in CI.
mutation-test
Uses cargo-mutants to run mutation tests and verify test quality.
call-graph
Trace callers, callees, or paths using the call graph.
search
Search codebase by meaning using semantic search.
definition
Find where a symbol is defined in the codebase.
find
Find code using hybrid approach (semantic + grep).