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 |
|---|---|---|---|
| Intelephense Intelephense is a high-performance PHP language server implementing the Language Server Protocol, distributed primarily as a Visual Studio … | 85 | 1860 | active |
| cpplint/cpplint Cpplint is a command-line static code checker that checks C/C++ files for style issues according to Google's C++ style guide. It is a commu… | 78 | 1854 | active |
| nccgroup/sobelow Sobelow is a security-focused static analysis tool for Elixir and the Phoenix framework, detecting common vulnerability classes like SQL in… | 23 | 1791 | active |
| angular-eslint/angular-eslint A monorepo of tooling that enables ESLint to lint Angular projects, including ESLint plugins, parsers, and schematics for Angular CLI integ… | 97 | 1786 | active |
| BenMorris/NetArchTest NetArchTest is a fluent API library for .NET that enforces architectural rules (naming, dependencies, class design conventions) within unit… | 23 | 1786 | stable |
| Joker Joker is a small Clojure dialect interpreter written in Go that also serves as a Clojure/ClojureScript linter and formatter. It offers fast… | 96 | 1774 | active |
| LemonAppDev/konsist Konsist is a structural linter and static code analyzer for Kotlin that enforces codebase consistency and architecture rules. Checks are wr… | 98 | 1746 | active |
| gabotechs/dep-tree dep-tree is a CLI tool that visualizes a codebase's file dependency structure as a 3D force-directed graph, exposing coupling and modularit… | 36 | 1726 | active |
| JLLeitschuh/ktlint-gradle A Gradle plugin that wraps the ktlint Kotlin linter, adding tasks to run style checks and auto-format Kotlin code. It activates automatical… | 84 | 1722 | active |
| cargo-semver-checks cargo-semver-checks is a CLI linter that scans Rust crates for semantic versioning violations by comparing a crate's public API against a p… | 95 | 1696 | active |
| streetsidesoftware/cspell CSpell is a fast, pure-JavaScript spell checker designed specifically for source code, available as a CLI tool, library, VS Code extension,… | 98 | 1690 | active |
| peripheryapp/periphery Periphery is a tool that identifies unused code in Swift projects, detecting dead code such as unused functions, properties, and imports. T… | 10 | 6183 | maintenance |
| tabby-sec/tabby Tabby is a Java static code analysis tool built on the Soot framework that converts JAR/WAR/CLASS files into a code property graph stored i… | 47 | 1661 | active |
| AutoCorrect AutoCorrect is a Rust-based linter and formatter that improves copywriting by correcting spacing, punctuation, and word usage between CJK (… | 84 | 1654 | active |
| helm/chart-testing A Go CLI tool (`ct`) for linting and testing Helm charts, automatically detecting charts changed against a target branch. It is designed fo… | 91 | 1645 | active |
| ecsphp/ecs Easy Coding Standard (ECS) is a zero-dependency PHP CLI tool that runs PHP-CS-Fixer and PHP_CodeSniffer rules together in a single parallel… | 99 | 1625 | active |
| Scony/godot-gdscript-toolkit A set of independent GDScript tools written in Python, including a parser (gdparse), linter (gdlint), formatter (gdformat), and a code metr… | 44 | 1614 | active |
| ffoodd/a11y.css a11y.css is a CSS stylesheet that highlights potential accessibility risks and mistakes in HTML markup by displaying visual warnings direct… | 62 | 1613 | active |
| fzipp/gocyclo gocyclo is a command-line tool that calculates the cyclomatic complexity of functions in Go source code. It helps identify complex function… | 55 | 1613 | stable |
| ndmitchell/hlint HLint is a command-line linter for Haskell source code that suggests improvements such as alternative functions, code simplifications, and … | 66 | 1611 | active |
| quick-lint/quick-lint-js quick-lint-js is a fast, zero-configuration linter for JavaScript that finds bugs like undeclared variables, const reassignment, and syntax… | 46 | 1592 | active |
| ts-safeql/safeql SafeQL is an ESLint plugin that validates raw SQL queries against a live PostgreSQL schema and automatically infers TypeScript types for qu… | 82 | 1569 | active |
| vuejs/vetur Vetur is a VS Code extension providing Vue.js tooling, including syntax highlighting, IntelliSense, formatting, linting, debugging support,… | 23 | 5743 | maintenance |
| PHP_CodeSniffer PHP_CodeSniffer is a set of two PHP scripts: phpcs tokenizes PHP files to detect violations of a defined coding standard, and phpcbf automa… | 89 | 1557 | active |
| mattn/efm-langserver efm-langserver is a general-purpose Language Server Protocol server written in Go that acts as a bridge between editors and external linter… | 78 | 1557 | active |
| ivov/lisette Lisette is a small programming language inspired by Rust that compiles to readable Go, featuring Hindley-Milner type inference, algebraic d… | 78 | 1554 | active |
| denoland/vscode_deno The official Visual Studio Code extension for Deno, powered by the Deno language server. It provides type checking, intellisense, linting, … | 97 | 1548 | active |
| hyhmrright/brooks-lint brooks-lint is an AI-powered code review plugin for Claude Code, Codex CLI, and Gemini CLI that diagnoses code against six decay risk dimen… | 82 | 1530 | active |
| rvben/rumdl rumdl is a fast Markdown linter and formatter written in Rust, inspired by ruff's approach to Python linting. It provides 82 lint rules, au… | 81 | 1528 | active |
| YAML Language Server A language server implementing the Language Server Protocol (LSP) for YAML files, providing validation, schema-driven completion, hover, fo… | 75 | 1525 | active |
| Redocly/redocly-cli Redocly CLI is an open-source command-line tool for working with OpenAPI, AsyncAPI, and Arazzo descriptions. It lints and validates API des… | 93 | 1517 | active |
| osprey-oss/deptry deptry is a command line tool that detects unused, missing, and transitive dependency issues in Python projects by scanning imported module… | 89 | 1494 | active |
| Steep Steep is a static type checker for Ruby based on gradual typing, using RBS signature files and inline annotations. It is distributed as a R… | 97 | 1492 | active |
| imanghafoori1/laravel-microscope Laravel Microscope is a PHP/Laravel package that performs smart static checks to find bugs and errors in Laravel codebases, supporting fear… | 67 | 1490 | active |
| kalessil/phpinspectionsea Php Inspections (EA Extended) is an open-source static code analysis tool distributed as a PhpStorm/IntelliJ IDEA plugin. It detects archit… | 74 | 1483 | active |
| slevomat/coding-standard A collection of PHP_CodeSniffer sniffs for PHP covering functional safety, dead code detection, and code formatting rules. Many sniffs supp… | 94 | 1480 | active |
| ananthakumaran/tide Tide is a TypeScript Interactive Development Environment for Emacs, providing IDE features like completion, eldoc, flycheck diagnostics, an… | 59 | 1474 | active |
| fisadev/fisa-vim-config A personal Vim and NeoVim configuration aimed at Python development, with autocompletion, linting, fuzzy finding, and debugging support. It… | 42 | 1468 | active |
| Secretlint Secretlint is a pluggable linting tool that scans projects for committed credentials and secrets, reporting matches with explanations. It r… | 99 | 1463 | active |
| PyCQA/pyflakes Pyflakes is a fast, passive checker for Python source files that detects errors like undefined names and unused imports by parsing the AST … | 75 | 1461 | active |
| antfu/case-police CasePolice is a CLI tool and ESLint plugin that checks and fixes the casing of well-known product and technology names (e.g., GitHub, TypeS… | 72 | 1426 | active |
| stylelint-config The standard shareable configuration preset for Stylelint, the CSS linter. It extends stylelint-config-recommended with additional rules en… | 75 | 1418 | active |
| btford/write-good A naive linter for English prose that detects passive voice, weasel words, and other weak writing patterns. It works as both a Node.js libr… | 33 | 5095 | maintenance |
| ecosse3/nvim Ecovim is a fully-featured, non-minimal Neovim configuration written in Lua, tailored for frontend development with TypeScript, React, Next… | 87 | 1410 | active |
| standard/semistandard semistandard is a JavaScript code style linter that wraps ESLint with the rules of standard/standard plus semicolons. It runs as a CLI or n… | 23 | 1410 | active |
| quarylabs/sqruff sqruff is a fast SQL linter and formatter written in Rust, inspired by SQLFluff and ruff, supporting many SQL dialects like Postgres, BigQu… | 93 | 1404 | active |
| pytype Pytype is a static type analyzer for Python that checks and infers types without requiring type annotations, using inference rather than gr… | 10 | 5036 | maintenance |
| amannn/action-semantic-pull-request A GitHub Action that validates pull request titles against the Conventional Commits specification. It is commonly paired with semantic-rele… | 78 | 1396 | active |
| kristoff-it/superhtml SuperHTML is a CLI tool and language server written in Zig that validates, autoformats, and provides LSP features for HTML5 documents. It i… | 83 | 1392 | active |
| JoshuaKGoldberg/create-typescript-app A quickstart-friendly TypeScript project template and CLI scaffolding tool that sets up new or existing repositories with comprehensive, op… | 95 | 1386 | active |
| skeema/skeema Skeema is a Go-based CLI tool for declarative MySQL and MariaDB schema management using pure SQL CREATE statements tracked in version contr… | 89 | 1380 | active |
| twitter/compose-rules A collection of static analysis rules for Jetpack Compose, shipped as custom ktlint rules and a Detekt plugin, that detect common Compose p… | 23 | 1374 | active |
| fannheyward/coc-pyright A coc.nvim extension that wraps Microsoft's Pyright static type checker and language server for Python, adding editor features like semanti… | 76 | 1364 | active |
| k-vim k-vim is a curated Vim configuration (vimrc) bundling plugins, themes like solarized and molokai, and tooling such as YCM autocompletion, s… | 44 | 4850 | maintenance |
| plantain-00/type-coverage A CLI tool that measures type coverage in TypeScript codebases by calculating the percentage of identifiers whose type is not `any`. It can… | 71 | 1352 | active |
| CSSLint/csslint CSSLint is an open source CSS code quality tool that performs static analysis of stylesheets, flagging syntax errors and problematic or ine… | 23 | 4811 | maintenance |
| ZupIT/horusec Horusec is an open-source SAST (static application security testing) CLI that scans a project for vulnerabilities across many languages wit… | 66 | 1342 | active |
| marcoroth/herb Herb is an HTML-aware ERB toolchain built around a fast C parser that produces detailed syntax trees for HTML+ERB templates. It ships devel… | 92 | 1330 | active |
| JetBrains/idea-gitignore A JetBrains IDE plugin that adds support for .gitignore and many other ignore file formats (.dockerignore, .npmignore, .eslintignore, etc.)… | 62 | 1326 | active |
| clojure-lsp clojure-lsp is a Language Server Protocol (LSP) implementation for Clojure and ClojureScript, providing static analysis-based editing featu… | 94 | 1324 | active |
| Seldaek/jsonlint A PHP library that validates and parses JSON with detailed, human-readable error messages pointing at the exact line and expected tokens. I… | 90 | 1324 | stable |
| phpqa A Docker image bundling popular PHP static analysis and quality tools such as PHPStan, PHP-CS-Fixer, PHPMD, PHPCS, PHPCPD, PHPMetrics, and … | 95 | 1321 | active |
| SonarJS SonarSource's static code analyzer for JavaScript, TypeScript, and CSS, providing hundreds of rules for code quality and security. It now a… | 100 | 1302 | active |
| anandthakker/doiuse doiuse is a CSS linter that checks stylesheets for browser compatibility issues against the Can I Use database. It works as a CLI tool, a P… | 56 | 1302 | active |
| publint/publint publint is a linter that checks npm packages for packaging errors, ensuring compatibility across environments like Vite, Webpack, Rollup, a… | 94 | 1301 | active |
| r-lib/lintr lintr is an R package providing static code analysis for R, checking style adherence, syntax errors, and possible semantic issues. It is hi… | 84 | 1299 | stable |
| es-analysis/plato Plato is a JavaScript static analysis tool that visualizes source code complexity, generating HTML reports with cyclomatic complexity, Hals… | 23 | 4549 | maintenance |
| carlosas/phpat PHP Architecture Tester (PHPat) is a PHPStan extension that verifies architectural requirements in PHP codebases, such as which namespaces … | 96 | 1283 | active |
| jdx/hk hk is a fast, language-agnostic git hook manager and project linter written in Rust. It runs linters and formatters concurrently with read/… | 85 | 1275 | active |
| facebook/mariana-trench Mariana Trench is a security-focused static analysis platform for Android and Java applications, built by Meta on the SPARTA and Redex infr… | 77 | 1262 | active |
| PHPantom-dev/phpantom_lsp PHPantom is a fast, lightweight PHP language server written in Rust with deep type intelligence, including generics, PHPStan annotations, a… | 83 | 1246 | active |
| 42school/norminette The official C code style linter (norminette) for 42 Network schools, enforcing the 42 coding standard on .c and .h files. It is a Python-b… | 94 | 1243 | active |
| fi3ework/vite-plugin-checker A Vite plugin that runs type checking and linting tools such as TypeScript, vue-tsc, ESLint, Biome, and Stylelint in a worker thread. It su… | 91 | 1241 | active |
| gajus/eslint-plugin-jsdoc An ESLint plugin providing JSDoc-specific linting rules for JavaScript and TypeScript projects. It validates comment blocks, checks tag usa… | 95 | 1234 | active |
| weavejester/cljfmt cljfmt is a tool for detecting and fixing formatting errors in Clojure code, with defaults based on the Clojure Style Guide and extensive c… | 97 | 1228 | active |
| sbdchd/squawk Squawk is a linter for Postgres migrations and SQL that catches statements which could cause downtime, such as blocking locks or breaking s… | 95 | 1227 | active |
| mantoni/eslint_d.js eslint_d is a drop-in CLI replacement for eslint that runs eslint in a persistent background daemon process to dramatically reduce linting … | 71 | 1224 | active |
| checkmake/checkmake checkmake is a linter and analyzer for Makefiles written in Go. It scans Makefiles for potential issues based on configurable rules and rep… | 84 | 1219 | active |
| meziantou/Meziantou.Analyzer Meziantou.Analyzer is a C# Roslyn analyzer distributed as a NuGet package that performs static analysis to detect bugs, security issues, an… | 96 | 1213 | active |
| nbQA-dev/nbQA nbQA is a command-line tool that lets you run standard Python code quality tools like ruff, black, isort, mypy, pylint, flake8, and pyupgra… | 64 | 1205 | active |
| ndmitchell/ghcid ghcid is a very simple Haskell development tool that runs GHCi and reloads on every file save, showing errors and warnings in a small conso… | 65 | 1199 | active |
| seddonym/import-linter Import Linter is a command-line tool that checks and enforces constraints on imports between Python modules, helping teams maintain clean a… | 75 | 1197 | active |
| bazel-contrib/buildtools A collection of developer tools for working with Bazel build files, including buildifier for formatting BUILD files, buildozer for command-… | 98 | 1195 | active |
| djezzzl/database_consistency A Ruby gem that audits Rails ActiveRecord models against the database schema to detect inconsistencies and inefficiencies. It reports missi… | 76 | 1195 | active |
| rails_best_practices rails_best_practices is a code metric tool that checks the quality of Rails code against a set of best-practice rules. It runs from the com… | 64 | 4157 | maintenance |
| QuiiBz/sherif Sherif is an opinionated, zero-config linter for TypeScript and JavaScript monorepos, written in Rust for speed. It checks package. consist… | 82 | 1184 | active |
| google/capslock Capslock is a capability analysis CLI for Go packages that classifies which privileged operations a package can access via transitive calls… | 74 | 1182 | active |
| jest-community/eslint-plugin-jest An ESLint plugin providing lint rules for Jest test suites, catching issues like disabled or focused tests, invalid expectations, and enfor… | 95 | 1173 | active |
| slang slang is a fast, highly compliant SystemVerilog frontend library providing lexing, parsing, type checking, and elaboration, plus a CLI tool… | 91 | 1168 | active |
| tombi-toml/tombi Tombi is a fast TOML toolkit written in Rust providing a formatter, linter, and Language Server (LSP). It supports schema-driven validation… | 86 | 1163 | active |
| typetools/checker-framework The Checker Framework is a framework for pluggable type-checking in Java, enhancing Java's type system to detect and prevent bugs like null… | 98 | 1151 | stable |
| textlint-ja/textlint-rule-preset-ai-writing A textlint rule preset that detects AI-generated writing patterns in Japanese text and suggests more natural phrasing. It can also run as a… | 69 | 1149 | active |
| daveshanley/vacuum vacuum is an ultra-fast OpenAPI, AsyncAPI, and JSON Schema linter and quality-checking tool written in Go, fully compatible with Spectral r… | 95 | 1135 | active |
| immanuwell/dockerfile-roast droast is a Dockerfile linter written in Rust with 85 opinionated rules that report bad practices using snarky, humorous messages. It runs … | 77 | 1135 | active |
| duo-labs/parliament Parliament is a Python library and CLI tool that lints AWS IAM policies, detecting malformed JSON, invalid actions and resources, type mism… | 47 | 1127 | active |
| oclint/oclint OCLint is a static source code analysis tool for C, C++, and Objective-C that inspects the abstract syntax tree to find bugs, unused code, … | 58 | 3891 | maintenance |
| protofire/solhint Solhint is an open-source linter for Solidity smart contracts that provides both security and style guide validations. It runs as an npm-di… | 90 | 1126 | active |
| PyCQA/flake8-bugbear flake8-bugbear is a plugin for the Flake8 linter that adds checks for likely bugs and design problems in Python code. It provides opinionat… | 88 | 1119 | active |
| wartremover/wartremover WartRemover is a flexible Scala code linting tool implemented as a compiler plugin, with an sbt plugin for easy integration. It flags unsaf… | 66 | 1102 | active |
| igorshubovych/markdownlint-cli A command-line interface for markdownlint that lints Markdown files for style and consistency issues. It supports configuration files, glob… | 90 | 1100 | active |