Linter + profiler + coverage for agent context

Know what your agent actually loads.

ctxlint audits AGENTS.md, CLAUDE.md, .cursor/rules, and friends, then shows exactly what they cost you in tokens, on every request.

Star on GitHub
~/dev/your-app

npx @tqakdev/ctxlint scan

Scanning agent context… 14 files · 4 tools

CLAUDE.md6,410
AGENTS.md3,120
.cursor/rules/ (9 files)7,860
.github/copilot-instructions.md1,240
duplicate-rule“use pnpm, never npm” copied in 3 files
stale-referenceCLAUDE.md:41 → src/utils/api.ts (deleted)
contradictiontabs (AGENTS.md:12) vs spaces (style.mdc:3)
buried-criticalsecurity rule at line 214 of 230

Context Health 38/100 · 3 errors · 11 warnings · 6 info

npx @tqakdev/ctxlint fix --write

merged 3 duplicates · removed 6 dead rules · pruned stale refs

Context per request18,630 tokens−60% ▼

Psst… this is what a real scan looks like

Stop confusing your AI.

Every duplicated, drifted, or contradictory rule silently taxes every request: tokens you pay for, output quality you don’t get. ctxlint answers the questions nobody could answer about your repo.

What loads?

Per tool, per directory, in load order. See exactly what each agent reads, and why.

What does it cost?

Token totals for the context injected into every request. Per file, per tool, no guessing.

What’s broken?

Duplicates, contradictions, drifted copies, dead file references, and rules buried 200 lines deep.

Does it help?

Judge recent commits against your rules. Catch violations, and dead rules that never fire.

one command in CI · zero config

ctxlint scanctxlint fix --writectxlint compliance--ciGitHub ActionHealth Score 0-100text / json / md

Free forever.
Fueled by supporters.

ctxlint is MIT-licensed and always will be. If it saved you tokens (or sanity), a one-time donation funds new detectors, better profiling, and fewer confused agents.

one-time payment via Stripe · pick your amount, receipt included, no account needed