Getting Started
claudelint is a linter for Claude Code projects. It validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, agents, and more — surfacing misconfigurations and standardizing your setup before issues cause silent failures.
Set Up with Claude
Let Claude walk you through setup. Copy this prompt into a Claude Code session:
Set up claudelint for this project to validate my Claude Code files.
Follow the setup guide at https://claudelint.com/setup-guide.mdClaude will read the guide, create a task list, and walk you through each step — install location, rule preset, hooks, validation, and plugin installation.
Manual Setup
If you prefer to install and configure claudelint yourself, follow these steps.
1. Install
npm install --save-dev claude-code-lintOr install globally:
npm install -g claude-code-lint2. Configure
claudelint initThis creates .claudelintrc.json with the recommended preset and .claudelintignore for excluding files. Add .claudelint-cache/ to your .gitignore if it isn't there already -- claudelint uses this directory for caching and it should not be committed. See Configuration for presets, per-rule overrides, and advanced options.
3. Validate
claudelintThat's it. claudelint scans your project and reports any issues. See the CLI Reference for all available commands and flags.
4. Optional: Claude Code Plugin
Install the claudelint plugin for slash commands like /validate-all and /optimize-cc-md directly inside Claude Code sessions. See the Plugin Guide for installation.
5. Optional: SessionStart Hook
Automatically validate your project every time a Claude Code session begins:
claudelint init --hooksSee Hooks for details and alternative hook types.
What Gets Validated
claudelint checks 10 different aspects of your Claude Code project:
- CLAUDE.md - File size, imports, paths, content structure
- Skills - Names, descriptions, security, versioning
- Settings - Permissions, environment variables
- Hooks - Event types, script references
- MCP Servers - Transport types, URLs, environment variables
- Plugins - Manifest structure, component references
- Agents - Names, descriptions, tools, models
- LSP - Transport config, language IDs, extensions
- Output Styles - Name validation
- Commands - Migration checks
Next Steps
- Configuration - Presets, per-rule overrides, ignore patterns
- Rules Overview - Browse all 114 rules
- CI/CD Integration - GitHub Actions, GitLab CI, SARIF output
- Auto-fix - Automatically fix common issues
- Custom Rules - Write your own validation rules
- Why claudelint? - What problems it solves and how