Open-source linter software
436 open-source libraries, tools and applications tagged linter, ranked by how closely linter is their primary purpose, then by adoption and maintenance health. Each entry links to a page with sources, use cases and when to choose or avoid it.
436 products, primary matches first, then adoption-weighted; health v2 shown.
| Product | Health v2 | Stars | Maturity |
|---|---|---|---|
| llvm/llvm-project LLVM is a modular, reusable compiler and toolchain infrastructure that provides libraries, tools, and APIs for building compilers, optimize… | 100 | 41132 | active |
| ShellCheck ShellCheck is a command‑line static analysis tool that scans shell scripts for syntax errors, semantic problems, and portability issues. It… | 68 | 40190 | active |
| ShellCheck ShellCheck is a GPLv3 static analysis tool that finds bugs, pitfalls, and style issues in bash/sh shell scripts. It runs from the terminal,… | 68 | 40190 | stable |
| alibaba/p3c P3C is a collection of Alibaba Java coding guidelines implemented as PMD rules and IDE plugins. It helps enforce best practices and catch c… | 32 | 30851 | active |
| JavaScript Standard Style JavaScript Standard Style is a zero-configuration JavaScript style guide that ships as a CLI linter and automatic code fixer built on ESLin… | 33 | 29432 | stable |
| PostCSS PostCSS is a JavaScript framework for transforming CSS via a plugin ecosystem, parsing stylesheets into an AST that plugins can analyze and… | 96 | 28975 | stable |
| google-labs-code/design.md DESIGN.md is a format specification for describing a visual identity and design system to coding agents, combining YAML design tokens with … | 77 | 28380 | active |
| Biome Biome is a fast, Rust‑based toolchain for web projects that provides code formatting and linting. It can be used via a command‑line interfa… | 91 | 25931 | active |
| Biome Biome is a fast web toolchain written in Rust that provides a code formatter (97% Prettier-compatible) and a linter with 500+ rules for Jav… | 91 | 25931 | active |
| Oxc Oxc is a Rust‑based collection of high‑performance JavaScript and TypeScript tools, including a parser, linter, formatter, transformer, min… | 95 | 23109 | active |
| .NET Compiler Platform (Roslyn) Roslyn is the open-source .NET Compiler Platform implementing the C# and Visual Basic compilers with rich code analysis APIs. It exposes co… | 67 | 20723 | stable |
| realm/SwiftLint SwiftLint is a tool that enforces Swift style and conventions based on community-accepted style guide rules. It is built on SwiftSyntax wit… | 95 | 19746 | stable |
| LunarVim LunarVim is an opinionated IDE layer for Neovim that ships with sane defaults for autocompletion, LSP, linting, formatting, debugging, fuzz… | 30 | 19257 | active |
| Conventional Changelog commitlint is a CLI tool and library that lints git commit messages against the conventional commit format, with shareable npm-based config… | 99 | 18776 | active |
| NVIDIA/SkillSpector SkillSpector is a security scanner for AI agent skills used by Claude Code, Codex CLI, Gemini CLI, and MCP-based agents. It detects vulnera… | 79 | 18115 | active |
| Semgrep Semgrep is a fast, open-source static analysis tool that searches code, finds bugs, and enforces secure coding standards using rules that l… | 95 | 16978 | active |
| rust-lang/rust-analyzer rust-analyzer is a Language Server Protocol implementation providing IDE features for Rust, including code completion, go-to-definition, fi… | 94 | 16902 | stable |
| Harper Harper is an open-source, offline English grammar checker written in Rust that runs entirely on-device with millisecond lint times. It ship… | 91 | 16712 | active |
| typescript-eslint/typescript-eslint typescript-eslint is a monorepo providing the tooling that enables ESLint, Prettier, and other JavaScript tools to parse and lint TypeScrip… | 95 | 16420 | stable |
| vim-go vim-go is a Vim/Neovim plugin that adds full Go language support, including build, test, run, debug (delve), formatting, completion, and go… | 64 | 16219 | active |
| ast-grep ast-grep is a fast Rust-based CLI tool for structural search, linting, and rewriting of code using AST patterns instead of plain text match… | 99 | 16189 | active |
| microsoft/pyright Pyright is a full-featured, standards-based static type checker for Python built by Microsoft, designed for high performance on large codeb… | 96 | 15654 | active |
| pre-commit pre-commit is a framework for managing and maintaining multi-language Git pre-commit hooks. It automatically installs and runs hooks writte… | 88 | 15593 | stable |
| millionco/react-doctor React Doctor is a deterministic static analyzer CLI that scans React, React Native, Next.js, and related codebases for correctness, perform… | 76 | 14909 | active |
| lint-staged/lint-staged lint-staged is an npm CLI tool that runs arbitrary shell tasks, such as formatters and linters, against only the files staged in git. It is… | 97 | 14741 | stable |
| PHPStan PHPStan is an open-source static analysis tool for PHP that discovers bugs in code without running it. It understands PHPDocs, supports gen… | 95 | 14125 | stable |
| dense-analysis/ale ALE (Asynchronous Lint Engine) is a Vim/Neovim plugin that provides asynchronous linting and syntax checking while you type, plus code fixi… | 63 | 14020 | active |
| rust-lang/rust-clippy Clippy is the official Rust linter, a collection of over 800 lints that catch common mistakes and suggest more idiomatic code. It integrate… | 76 | 13558 | stable |
| PHP-CS-Fixer/PHP-CS-Fixer PHP CS Fixer is a command-line tool that detects and automatically fixes PHP coding standards issues. It ships with built-in rule sets (PER… | 93 | 13555 | stable |
| RuboCop RuboCop is a Ruby static code analyzer (linter) and code formatter that enforces the community Ruby Style Guide. It can automatically fix m… | 100 | 12914 | stable |
| Hadolint Hadolint is a smart Dockerfile linter written in Haskell that parses Dockerfiles into an AST and applies best-practice rules. It also lints… | 95 | 12480 | active |
| webpro-nl/knip Knip is a CLI linter that finds unused files, dependencies, and exports in JavaScript and TypeScript projects, including monorepos. It uses… | 93 | 12401 | active |
| stylelint/stylelint Stylelint is a CSS linter with over 100 built-in rules that helps developers avoid errors and enforce style conventions. It supports plugin… | 96 | 11527 | stable |
| super-linter/super-linter Super-linter is a containerized collection of curated linters and code analyzers for many programming languages, runnable as a GitHub Actio… | 88 | 10608 | active |
| mason.nvim mason.nvim is a Neovim plugin providing a portable package manager for installing and managing external editor tooling such as LSP servers,… | 80 | 10485 | active |
| SQLFluff SQLFluff is a dialect-flexible, configurable SQL linter and auto-formatter for Python. It supports many SQL dialects (BigQuery, Snowflake, … | 95 | 9955 | stable |
| reviewdog/reviewdog reviewdog is an automated code review CLI that integrates with any linter or static analysis tool regardless of programming language. It pa… | 87 | 9668 | active |
| Checkstyle Checkstyle is a static analysis tool that checks Java source code against configurable coding standards and style rules, such as naming, im… | 99 | 9613 | active |
| jsx-eslint/eslint-plugin-react An ESLint plugin providing React and JSX-specific linting rules for JavaScript codebases. It enforces best practices, catches common bugs, … | 74 | 9292 | active |
| securego/gosec gosec is a security scanner for Go source code that inspects the AST and SSA representations to detect common security problems. It include… | 92 | 8961 | active |
| nicklockwood/SwiftFormat SwiftFormat is a command-line tool and library for reformatting Swift code on macOS, Linux, and Windows. It also ships as an Xcode source e… | 96 | 8932 | active |
| prek prek is a fast Git hook manager written in Rust that runs hooks on your code before commits, on demand, or in CI, managing the tools and de… | 86 | 8644 | active |
| PyCQA/bandit Bandit is a security-oriented static analysis tool that finds common security issues in Python code. It parses each file into an AST, runs … | 82 | 8285 | active |
| golang/tools The golang.org/x/tools module provides packages and commands for static analysis of Go programs, including SSA IR, call graphs, and a modul… | 95 | 8007 | active |
| XO XO is an opinionated JavaScript/TypeScript linter that wraps ESLint with sensible, preconfigured defaults and bundled plugins. It works as … | 96 | 7988 | active |
| repowise-dev/repowise Repowise is a Python-based codebase intelligence tool that indexes code structure, call graphs, git history, tests, and architectural decis… | 78 | 7464 | active |
| Done-0/fuck-u-code A CLI code-quality analyzer that scores codebases 0-100 and produces humorous 'legacy-mess' reports across 14 languages using tree-sitter A… | 71 | 7303 | active |
| google/error-prone Error Prone is Google's static analysis tool that hooks into the Java compiler to catch common programming mistakes as compile-time errors.… | 93 | 7252 | active |
| sverweij/dependency-cruiser A CLI tool that analyzes and validates dependencies in JavaScript, TypeScript, LiveScript, and CoffeeScript projects against user-defined r… | 97 | 7237 | active |
| facebook/pyrefly Pyrefly is a fast Python type checker and language server written in Rust, providing CLI-based type checking plus IDE features like code na… | 84 | 7094 | stable |
| detekt detekt is a static code analysis tool for the Kotlin programming language that detects code smells and enforces configurable rule sets. It … | 67 | 7089 | active |
| PyCQA/isort isort is a Python utility and library that automatically sorts imports alphabetically and separates them into sections by type. It ships as… | 95 | 6953 | stable |
| Staticcheck Staticcheck is an advanced linter for the Go programming language that uses static analysis to find bugs, performance issues, and simplific… | 88 | 6906 | active |
| ktlint/ktlint Ktlint is an opinionated Kotlin linter with a built-in formatter that enforces a standard code style without configuration. It supports .ed… | 78 | 6765 | active |
| vuejs/language-tools Vue Language Tools is the official language tooling monorepo for Vue.js, providing a VS Code extension, a language server, and the vue-tsc … | 96 | 6722 | active |
| zizmor zizmor is a static analysis tool for CI/CD configurations, primarily GitHub Actions workflows, as well as Dependabot and pre-commit configs… | 87 | 6714 | active |
| larastan/larastan Larastan is a PHPStan extension that adds code analysis to Laravel applications, understanding Laravel's runtime magic to find bugs before … | 99 | 6544 | active |
| microsoft/rushstack Rush Stack is a Microsoft-hosted monorepo of tools for managing large-scale TypeScript monorepos, including the Rush build orchestrator, He… | 77 | 6500 | active |
| derailed/popeye Popeye is a read-only CLI tool that scans live Kubernetes clusters and reports potential issues with deployed resources and configurations.… | 56 | 6397 | active |
| markdownlint markdownlint is a Node.js static analysis library that checks Markdown/CommonMark files against a configurable library of style rules, supp… | 77 | 6375 | stable |
| antfu/eslint-config A shareable ESLint flat config preset by Anthony Fu that provides opinionated linting and auto-fix formatting for JavaScript, TypeScript, V… | 90 | 6271 | stable |
| Vale Vale is a fast, cross-platform command-line linter for prose that enforces editorial style guides on documentation. It is markup-aware, par… | 98 | 6182 | active |
| import-js/eslint-plugin-import An ESLint plugin providing rules that validate ES2015+ import/export syntax, catching misspelled file paths, import names, and module resol… | 64 | 5953 | stable |
| vimeo/psalm Psalm is an open-source static analysis tool for PHP that finds type-related bugs and security vulnerabilities through type inference and t… | 98 | 5896 | active |
| microsoft/typespec TypeSpec is a Microsoft-built, extensible DSL and toolchain for defining cloud service APIs and data shapes as a single source of truth. It… | 95 | 5891 | active |
| TFLint TFLint is a pluggable linter for Terraform that finds possible errors, deprecated syntax, and unused declarations, and enforces best practi… | 89 | 5827 | active |
| pylint Pylint is a static code analyzer for Python that checks code without running it. It detects errors, enforces coding standards like PEP8, an… | 97 | 5726 | stable |
| microsoft/typescript-go The staging repository for TypeScript 7.0, a native Go port of the TypeScript compiler (tsgo/tsc), offering dramatically faster type checki… | 10 | 26180 | maintenance |
| diffplug/spotless Spotless is a code formatting plugin for Gradle, Maven, and SBT that checks and automatically fixes formatting violations across many langu… | 95 | 5686 | stable |
| nunomaduro/phpinsights PHP Insights is a console tool that performs instant static analysis of PHP code quality, coding style, architecture, and complexity. It wo… | 92 | 5635 | active |
| phan/phan Phan is a static analyzer for PHP that finds bugs in code before it runs, focusing on type compatibility checking and minimizing false posi… | 99 | 5630 | active |
| mgechev/revive Revive is a fast, configurable, and extensible linter for Go, serving as a drop-in replacement for golint. It supports TOML-based rule conf… | 90 | 5554 | active |
| PMD PMD is an extensible multilanguage static code analyzer that finds common programming flaws like unused variables, empty catch blocks, and … | 97 | 5494 | stable |
| dmmulroy/anti-slop A set of opinionated Oxlint plugin rules that reject low-evidence TypeScript and JavaScript patterns, designed to be vendored into a reposi… | 58 | 5492 | active |
| python-mode/python-mode Python-mode is a Vim plugin that turns Vim into a Python IDE, bundling linting, formatting, code completion, refactoring, documentation loo… | 57 | 5466 | active |
| google/gts gts is Google's TypeScript style guide packaged as a zero-configuration CLI tool that bundles ESLint linting, Prettier formatting, and an o… | 52 | 5290 | active |
| supabase-community/postgres-language-server A Language Server Protocol implementation and toolchain for Postgres SQL, built on libpg_query for 100% syntax compatibility. It provides e… | 95 | 5260 | active |
| sindresorhus/eslint-plugin-unicorn An ESLint plugin offering more than 300 powerful lint rules for JavaScript and TypeScript, with some rules also covering CSS, HTML, JSON, M… | 97 | 5254 | active |
| Credo Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching. It highlights refactoring oppor… | 87 | 5222 | stable |
| fallow Fallow is a Rust-based CLI that performs static analysis of TypeScript and JavaScript codebases, detecting unused code, duplication, circul… | 79 | 5189 | active |
| rome/tools Rome is a unified toolchain for JavaScript, TypeScript, and web projects, combining a linter, formatter, and other developer tools in a sin… | 10 | 23372 | maintenance |
| PyCQA/pycodestyle pycodestyle (formerly pep8) is a simple Python style guide checker that validates code against PEP 8 conventions. It ships as a single Pyth… | 66 | 5168 | stable |
| alex alex is a JavaScript-based linter that catches insensitive, inconsiderate writing such as gendered, ableist, or polarizing phrasing in text… | 23 | 5105 | active |
| didi/booster Booster is a lightweight, extensible quality optimization toolkit for mobile applications built as a Gradle plugin. It uses bytecode manipu… | 62 | 5075 | active |
| microsoft/tsdoc TSDoc is a proposed standard for TypeScript doc comments, with an open-source reference parser (@microsoft/tsdoc) that tools can use to ext… | 66 | 4968 | active |
| jendrikseipp/vulture Vulture is a static analysis CLI tool that finds unused (dead) code in Python programs, including unused functions, classes, variables, imp… | 78 | 4852 | active |
| anordal/shellharden Shellharden is a Rust CLI tool that syntax-highlights bash scripts and semi-automatically rewrites them to ShellCheck conformance, mainly b… | 75 | 4809 | stable |
| include-what-you-use/include-what-you-use Include What You Use (IWYU) is a Clang-based tool that analyzes #include directives in C and C++ source files. It detects superfluous inclu… | 90 | 4778 | active |
| hhatto/autopep8 autopep8 is a Python tool that automatically formats Python code to conform to the PEP 8 style guide. It uses pycodestyle to detect formatt… | 61 | 4658 | stable |
| GritQL GritQL is a declarative query language and Rust-based CLI for searching, linting, and rewriting source code using pattern matching over AST… | 82 | 4602 | active |
| eslint-plugin-vue The official ESLint plugin for Vue.js that lints the <template> and <script> sections of .vue single file components as well as Vue code in… | 98 | 4588 | stable |
| amperser/proselint proselint is a command-line linter for English prose that scans text files for style, usage, and clarity issues based on advice from renown… | 68 | 4581 | active |
| Lua Language Server A Language Server Protocol implementation for Lua, written in Lua, providing features like autocompletion, type checking, diagnostics, form… | 100 | 4391 | stable |
| k1LoW/tbls tbls is a CI-friendly command-line tool written in Go that automatically generates database documentation in GFM/Markdown and other formats… | 98 | 4359 | active |
| phpro/grumphp GrumPHP is a PHP code-quality tool implemented as a Composer plugin that registers git hooks in your repository. When a developer commits c… | 89 | 4316 | active |
| rhysd/actionlint actionlint is a static checker for GitHub Actions workflow files, written in Go. It validates syntax, type-checks ${{ }} expressions, verif… | 78 | 4265 | active |
| crate-ci/typos typos is a fast source code spell checker written in Rust that finds and corrects spelling mistakes in codebases. It is designed for low fa… | 94 | 4182 | active |
| troessner/reek Reek is a code smell detector for Ruby that examines classes, modules, and methods and reports code smells like uncommunicative names, long… | 75 | 4131 | active |
| uber/NullAway NullAway is an Error Prone plugin that performs fast, annotation-based nullability checking for Java code to eliminate NullPointerException… | 99 | 4125 | active |
| asottile/pyupgrade pyupgrade is a CLI tool and pre-commit hook that automatically rewrites Python source code to use modern syntax for newer Python versions. … | 76 | 4115 | active |
page 1 / 5 next →