Your Cursor rules have bugs. This finds them.
You wrote rules. Cursor still ignores them. cursor-doctor tells you exactly what's wrong: conflicting directives, broken globs, vague instructions the AI can't act on, token budget waste, and 100+ other issues. One command. Zero dependencies.
npx cursor-doctor scanπ§ Auto-fix everything:
npx cursor-doctor fixβ first 3 fixes free, Pro for all
ββ Cursor Health: B ββ
ββββββββββββββββββββββββββββββ 84%
β Conflict: "always use semicolons" vs "omit semicolons" in 2 files
β Glob *.tsx doesn't match any files in your project
β 3 rules use alwaysApply β burning 2,400 tokens on every request
β "write clean code" is too vague for the AI to act on
β Frontmatter valid across 12 rules
β No legacy .cursorrules detected
8 passed 4 issues (2 auto-fixable)
Not generic warnings. Issues specific to your rules, with the exact file and line.
We scanned 50 real open-source projects and found that 82% had at least one broken or misconfigured rule. The most common issues: contradictory instructions across files, glob patterns that match nothing, and vague rules the AI silently ignores.
| Command | What it does | Free? |
|---|---|---|
npx cursor-doctor scan |
Health check with letter grade | β |
npx cursor-doctor lint |
Rule-by-rule detailed diagnostics | β |
npx cursor-doctor check |
CI pass/fail (exit code 0 or 1) | β |
npx cursor-doctor badge |
Generate README badge snippets | β |
npx cursor-doctor init |
Generate starter rules for your stack | β |
npx cursor-doctor install react |
Install community rule packs | β |
npx cursor-doctor fix --preview |
Preview auto-fixes before applying | β |
npx cursor-doctor fix |
Apply all auto-fixes | 3 free / Pro for unlimited |
npx cursor-doctor audit |
Full diagnostic report | Pro |
npx cursor-doctor conflicts |
Cross-format conflict detection | Pro |
npx cursor-doctor test <file> |
AI rule adherence testing | Pro |
npx cursor-doctor team drift |
Detect config drift across team | Pro |
100+ lint rules:
- Conflicts β contradictory instructions across files (48 semantic patterns)
- Syntax β broken YAML frontmatter, boolean strings, unclosed code blocks
- Token budget β rules burning context window, dead rules, excessive alwaysApply
- Globs β patterns that don't match files, regex in globs, overlapping coverage
- Prompt quality β vague instructions, first person, politeness tokens, negation-only rules
- Structure β file naming, duplicate content, missing descriptions, legacy .cursorrules
34 auto-fixers: frontmatter repair, glob syntax, boolean strings, whitespace, TODO removal, duplicate descriptions, heading normalization, and more.
npx cursor-doctor fix --preview # See what would change (free)
npx cursor-doctor fix # Apply all fixes (Pro)$9 one-time at nedcodes.gumroad.com/l/cursor-doctor-pro. If it doesn't find real, fixable issues in your project, email hello@nedcodes.dev for a full refund.
Search "Cursor Doctor" in the extensions panel. Health grade in your status bar. Inline diagnostics on save. Quick-fix code actions with Pro.
Catch broken rules before merge:
- uses: nedcodes-ok/cursor-doctor@v1Validate rules locally before every commit:
cp scripts/pre-commit-hook.sh .git/hooks/pre-commit && chmod +x .git/hooks/pre-commitThe hook runs cursor-doctor check only when .mdc, .cursorrules, CLAUDE.md, or AGENTS.md files are staged.
Show your project's Cursor rules health in your README:
npx cursor-doctor badgeOutput:
Markdown:
-brightgreen)
HTML:
<img src="https://img.shields.io/badge/Cursor%20Rules-A%20(96%25)-brightgreen" alt="Cursor Rules: A (96%)">Dynamic badge (updates automatically via shields.io endpoint):
# Generate endpoint JSON
npx cursor-doctor badge --json > cursor-rules-badge.json
# Commit to your repo
git add cursor-rules-badge.json && git commit -m "chore: add cursor rules health badge"
# Use in README.md (replace YOUR_REPO_URL)
Badge colors: A=brightgreen, B=green, C=yellow, D=orange, F=red.
Use cursor-doctor as an MCP tool inside your AI coding assistant:
{
"mcpServers": {
"cursor-doctor": {
"command": "npx",
"args": ["-y", "cursor-doctor-mcp"]
}
}
}Real-time diagnostics in Neovim, Zed, or any LSP-compatible editor:
npm install -g cursor-doctor
# Configure your editor to use cursor-doctor-lsp| Tool | What | Install |
|---|---|---|
| rule-gen | Generate rules from your codebase with AI | npx rulegen-ai |
| rule-porter | Convert rules between Cursor, Claude, Copilot, Windsurf | npx rule-porter |
| nedcodes.dev | Guides, playground, and tools for Cursor AI developers |
If cursor-doctor helps your team ship better AI-assisted code, here's how to support it:
- β Star the repo β helps other developers find it
- π Report bugs β we fix issues fast
- π¬ Join the discussion β share patterns, request features, help others
- π’ Share it β if it saved you debugging time, tell your team
- π§ Explore the ecosystem β rule-gen generates rules from your codebase, rule-porter converts between AI assistants, cursor-lint catches rule issues in real-time
MIT
