Anssol
Back to Skills
Development

Agnix

Linter for AI-agent configs — validates SKILL.md, CLAUDE.md, hooks, and MCP configs.

linterconfigmeta
<div align="center"> <img src="editors/vscode/icon.png" alt="agnix" width="128"> <h1>agnix</h1> <p><strong>Lint agent configurations before they break your workflow</strong></p> <p> <a href="https://www.npmjs.com/package/agnix"><img src="https://img.shields.io/npm/v/agnix.svg?color=3C873A" alt="npm"></a> <a href="https://crates.io/crates/agnix-cli"><img src="https://img.shields.io/crates/v/agnix-cli.svg?color=E57324" alt="Crates.io"></a> <a href="https://github.com/agent-sh/agnix/releases"><img src="https://img.shields.io/github/v/release/agent-sh/agnix?color=0A7E8C" alt="Release"></a> <a href="https://github.com/agent-sh/agnix/actions/workflows/ci.yml"><img src="https://github.com/agent-sh/agnix/actions/workflows/ci.yml/badge.svg" alt="CI"></a> <a href="LICENSE-MIT"><img src="https://img.shields.io/badge/license-MIT%2FApache--2.0-64748B.svg" alt="License"></a> <a href="https://github.com/hesreallyhim/awesome-claude-code"><img src="https://awesome.re/mentioned-badge.svg" alt="Mentioned in Awesome Claude Code"></a> </p> </div>

Running open models for your company? Tiyuvta helps with model choice, deployment and optimization, and fine-tuning on your hardware or cloud account.

<p align="center">Catch broken agent configs before your AI tools silently ignore them.<br>455 rules across Claude Code, Codex CLI, OpenCode, Cursor, Copilot, and more -<br>validating CLAUDE.md, SKILL.md, hooks, MCP configs, and other agent files.</p> <p align="center"><strong>Auto-fix</strong> | <strong><a href="https://github.com/marketplace/actions/agnix-ci">GitHub Action</a></strong> | <strong><a href="https://marketplace.visualstudio.com/items?itemName=avifenesh.agnix">VS Code</a> + <a href="https://plugins.jetbrains.com/plugin/30087-agnix">JetBrains</a> + <a href="https://github.com/agent-sh/agnix.nvim">Neovim</a> + <a href="https://zed.dev/extensions?query=agnix">Zed</a></strong></p> <p align="center"> <a href="https://agent-sh.github.io/agnix/"><img src="https://img.shields.io/badge/Docs-Website-2563EB?style=for-the-badge" alt="Website"></a> <a href="https://agent-sh.github.io/agnix/playground"><img src="https://img.shields.io/badge/Try_it-Playground-E91E63?style=for-the-badge" alt="Playground"></a> <a href="https://dev.to/avifenesh/your-ai-agent-configs-are-probably-broken-and-you-dont-know-it-16n1"><img src="https://img.shields.io/badge/Blog-Post-0A0A0A?style=for-the-badge&logo=dev.to" alt="Blog Post"></a> </p> <p align="center"><em>New rules and tool support ship constantly. Follow for real-time updates:</em></p> <p align="center"> <a href="https://x.com/avi_fenesh"><img src="https://img.shields.io/badge/Follow-@avi__fenesh-1DA1F2?style=for-the-badge&logo=x&logoColor=white" alt="Follow on X"></a> </p>

Why agnix?

Your skills don't trigger. Vercel's research found skills invoke at 0% without correct syntax. One wrong field and your skill is invisible.

"Almost right" is the worst outcome. 66% of developers cite it as their biggest AI frustration. Misconfigured agents produce exactly this.

Multi-tool stacks fail silently. Cursor + Claude Code + Copilot each want different formats. A config that works in one tool breaks in another.

Bad patterns get amplified. AI assistants don't ignore wrong configs - they learn from them.

agnix validates all of it - 455 rules sourced from official specs, academic research, and real-world breakage patterns. Auto-fix included.

Want to try it first? Open the playground - paste any agent config, see diagnostics instantly. No install, runs in your browser.

Quick Start

$ npx agnix .
Validating: .

CLAUDE.md:15:1 warning: Generic instruction 'Be helpful and accurate' [fixable]
  help: Remove generic instructions. Claude already knows this.

.claude/skills/review/SKILL.md:3:1 error: Invalid name 'Review-Code' [fixable]
  help: Use lowercase letters and hyphens only (e.g., 'code-review')

Found 1 error, 1 warning
  2 issues are automatically fixable

hint: Run with --fix, --fix-safe, or --fix-unsafe to apply fixes

https://github.com/user-attachments/assets/72d5fe7c-476f-46ea-be64-5785cf6d5600

Install

# npm (recommended, all platforms)
npm install -g agnix

# Homebrew (macOS/Linux)
brew tap agent-sh/agnix && brew install agnix

# pip (or `uvx agnix .` to run without installing)
pip install agnix

# Cargo
cargo install agnix-cli

Pre-built binaries | All install options

Editor Extensions

EditorInstall
VS CodeVS Code Marketplace
JetBrainsJetBrains Marketplace
Neovim{ "agent-sh/agnix", config = function() require("agnix").setup() end }
ZedSearch "agnix" in Extensions

Editor setup guide

GitHub Action

- name: Validate agent configs
  uses: agent-sh/agnix@v0
  with:
    target: 'claude-code'

Usage

agnix .              # Validate current directory
agnix --fix .        # Apply only safe fixes
agnix --fix-safe .   # Explicit safe-only fix mode
agnix --fix-unsafe . # Apply all fixes, including medium and LOW confidence
agnix --dry-run --show-fixes .  # Preview fixes with inline diff output
agnix --strict .     # Strict mode (warnings = errors)
agnix --format github .  # GitHub Actions annotations
agnix explain MCP-018    # Explain a rule and its evidence
agnix --target claude-code .  # Legacy target preset (primarily affects CC-* rules)
agnix --target kiro .         # Legacy target preset (use tools = [...] for tool-only filtering)

Full CLI reference | Full rules reference

Supported Tools

ToolRulesCountConfig Files
Agent SkillsAS-*, CC-SK-*31SKILL.md
Claude CodeCC-*53CLAUDE.md, hooks, agents, plugins
GitHub CopilotCOP-*6.github/copilot-instructions.md, .github/instructions/*.instructions.md
CursorCUR-*16.cursor/rules/*.mdc, .cursorrules, .cursor/hooks.json, .cursor/agents/**/*.md, .cursor/environment.json
KiroKIRO-*, KR-SK-*, KR-AG-*, KR-HK-*, KR-PW-*, KR-MCP-*53.kiro/steering/**/*.md, .kiro/skills/**/SKILL.md, .kiro/agents/**/*.{json,md}, .kiro/hooks/*.kiro.hook, .kiro/settings/mcp.json, .kiro/powers/*/POWER.md
MCPMCP-*12*.mcp.json
AGENTS.mdAGM-*, XP-*13AGENTS.md, AGENTS.local.md, AGENTS.override.md
ClineCLN-*4.clinerules, .clinerules/*.md, .clinerules/*.txt
Gemini CLIGM-*9GEMINI.md, GEMINI.local.md, .gemini/settings.json (hooks), gemini-extension.json (extensions), .geminiignore

Architecture

Rust workspace crates:

  • agnix-rules - rule metadata generated from knowledge-base/rules.json
  • agnix-core - shared validation engine library
  • agnix-cli - command-line interface binary
  • agnix-lsp - language server binary
  • agnix-mcp - MCP server binary
  • agnix-wasm - WebAssembly bindings for browser/runtime integrations

Contributing

Contributions welcome. See CONTRIBUTING.md for the development guide.

Local development loop

Run bash scripts/preflight.sh while editing. It checks formatting, rule bookkeeping, count tables, locale copies, instruction copies, and schema copies before any compilation. It requires Rust with rustfmt, Node.js, Python 3, and Bash. Missing tools fail the check instead of silently skipping it.

Before pushing, run bash scripts/preflight.sh --full. This adds Clippy, workspace tests, the rule efficacy evaluation, the Kiro gate, packaging script tests, generated schema comparison, and source-built agent configuration validation. It reports each check's elapsed time and stops at the first failure. Schema comparison uses a temporary file and never overwrites local edits. Cargo builds, Rust tests, and Rayon default to two workers each; set CARGO_BUILD_JOBS, RUST_TEST_THREADS, or RAYON_NUM_THREADS to override these local defaults.

The existing optional hook installer, sh scripts/setup-hooks.sh, installs a pre-push hook that calls the same full preflight. Git worktrees share the hooks directory, and the installer replaces the existing pre-push hook.

Track the change in an issue, then open a PR with the tested commit, commands, results, and any limits of the evidence. Local preflight does not replace hosted Linux, Windows, macOS, CodeQL, dependency, or review gates. Review the diff and record a factual self-review comment, wait for successful revuto-review and CI, and address every review comment before merging through the PR. A changed head needs fresh checks and review. Report a specific blocker when a required gate cannot finish; keep branch protection intact.

CI and Security cancel superseded runs of the same PR. Their main and scheduled runs use separate groups so newer runs cannot cancel them. The docs deployment workflow keeps its existing shared concurrency group. CodeQL uses Rust's buildless extraction, which runs build scripts and proc macros itself; release binaries are still built by the release workflow.

Report a bug | Request a rule | Good first issues

License

MIT OR Apache-2.0


<p align="center"> <a href="https://github.com/agent-sh/agnix/stargazers">Star this repo</a> to help other developers find agnix. </p>

Want something like this for your team?

We build custom MCPs and Claude skills tailored to private workflows. Get in touch.

Start a Conversation

Ready to Ship Something?

Tell us about your project. We respond within one business day with honest scoping — not a sales pitch.

Get Started