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 |
|---|---|---|---|
| verilator/verilator Verilator is an open-source Verilog/SystemVerilog simulator and lint system that compiles RTL designs into fast, multithreaded C++ or Syste… | 77 | 4021 | stable |
| sds/overcommit Overcommit is a fully configurable and extendable Git hook manager written in Ruby. It supports a wide variety of built-in hooks, repo-spec… | 90 | 4004 | active |
| SpotBugs SpotBugs is a static analysis tool that finds bugs in Java bytecode, serving as the community-maintained successor to the abandoned FindBug… | 99 | 3954 | active |
| ansible/ansible-lint ansible-lint is a command-line linter that checks Ansible playbooks and roles for practices and behavior that could be improved, and can au… | 98 | 3918 | active |
| uber-go/nilaway NilAway is a static analysis tool from Uber that detects potential nil pointer panics in Go code at compile time rather than runtime. It us… | 72 | 3918 | active |
| PyCQA/flake8 Flake8 is a Python CLI tool that combines pycodestyle, pyflakes, and mccabe into a single command for checking code style and quality. It s… | 75 | 3824 | stable |
| Sorbet Sorbet is a fast, gradual static type checker for Ruby, built in C++ at Stripe. It ships as a CLI (srb tc) plus a runtime gem for type anno… | 96 | 3806 | active |
| antonbabenko/pre-commit-terraform A collection of git hooks for Terraform, OpenTofu, and Terragrunt driven by the pre-commit framework. It automatically formats code and run… | 98 | 3784 | active |
| webhintio/hint webhint is a customizable linting engine for the web that checks sites and code for accessibility, performance, security, cross-browser com… | 61 | 3698 | active |
| jslint-org/jslint JSLint is Douglas Crockford's JavaScript code quality and coverage tool, distributed as a single zero-dependency, zero-config .mjs file. It… | 94 | 3656 | active |
| DetachHead/basedpyright basedpyright is a fork of Microsoft's pyright static type checker for Python with additional type checking improvements and pylance feature… | 89 | 3627 | active |
| jsx-eslint/eslint-plugin-jsx-a11y An ESLint plugin that statically checks JSX elements for accessibility (a11y) issues in React applications. It analyzes the AST to catch co… | 57 | 3625 | active |
| stackrox/kube-linter KubeLinter is a static analysis CLI tool that checks Kubernetes YAML files, Helm charts, and Kustomize manifests against security and produ… | 84 | 3527 | active |
| carthage-software/mago Mago is an extremely fast PHP toolchain written in Rust that provides linting, formatting, static analysis, and automated fixes through a u… | 86 | 3524 | active |
| whitesmith/rubycritic RubyCritic is a Ruby gem that wraps static analysis tools like Reek, Flay, and Flog to generate a quality report of Ruby code. It provides … | 76 | 3503 | active |
| dotnet/roslynator Roslynator is a set of code analysis tools for C# built on the Roslyn compiler platform. It ships as IDE extensions for Visual Studio and V… | 94 | 3485 | active |
| adrienverge/yamllint yamllint is a Python-based linter for YAML files that checks syntax validity plus style issues like key duplication, line length, trailing … | 83 | 3472 | stable |
| haydenbleasel/ultracite Ultracite is a highly opinionated, zero-configuration preset for JavaScript/TypeScript linting and formatting that wraps Biome, ESLint + Pr… | 95 | 3329 | active |
| HTMLHint HTMLHint is a static code analysis (linting) tool for HTML, configurable via a .htmlhintrc file with many built-in rules. It runs as a CLI,… | 88 | 3312 | active |
| goodwithtech/dockle Dockle is a container image linter written in Go that checks Docker images against security best practices and CIS Benchmarks. It runs as a… | 63 | 3298 | active |
| sentrux/sentrux Sentrux is a pure-Rust static analysis tool that computes a single architectural quality score (0–10,000) from five graph-theoretic root-ca… | 56 | 3289 | active |
| none-ls.nvim none-ls.nvim is the community-maintained fork of null-ls.nvim, a Neovim plugin that turns Neovim itself into a language server so non-LSP t… | 68 | 3262 | active |
| stoplightio/spectral Spectral is a flexible JSON/YAML linter for creating automated API style guides, with built-in rulesets for OpenAPI v2/v3.x, AsyncAPI v2.x,… | 95 | 3220 | active |
| textlint textlint is a pluggable linting tool for natural language text, similar to ESLint but for prose instead of code. It supports Markdown and p… | 96 | 3201 | active |
| qltysh/qlty Qlty CLI is a multi-language code quality tool written in Rust that unifies linting, auto-formatting, maintainability analysis, and securit… | 95 | 3194 | active |
| amilajack/eslint-plugin-compat An ESLint plugin that checks whether the JavaScript APIs used in your code are supported by your target browsers, using browserslist and ca… | 85 | 3184 | active |
| laravel/pint Laravel Pint is an opinionated PHP code style fixer built on top of PHP-CS-Fixer. It provides a zero-configuration CLI for keeping PHP code… | 97 | 3169 | active |
| peteromallet/desloppify Desloppify is a multi-language codebase health scanner and technical debt tracker designed as an agent harness for AI coding agents. It com… | 63 | 3153 | active |
| mozilla/web-ext web-ext is Mozilla's command line tool for building, running, linting, signing, and testing WebExtensions. It streamlines Firefox extension… | 97 | 3137 | active |
| zegl/kube-score kube-score is a static code analysis tool for Kubernetes object definitions that scores manifests and Helm charts against reliability and s… | 57 | 3105 | active |
| willcrichton/flowistry Flowistry is a Rust IDE plugin (VS Code extension plus rustc plugin) that performs modular information flow analysis to determine which cod… | 57 | 3074 | active |
| dotnet/vscode-csharp The official C# extension for Visual Studio Code, providing rich language support via a Language Server Protocol server powered by Roslyn a… | 94 | 3072 | active |
| deptrac/deptrac Deptrac is a static code analysis tool for PHP that helps you communicate, visualize, and enforce architectural decisions in your projects.… | 96 | 3037 | active |
| azat-io/eslint-plugin-perfectionist An ESLint plugin that provides rules for sorting various code elements such as objects, imports, TypeScript types, enums, JSX props, and mo… | 96 | 2931 | active |
| Standard Ruby Standard Ruby is a linter and formatter for Ruby built on RuboCop, offering a deliberately unconfigurable, opinionated ruleset to eliminate… | 65 | 2926 | active |
| wemake-services/wemake-python-styleguide wemake-python-styleguide is the strictest and most opinionated Python linter, implemented as a flake8 plugin. It enforces a comprehensive s… | 93 | 2918 | active |
| DotNetAnalyzers/StyleCopAnalyzers StyleCop.Analyzers implements StyleCop style rules as Roslyn analyzers for C#, distributed as a NuGet package. It includes code fixes for m… | 86 | 2860 | active |
| WordPress/WordPress-Coding-Standards A set of PHP_CodeSniffer rules (sniffs) that enforce WordPress coding conventions in PHP code. It integrates with PHPCS, IDEs, and CI pipel… | 86 | 2834 | active |
| teal-language/tl tl is the compiler and type checker for Teal, a statically-typed dialect of Lua that adds type annotations, generics, and records while com… | 74 | 2829 | active |
| tach-org/tach Tach is a CLI tool, written in Rust, that enforces dependency rules and public interfaces between Python modules to support a modular monol… | 86 | 2827 | active |
| bash-lsp/bash-language-server A Language Server Protocol implementation for Bash that provides IDE-like features such as completion, jump to declaration, diagnostics, an… | 98 | 2795 | active |
| mfussenegger/nvim-lint An asynchronous linter plugin for Neovim (>= 0.9.5) that spawns external linters, parses their output, and reports results via vim.diagnost… | 73 | 2787 | active |
| protectai/vulnhuntr Vulnhuntr is a Python CLI tool that uses large language models combined with static code analysis to autonomously discover exploitable vuln… | 23 | 2775 | active |
| vim-syntastic/syntastic Syntastic is a Vim plugin that runs external syntax checkers and linters on files and displays errors in the location list. It is now depre… | 10 | 11212 | maintenance |
| wesbos/eslint-config-wesbos A shareable ESLint and Prettier configuration package by Wes Bos that lints and auto-fixes JavaScript, TypeScript, and React code. It bundl… | 32 | 2700 | active |
| Pronto Pronto is a Ruby gem that runs automated code review by analyzing only the changes in a diff rather than the whole codebase. It integrates … | 72 | 2672 | active |
| ray-x/go.nvim A feature-rich Neovim plugin for Go development, written in Lua, integrating gopls LSP, treesitter, DAP debugging, and AI assistance. It co… | 76 | 2661 | active |
| aws-cloudformation/cfn-lint cfn-lint is a Python CLI tool that validates AWS CloudFormation templates (YAML/JSON) against resource provider schemas and best-practice c… | 96 | 2644 | active |
| AlloyTeam/eslint-config-alloy A progressive ESLint configuration package from AlloyTeam for JavaScript, TypeScript, React, and Vue projects. It delegates style rules to … | 23 | 2627 | active |
| alibaba/kiwi Kiwi is an end-to-end internationalization (i18n) solution from Alibaba, comprising kiwi-intl (a framework-agnostic runtime library), kiwi-… | 68 | 2625 | active |
| oxsecurity/megalinter MegaLinter is an open-source code quality tool that runs over 50 linters and formatters covering 50 languages, 22 formats, and 21 tooling f… | 93 | 2615 | active |
| Python LSP Server A Python 3.9+ implementation of the Language Server Protocol, maintained by the Spyder IDE team as a community fork of python-language-serv… | 73 | 2599 | active |
| terryyin/lizard Lizard is an extensible cyclomatic complexity analyzer supporting many popular languages including C/C++, Java, Python, and JavaScript, wit… | 95 | 2561 | active |
| Flycheck Flycheck is a modern on-the-fly syntax checking extension for GNU Emacs that runs linters and LSP diagnostics as you edit. It supports many… | 93 | 2535 | active |
| dosisod/refurb Refurb is a command-line linter that suggests modern, idiomatic replacements for older or verbose Python code patterns. It uses type inform… | 80 | 2532 | active |
| kisielk/errcheck errcheck is a static analysis tool for Go that finds silently ignored error return values. It can be run as a CLI or integrated via the go/… | 91 | 2531 | active |
| lydell/eslint-plugin-simple-import-sort An ESLint plugin that sorts JavaScript and TypeScript imports (and exports) via eslint --fix. It requires no extra tooling and handles comm… | 74 | 2463 | active |
| phpmd/phpmd PHPMD is a static analysis tool for PHP source code, a PHP equivalent of the Java PMD tool built on top of PHP Depend's metrics. It scans c… | 66 | 2455 | stable |
| find-sec-bugs/find-sec-bugs Find Security Bugs is a SpotBugs plugin that performs static security analysis of Java bytecode, detecting 144 vulnerability patterns inclu… | 52 | 2450 | active |
| EmbarkStudios/cargo-deny cargo-deny is a Cargo plugin (cargo subcommand) for linting Rust dependency graphs. It checks crate licenses against allow/deny lists, bans… | 94 | 2449 | active |
| codespell-project/codespell codespell is a Python CLI tool that finds and fixes common misspellings in source code and text files using a curated dictionary of frequen… | 86 | 2433 | active |
| loeffel-io/ls-lint ls-lint is an extremely fast directory and filename linter written in Go that enforces naming conventions via simple .ls-lint.yml configura… | 89 | 2430 | active |
| tamasfe/taplo Taplo is a versatile TOML v1.0.0 toolkit written in Rust, providing a parser, analyzer, and formatter usable as a library, CLI, VS Code ext… | 73 | 2403 | active |
| eslint-community/eslint-plugin-security An ESLint plugin providing security-focused linting rules for Node.js code. It flags potential security hotspots like eval usage, unsafe ch… | 90 | 2378 | active |
| Metals Metals is a Scala language server implementing the Language Server Protocol to bring rich IDE features to any supported text editor. It pro… | 92 | 2332 | active |
| jshint/jshint JSHint is a community-driven static code analysis tool that detects errors and potential problems in JavaScript code. It is distributed as … | 23 | 9076 | maintenance |
| PHPCompatibility A set of sniffs (rules) for PHP_CodeSniffer that checks PHP code for cross-version compatibility. It analyses codebases for compatibility w… | 77 | 2303 | active |
| wemake-services/wemake-django-template A bleeding-edge Cookiecutter template for scaffolding Django projects with a strong focus on code quality, security, and scalability. It sh… | 66 | 2275 | active |
| yandex/gixy Gixy is a Python-based static analyzer for Nginx configuration files that detects security misconfigurations and flaws. It ships as a CLI t… | 23 | 8565 | maintenance |
| PowerShell/PSScriptAnalyzer PSScriptAnalyzer is a static code checker (linter and formatter) for PowerShell scripts and modules, maintained by the PowerShell team. It … | 76 | 2159 | active |
| glebm/i18n-tasks A Ruby gem that uses static analysis to find missing and unused i18n translation keys in projects using the ruby i18n gem (default in Rails… | 83 | 2158 | active |
| pmizio/typescript-tools.nvim A pure Lua NeoVim plugin that replaces typescript-language-server by communicating directly with Tsserver using its native protocol, like V… | 52 | 2151 | active |
| rubberduck-vba/Rubberduck Rubberduck is a COM add-in that modernizes the legacy Visual Basic Editor (VBE) used for VBA and VB6 development. It provides static code a… | 10 | 2126 | active |
| dotenv-linter/dotenv-linter A lightning-fast linter for .env files written in Rust. It checks, fixes, and diffs environment variable files for problems like duplicated… | 51 | 2112 | active |
| JamieMason/syncpack Syncpack is a Rust-based command-line tool that finds and fixes inconsistent dependency versions across package. files in large JavaScript … | 96 | 2102 | active |
| platers/obsidian-linter An Obsidian.md plugin that formats and styles Markdown notes with a focus on configurability and extensibility. It provides toggleable rule… | 96 | 2097 | active |
| Calva Calva is a Visual Studio Code extension providing a REPL-powered IDE for Clojure and ClojureScript development. It bundles inline evaluatio… | 94 | 2089 | active |
| prospector-dev/prospector Prospector is a Python static analysis tool that aggregates results from tools like Pylint, pycodestyle, and McCabe to report errors, poten… | 93 | 2083 | active |
| markdownlint/markdownlint markdownlint (mdl) is a Ruby-based command-line tool that checks Markdown files and flags style issues according to configurable rules. It … | 75 | 2077 | active |
| go-critic/go-critic go-critic is an opinionated Go source code linter offering nearly 100 checks for bugs, performance, and style issues not covered by other l… | 93 | 2076 | active |
| francoismassart/eslint-plugin-tailwindcss An ESLint plugin that enforces best practices and consistency for Tailwind CSS usage, supporting Tailwind CSS v4. It provides rules for cla… | 93 | 2072 | active |
| CYB3RMX/Qu1cksc0pe Qu1cksc0pe is an all-in-one malware analysis tool that statically and dynamically analyzes many file types, including Windows/Linux/macOS e… | 75 | 2067 | active |
| SublimeLinter SublimeLinter is the code linting framework for the Sublime Text editor. It provides the core infrastructure for running external linters a… | 88 | 2039 | active |
| Closure Compiler Google Closure Compiler is a JavaScript-to-JavaScript compiler that parses, analyzes, and optimizes code by removing dead code, rewriting, … | 77 | 7693 | maintenance |
| jupyter-lsp/jupyterlab-lsp A JupyterLab extension that integrates Language Server Protocol servers to bring IDE-like coding assistance to notebooks and files. It prov… | 76 | 2002 | active |
| eslint-stylistic/eslint-stylistic ESLint Stylistic is a community-maintained collection of stylistic and formatting ESLint rules for JavaScript, TypeScript, and JSX, ported … | 84 | 2001 | active |
| Nu Html Checker (vnu) The Nu Html Checker (vnu) is the W3C/WHATWG-endorsed tool for validating HTML, CSS, and SVG documents. It runs as a command-line batch chec… | 86 | 1988 | stable |
| codecadwallader/codemaid CodeMaid is an open source Visual Studio extension that cleans up, formats, and reorganizes code across many languages including C#, C++, F… | 40 | 1988 | active |
| rafi/vim-config A carefully crafted, ready-to-use Neovim configuration built on LazyVim with fast startup (~30-45ms), LSP, completion, and many editor plug… | 75 | 1975 | active |
| microsoft/vscode-eslint The official VS Code extension that integrates ESLint linting into Visual Studio Code. It validates JavaScript and TypeScript files in real… | 86 | 1961 | active |
| Caliptra Verible is a suite of SystemVerilog (IEEE 1800-2017) developer tools built in C++, including a parser, style linter, formatter, and Languag… | 93 | 1956 | active |
| nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect An ESLint (and Oxlint) plugin that detects unnecessary React useEffect calls based on React's 'You Might Not Need an Effect' guidance. It a… | 80 | 1920 | active |
| Shopify/packwerk Packwerk is a Ruby gem from Shopify that enforces architectural boundaries and modularization in Rails applications by grouping files into … | 82 | 1917 | active |
| cortinico/kotlin-android-template A GitHub template repository for bootstrapping Android/Kotlin projects with a preconfigured Gradle Kotlin DSL build, sample app and library… | 76 | 1913 | active |
| oxalica/nil nil is a Nix language server (LSP) written in Rust that provides incremental analysis assistance for writing Nix code. It integrates with e… | 78 | 1912 | active |
| PowerShell/vscode-powershell The official Visual Studio Code extension providing rich PowerShell language support, including IntelliSense, syntax highlighting, and debu… | 68 | 1910 | active |
| KronicDeth/intellij-elixir An Elixir language plugin for the IntelliJ Platform, providing IDE support across JetBrains IDEs like IntelliJ IDEA, RubyMine, WebStorm, an… | 96 | 1898 | active |
| airbus-seclab/bincat BinCAT is a static binary code analysis toolkit that performs value analysis, taint analysis, type reconstruction, and use-after-free/doubl… | 23 | 1876 | active |
| aquasecurity/tfsec tfsec is a static analysis security scanner for Terraform code that detects misconfigurations across major cloud providers using hundreds o… | 60 | 7046 | maintenance |
| clj-kondo/clj-kondo clj-kondo is a static analyzer and linter for Clojure, ClojureScript, and EDN code that detects errors and style issues without executing t… | 91 | 1861 | active |