AGENTCHECKER.
Scans AGENTS.md, CLAUDE.md, Cursor rules, and Copilot instructions in one command. Surfaces package manager, linter, language, and formatter conflicts in under 2 seconds.
$ npx agentchecker
agentchecker
Found: ✓ .cursor/rules/global.mdc · AGENTS.md · CLAUDE.md
⚠ 2 contradictions found:
Package manager
.cursor/... → npm
CLAUDE.md → npm
AGENTS.md → pnpm
→ pnpm
Linter
.cursor/... → eslint
CLAUDE.md → eslint
AGENTS.md → oxlint
→ oxlint
◇ Fix? Yes · pnpm · oxlint
CLAUDE.md
- Run `npm install` before starting.
+ Run `pnpm install` before starting.
✓ Fixed 2 files. All your agents agree.
Scanned agent paths
- ✓ AGENTS.md · npx agentchecker --unify
- ✓ CLAUDE.md · .claude/CLAUDE.md
- ✓ .cursor/rules/*.mdc · .cursorrules
- ✓ .github/copilot-instructions.md
- ✓ .windsurfrules · .clinerules · .roo/rules
- ✓ Codex · OpenCode · Aider · Antigravity
Official GitHub Action & CI
Fails the workflow when project rules disagree:
$ uses: moisesvalero/agentchecker@main GitHub Action in READMEFrequently asked questions
What is agentchecker?
agentchecker is a zero-install command-line tool that detects and fixes contradictions between AI agent instruction files in a project. It scans files like AGENTS.md, CLAUDE.md, Cursor rules (.cursor/rules/), GitHub Copilot instructions (.github/copilot-instructions.md), Codex, OpenCode, Windsurf, and Aider configurations, then asks you which setting is correct and updates all files to agree.
How do I run agentchecker?
Run agentchecker without installation using npx: open a terminal in your project root and run 'npx agentchecker'. You can also run 'npx agentchecker --init' to generate a unified AGENTS.md and link all agent tools.
Can I use agentchecker in GitHub Actions CI?
Yes! You can use the official composite action in your workflow: 'uses: moisesvalero/agentchecker@main' or run 'npx agentchecker --check-only --local-only'. It exits with code 1 if rules contradict each other.
What AI agent files does agentchecker support?
agentchecker supports AGENTS.md (shared), CLAUDE.md and .claude/rules/*.md (Claude Code), .cursor/rules/*.mdc (Cursor), .github/copilot-instructions.md (GitHub Copilot), .codex/config.toml (Codex App), .gemini/gemini.md (Antigravity), .opencode.json (OpenCode), .windsurfrules (Windsurf), .clinerules (Cline/Roo), and .aider.conf.yml (Aider). It also scans global config files in ~/.claude/, ~/.cursor/rules/, ~/.codex/, and ~/.config/opencode/.
Can agentchecker symlink rule files to AGENTS.md or audit package.json?
Yes! Run 'npx agentchecker --symlink' to replace tool-specific rules with relative symlinks to AGENTS.md. Run 'npx agentchecker --audit-deps' to audit rule claims against installed package.json dependencies and lockfiles.
What contradictions does agentchecker detect?
agentchecker detects contradictions across 7 categories: package manager (pnpm vs npm vs yarn vs bun), linter (oxlint vs eslint vs biome), formatter (prettier vs biome vs dprint), test runner (vitest vs jest vs playwright vs cypress), response language (spanish vs english), shell environment (WSL2 vs Windows vs macOS), and package runner (npx vs pnpm dlx vs bunx). It also intelligently ignores negated rules (e.g. "never use npm").
Does agentchecker modify global AI tool configuration files?
No. agentchecker reads global configuration files (like ~/.claude/CLAUDE.md or ~/.cursor/rules/) to detect contradictions, but it never modifies them. Only local project files are updated. If no local config exists, agentchecker offers to create an AGENTS.md file with your chosen settings.
Is agentchecker free?
Yes, agentchecker is completely free and open source under the MIT License.