A linter for Claude Code projects. Validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more.
npm install -g claude-code-lint
claudelint init # Creates .claudelintrc.json and .claudelintignore
claudelint check-all # Validate your projectOr install as a project dependency:
npm install --save-dev claude-code-lint
npx claudelint init
npx claudelint check-allUse claudelint as a Claude Code plugin for interactive validation via slash commands.
Inside Claude Code, add the marketplace and install the plugin:
/plugin marketplace add pdugan20/claudelint
/plugin install claudelint@pdugan20-plugins
Or run claudelint install-plugin for guided setup.
See the Plugin Guide for team setup, plugin scopes, and troubleshooting.
- CLAUDE.md -- Size limits, import syntax, circular references, frontmatter
- Skills -- Frontmatter schema, structure, referenced files, security
- Settings -- JSON schema, permissions, tool names, hook configuration
- Hooks -- Event names, script existence, type validation
- MCP Servers -- Transport types, URLs, environment variables
- Plugins -- Manifest schema, directory structure, cross-references
claudelint check-all # Validate everything
claudelint check-all --fix # Auto-fix issues
claudelint check-all --strict # Zero-tolerance mode
claudelint validate-skills --path . # Validate specific component
claudelint list-rules # Browse all rules
claudelint format --check # Check formattingAfter installing as a plugin, use skills via /skill-name or natural language:
| Skill | Description |
|---|---|
validate-all |
Validate all project files |
validate-cc-md |
Validate CLAUDE.md files |
validate-skills |
Validate skill structure and content |
validate-settings |
Validate settings.json |
validate-hooks |
Validate hooks.json |
validate-mcp |
Validate MCP server configuration |
validate-plugin |
Validate plugin.json manifest |
format-cc |
Format Claude Code files |
optimize-cc-md |
Interactively optimize CLAUDE.md |
Full documentation is available at claudelint.com.
Rule documentation is auto-generated from inline metadata in each rule's source code. Run npm run docs:generate to regenerate pages after modifying rules.