agnix Config Linter
Find and fix broken AI coding-assistant configurations before they disrupt development workflows.
- Source repo
- agent-sh/agnix
- Stars
- ★ 457
- Last updated
- today
- License
- Apache-2.0
- Primary language
- Rust
- FA score
- 89/100 · Good
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code
- Cost
- Free, no paid service needed
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- A team using Claude Code, Cursor, and Copilot can validate their differing configuration formats before changes are merged.
- Not a fit if
- Teams that need proof a skill or hook behaves correctly in a live model session
- Users expecting the tool to generate or repair application code
- Teams unable to keep up with changing AI tool config formats
- Source review
- 89/100 · Good
What does this agent do, and when should you use it?
agnix is a static linter and language server for AI coding-assistant configuration, including CLAUDE.md, AGENTS.md, SKILL.md, hooks, MCP configuration, and other agent files. Its 456 rules cover formats used by Claude Code, Codex CLI, OpenCode, Cursor, Copilot, Kiro, Cline, Gemini CLI, and Agent Skills. The Rust workspace contains a shared validation engine, a CLI, an LSP server, an MCP server, and WebAssembly bindings. Diagnostics report file locations, error or warning severity, rule information, remediation guidance, and whether an issue can be fixed automatically; safe fixes, broader fixes, strict mode, and GitHub Actions annotations are supported. It can be adopted through local commands, editor extensions, a GitHub Action, a browser playground, or runtime integrations, but it does not perform model inference or generate application code.
agnix reads supported configuration files from a project directory and validates them through the agnix-core engine using rule metadata generated in agnix-rules from knowledge-base/rules.json. The CLI scans a directory with agnix . and emits file and position data, severity, explanations, and remediation hints; --strict treats warnings as errors, while --format github emits GitHub Actions annotations. --fix and --fix-safe apply safe corrections, --fix-unsafe also permits medium- and low-confidence changes, and --dry-run --show-fixes previews inline diffs. agnix explain MCP-018 displays the explanation and evidence for an individual rule. The workspace additionally supplies agnix-lsp for editor diagnostics, agnix-mcp as an MCP server, and agnix-wasm for browser or runtime integrations.
- A team using Claude Code, Cursor, and Copilot can validate their differing configuration formats before changes are merged.
- A skill author maintaining SKILL.md files can detect invalid names, fields, or syntax that may prevent a skill from being recognized.
- A platform team can add the GitHub Action to stop configuration errors from passing its CI quality gate.
- A developer who wants immediate feedback can use the VS Code, JetBrains, Neovim, or Zed integration while editing files.
- A tool maintainer preparing MCP, hook, or agent configuration for release can preview and apply available automatic fixes.
- A developer embedding validation in a browser or custom runtime can use the supplied WebAssembly bindings.
How do you install or deploy this agent?
The documented recommended, cross-platform installation uses npm:
npm install -g agnixOn macOS or Linux, Homebrew is also supported:
brew tap agent-sh/agnix && brew install agnixA Python package is available:
pip install agnixThe CLI can alternatively be installed from the Rust package registry:
cargo install agnix-cliThe first validation does not require an API key or model credential. Minimum Node.js, Python, and Rust versions are not specified in the supplied documentation, so adopters should verify that the runtime associated with their chosen package manager is available.
How do you use this agent?
From the root of the project to be checked, run:
agnix .Apply safe fixes with:
agnix --fix .Preview fixes as inline diffs without immediately changing files:
agnix --dry-run --show-fixes .Treat warnings as failures or emit GitHub Actions annotations with these respective commands:
agnix --strict .agnix --format github .Inspect the explanation and evidence for a particular rule:
agnix explain MCP-018A GitHub Actions workflow can include:
- name: Validate agent configs
uses: agent-sh/agnix@v0
with:
target: 'claude-code'What are this agent's strengths and limitations?
- One validator covers configuration formats from several AI coding assistants and documents 456 rules.
- Delivery options include a CLI, LSP, MCP server, WebAssembly bindings, GitHub Action, and integrations for several editors.
- Diagnostics include locations, severity, rule guidance, and fixability, with separate safe and lower-confidence fix modes.
- GitHub annotation output and warnings-as-errors behavior make it suitable for automated quality gates.
- Because the checked formats belong to evolving external tools, adopters must keep agnix updated as those specifications change.
--fix-unsafecan apply medium- and low-confidence changes, so its output requires review.- The supplied documentation does not state minimum Node.js, Python, or Rust versions, adding validation work for controlled environments.
- Configuration linting does not execute the target assistant, so a clean result cannot prove that a skill, hook, or agent will behave as intended in a live model session.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| agnix Config Linter This agent | 89 · Good | CLIFree | ★ 457 | today | Rust | Codex · Claude Code |
| CC Workflow Studio | 50 · Major gaps | IDE extensionFree + model costs | ★ 5.4k | 2mo ago | TypeScript | ChatGPT · Codex · Claude Code |
| VT Code | 66 · Some gaps | CLIFree + model costs | ★ 887 | 1d ago | Rust | OpenAI API |
| Loop Engineering | 69 · Some gaps | CLIFree + model costs | ★ 12k | 1d ago | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows a local static validator: no command execution, symlink rejection, file size/count/regex input limits, atomic writes, opt-in telemetry with compile-time feature gating and environment-aware disable. Fix paths distinguish --fix-safe from --fix-unsafe with --dry-run preview, so confirmation is adequate. Deductions: no explicit rollback/undo of applied fixes beyond atomic write guarantees; a promotional block for a tiyuvta inference service embedded in the README, and rule-source claims rely on an --explain command not shown in these files.
Workspace versions are consistent (0.52.2 across Cargo.toml, the pyproject shim, and a sync script), and the CLI provides graded diagnostics, help hints, and rule explanations. Deductions: a maintained-fork dependency (serde_norway, though justified), unverified availability of pinned versions like tokio 1.52.3, and self-admitted weaker Windows validation.
Clear audience across multi-tool users (Claude Code, Cursor, Copilot, Kiro, MCP) with CI and editor integrations; boundaries documented via target/tools filters and known limitations. Deductions: --target is self-described as legacy and only partially effective, so filter precision leans on the tools list with some ambiguity.
Clean architecture (crate layout, docs site, rules table), thorough multi-channel install notes, stable naming, candid known-limitations list (TOCTOU, platform differences), CI-enforced CHANGELOG, version-sync script. Deductions: license metadata says Apache-2.0 while README/Cargo say MIT OR Apache-2.0, an inconsistency; no FAQ; maintainer identity unverified and 48-hour security response is only an assertion.
High output usability (GitHub annotations, --strict, LSP, editors); addresses real pain (non-triggering skills, cross-tool drift) with clear marginal value and minimal local cost. No clear deduction, but actual rule effectiveness is unverified without execution — reflected in confidence, not extra credit.
Rule counts, source claims, and the --explain mechanism provide some traceability; CI/cargo-audit/CodeQL/fuzz are partially corroborated by workflow files. Deductions: the 455-rule figure and external citations (Vercel, Stack Overflow) cannot be verified statically, and fact versus marketing framing requires reader discernment given the README's promotional tone.
- License metadata (Apache-2.0) is inconsistent with the repository claim (MIT OR Apache-2.0); rely on the LICENSE files before compliance decisions.
- --fix-unsafe applies low-confidence fixes; preview with --dry-run --show-fixes first — there is no automatic rollback, so rely on version control.
- Publisher identity is unverified; the security contact is a personal Gmail address.
- Windows symlink behavior is self-admittedly under-validated; a TOCTOU window is acknowledged.
- The 455-rule count and external research citations are not independently verified; this is a static review with no execution.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
Security - Update Tokio to 1.53.3 for the AsyncFd I/O-safety advisory (RUSTSEC-2026-0386). - Update rustls-webpki to 0.103.16 and webpki-root-certs to 1.0.10 to reject distrusted emSign certificate chains (RUSTSEC-2026-0382, RUSTSEC-2026-0383). - Update the website's follow-redirects lockfile to 1.16.1 (GHSA-q3jh-wrc6-jgq8, GHSA-8r9p-f939-6h3c). Fixed - PE-006 checks native AGENTS.md when Claude Code is explicitly selected, including mixed-tool runs. Unscoped shared files retain their existing checks. The warning identifies Claude prompting guidance. (#1705) …View on GitHub ↗ -
Release notes excerpt
Migration - Roo Code support is removed (Roo Code shut down on 2026-05-15): ROO-001 to ROO-006 and RC-SK-001 are retired, .roo/ files get only the generic checks, rules.roo_code is a deprecated no-op, and tools = ["roo-code"] only warns. Remove those IDs and settings from your config. - Remove the rule IDs retired in this release from disabled_rules, severity overrides and explicit rule lists: AGM-003, AGM-005, CC-AG-013, CC-HK-017, CC-MEM-007, CC-MEM-009, CC-OS-005, CC-SET-014, CC-SET-015, CC-SET-021, CC-SET-024, CC-SET-032, CDX-001, CDX-002, CDX-003, CDX-AG-004, CDX-AG-007, C …View on GitHub ↗ -
Release notes excerpt
Migration - Remove retired IDs REF-004, OC-DEP-004, CC-MEM-005, CC-MEM-006, CC-MEM-008, AGM-006, and MCP-005 from disabled_rules, severity overrides, and explicit rule lists. Generic-instruction advice remains under PE-005; unrelated retirements have no replacement. - Quoted-boolean repairs now require --fix-unsafe. Review the proposed values first: enabling previously ignored settings can change behavior or security policy. Plain --fix leaves these strings unchanged. Removed - Retire REF-004: Claude Code supports non-Markdown imports, including @package.json. …View on GitHub ↗
FAQ
Does validation require a model API key?
Will agnix modify project files?
agnix . run reports diagnostics only. The --fix, --fix-safe, and --fix-unsafe modes apply changes; --dry-run --show-fixes can preview them first.Can it check only Claude Code configuration?
agnix --target claude-code . is documented, although target presets are described as legacy and primarily affecting CC-* rules.Will warnings fail CI?
agnix --strict . when warnings must be treated as errors.