For code style standards, the strongest matches are psf/black (This is a dedicated Python code formatter that automates), prettier/prettier (Prettier is a comprehensive, industry-standard code formatter that supports) and mgechev/revive (Revive is a specialized static analysis and linting tool). astral-sh/ruff and millionco/react-doctor round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Find the best code style linters for your project. Compare top-rated open-source tools by language, activity, and features to pick the right one.
This project is an uncompromising, deterministic code formatter for Python. It functions by parsing source code into an abstract syntax tree and regenerating it according to a rigid, opinionated set of style rules. By automating the formatting process, it eliminates manual style debates and configuration overhead, ensuring that code remains consistent across entire projects regardless of the original input. The tool distinguishes itself through its focus on speed and seamless integration into development workflows. It utilizes content-based file caching and parallel processing to maintain hig
This is a dedicated Python code formatter that automates style enforcement and integrates into CI/CD and IDE workflows, though it is limited to the Python language rather than supporting multiple languages.
Prettier is an opinionated code formatter that parses source code and reprints it from scratch to enforce a consistent, project-wide visual style. By transforming code into an abstract syntax tree and applying a recursive document printing process, it eliminates manual style debates and ensures that all source files adhere to a unified appearance. The project is distinguished by its extensible, plugin-based architecture, which decouples language-specific parsing logic from the core engine. This modular design allows for uniform style enforcement across diverse programming languages and comple
Prettier is a comprehensive, industry-standard code formatter that supports a wide range of languages, integrates seamlessly into CI/CD pipelines and IDEs, and provides highly customizable rules for enforcing consistent project-wide style.
Revive is a configurable static analysis linter and code quality tool for Go. It analyzes source code to detect common coding mistakes, identify style violations, and enforce language standards without executing the program. The project functions as both a command line tool and an embeddable analysis engine. This allows the core linting logic to be integrated as a library into other Go applications for programmatic code inspection. The tool supports custom rule sets and severity levels managed through a structured configuration file. It provides capabilities for suppressing specific warnings
Revive is a specialized static analysis and linting tool for Go that provides customizable rule sets and CI/CD integration, though it is limited to the Go language rather than being a multi-language solution.
Ruff is a high-performance static analysis and code formatting tool designed for Python. Built in Rust, it functions as a comprehensive engine that scans source code to detect programming errors, security vulnerabilities, and deviations from established coding standards. By parsing source code into a structured tree representation, it provides both automated linting and style enforcement across entire projects. The tool distinguishes itself through its speed and deep integration into the development lifecycle. It utilizes parallelized file processing to maximize throughput on large codebases
Ruff is a high-performance linter and formatter specifically for Python that provides automated style enforcement, CI/CD integration, and customizable rules, fitting the category perfectly despite its focus on a single language.
React Doctor is a static analysis tool for React codebases designed to identify security, performance, and architectural issues. It functions as a codebase health diagnostic engine that produces numeric health scores and structured diagnostics to improve maintainability. The tool features an incremental code scanner that evaluates only the files changed between branches or staged in the working tree to provide fast feedback. It is designed to operate as a quality gate within CI pipelines, allowing for the enforcement of codebase health standards by failing builds on critical errors. The anal
React Doctor is a static analysis tool that enforces architectural and quality standards in React codebases, serving as a specialized linter that integrates into CI/CD pipelines to maintain codebase health.
rustfmt is a Rust code formatter that operates as a Cargo subcommand, applying consistent formatting to Rust source files according to official style guidelines. It parses source code into a syntax tree, applies formatting rules to tree nodes, and pretty-prints the result back to text, with support for TOML-driven configuration that allows per-project style customization. The formatter is edition-aware, automatically selecting formatting rules based on the Rust edition specified in the project, and supports a style edition override that decouples formatting rules from the Rust edition used fo
This tool is a dedicated code formatter for the Rust language that provides automated formatting, CI/CD integration, and customizable configuration, fitting the category requirements for a language-specific implementation.
HTMLHint is an HTML linter and static analysis tool designed to identify structural errors and syntax violations in source code. It functions as a configurable validator that scans local files and remote URLs to detect malformed tags, duplicate IDs, and document structure inconsistencies. The tool serves as an accessibility auditor, verifying that web elements include necessary labels and alternative text for images. It further distinguishes itself by enforcing web document compliance, checking for the presence of doctypes, language attributes, and head metadata. The project covers a broad r
HTMLHint is a specialized linter that enforces style guidelines and structural best practices specifically for HTML, providing the automated validation and rule customization required for code quality checks.
TSLint is an extensible static analysis tool that checks TypeScript source files against a configurable set of lint rules. It scans code by walking the parsed TypeScript abstract syntax tree, applying rule objects to detect readability, maintainability, and functionality errors. The tool supports rule severity configuration, inline suppression through comment directives, and automatic attachment of fix objects for correcting violations. The project provides a framework for developing custom lint rules and formatters, allowing teams to enforce project-specific coding conventions beyond the bui
TSLint is a dedicated static analysis and linting tool for TypeScript that supports customizable rules, automated fixes, and integration into CI/CD pipelines and IDEs.
scss-lint is a static analysis tool and configurable style validator for SCSS stylesheets. It identifies syntax errors and enforces coding style consistency in CSS preprocessor files before they are compiled. The project provides an extensibility system for loading custom linting rules from local directories or external libraries. It allows for the definition of project-specific style standards and supports the creation of baseline configurations to facilitate incremental code cleanup. The tool includes capabilities for source control management hook integration and source preprocessing via
This tool is a dedicated linter and style validator for SCSS files that supports customizable rule sets, CI/CD integration, and SCM hooks, fitting the category for a specific language domain.
This project is a CSS linter and static analysis tool designed to identify syntax errors, logic flaws, and problematic patterns in Cascading Stylesheets. It functions as a command line validator that verifies code quality and enforces consistent styling and coding standards without requiring a web browser. The analyzer distinguishes itself by incorporating web accessibility auditing to detect patterns that hinder users with disabilities. It also performs browser compatibility checking to identify non-standard hacks and missing vendor prefixes, and provides performance optimization analysis to
This tool provides automated linting and static analysis specifically for CSS, offering customizable rules and CI/CD integration that align with the core requirements for code quality enforcement.
xo is a zero-configuration linting tool for JavaScript and TypeScript. It functions as a wrapper for the ESLint engine, providing a set of strict default rules and static analysis to enforce professional coding standards without requiring manual configuration files. The tool distinguishes itself by providing a zero-config runtime that automatically determines parser settings and linting rules at execution time. It includes a code style formatter to standardize indentation and syntax across all project files. The project covers automated error correction and source code formatting to eliminat
XO is a zero-configuration linting and formatting tool for JavaScript and TypeScript that integrates into CI/CD pipelines and IDEs, providing a streamlined approach to enforcing coding standards.
coala provides a unified command-line interface for linting and fixing all your code, regardless of the programming languages you use.
coala provides a unified command-line interface for linting and fixing code across multiple languages, offering customizable rule sets and CI/CD integration that directly addresses your requirements for automated code quality enforcement.
Standard is a suite of static analysis tools for JavaScript, comprising a linter, formatter, and a predefined style guide. It functions as a static code analyzer that scans source code for style violations and potential errors without executing the program. The project provides an automatic code fixer that rewrites source code to resolve formatting issues and enforce syntax consistency. It implements a standardized set of rules for JavaScript formatting and syntax to ensure a uniform appearance across different projects. The system covers a wide range of static analysis capabilities, includi
This tool provides automated linting and formatting specifically for JavaScript, offering a standardized rule set and IDE integration that fits the requirements for a code quality tool.
This project is a static analysis engine designed to identify patterns, enforce coding standards, and automate code quality improvements in software projects. By parsing source code into structured abstract syntax trees, it enables deep programmatic inspection and the automated remediation of identified programming issues. The engine functions as a pluggable linting framework, allowing developers to extend its core capabilities through a modular architecture. Users can inject custom rules, parsers, and processors to support non-standard file formats or domain-specific logic. This extensibilit
ESLint is a powerful and highly extensible static analysis engine for JavaScript that provides robust linting and automated code remediation, though it is primarily focused on the JavaScript ecosystem rather than being a multi-language tool.
Phan is a static analyzer and type checker for PHP that identifies bugs and type incompatibilities without executing the code. It serves as a quality gate for continuous integration pipelines and a tool for verifying type safety, specifically checking union types, generics, and array shapes. The project is distinguished by its use of a background daemon and Language Server Protocol implementation, which provide real-time diagnostics and navigation within editors. It also features a baseline-based suppression system that allows developers to record existing errors in a snapshot file to focus e
Phan is a specialized static analysis and type-checking tool for PHP that integrates into CI/CD pipelines and IDEs to enforce code quality, though it focuses on bug detection and type safety rather than general-purpose code formatting.
Pylint is a static code analysis tool for Python that checks source code for errors, coding standard violations, and code smells without executing the program. It parses code into an abstract syntax tree and walks the tree to detect issues, enforces configurable style rules and naming conventions, and identifies duplicate code blocks by comparing tokenised source sequences. The tool also includes an inference engine that deduces variable types by simulating code paths, enabling deeper analysis even in untyped code. What distinguishes Pylint is its plugin-based checker architecture, which allo
Pylint is a comprehensive static analysis and linting tool for Python that supports customizable rule sets, CI/CD integration, and IDE analysis, though it focuses specifically on Python rather than providing multi-language support.
Oxc is a high-performance toolchain designed for the analysis, linting, formatting, and transformation of JavaScript and TypeScript codebases. It functions as a comprehensive static analysis engine and compiler-based utility, providing the infrastructure necessary to parse source code into high-performance abstract syntax trees and map complex module dependency graphs across entire projects. The project distinguishes itself through its use of multi-core parallel processing to maximize throughput during intensive tasks like linting and minification. It offers deep, type-aware static analysis t
Oxc is a high-performance linter and formatter specifically built for the JavaScript and TypeScript ecosystem, offering the automated checking, formatting, and CI/CD integration required for modern web development workflows.
Buf is a toolchain for managing the full lifecycle of Protocol Buffers schemas. It provides a set of tools for schema governance, including linting to enforce style guides, a breaking change detector to ensure backward compatibility, and a system for producing language-specific source code via local or remote plugins. The project distinguishes itself through a remote schema registry that centralizes the hosting, versioning, and distribution of Protocol Buffers modules. This registry allows for server-side enforcement of governance policies, such as blocking updates that introduce backward-inc
Buf is a specialized linting and formatting toolchain designed specifically for Protocol Buffers, providing automated style enforcement, breaking change detection, and CI/CD integration for schema management.
JSHint is a JavaScript static analysis tool and linter designed to detect errors and enforce coding standards. It functions as a syntax validator that scans source code to identify potential logic problems and programming mistakes before the code is executed. The tool provides a command line interface for analyzing files and directories. It supports the export of analysis results into standardized formats such as Checkstyle for integration with external build tools. Analysis is managed through a system of linting rule management and environment global configuration. This includes the ability
JSHint is a dedicated static analysis and linting tool for JavaScript that enforces coding standards and detects errors, fitting the category despite its focus on a single language rather than multi-language support.
This project is a static analysis tool and linter designed to improve the quality, reliability, and portability of shell scripts. By performing deep structural analysis, it identifies common programming pitfalls, syntax errors, and security vulnerabilities before scripts are executed. It functions as an automated code reviewer that enforces best practices and helps developers maintain consistent, robust code across different operating environments. The tool distinguishes itself through its dialect-aware grammar resolution, which adapts its parsing logic based on the specific shell interpreter
This tool is a specialized static analysis and linting utility for shell scripts that enforces best practices and identifies errors, fitting the category despite its focus on a specific language family rather than being a multi-language suite.
RuboCop is a static code analyzer, linter, and formatter for the Ruby language. It identifies style violations, smells, and errors in source code to ensure consistency and maintainability based on community guidelines. The project provides automatic source code formatting to rewrite files according to defined stylistic standards. It also functions as a language server protocol implementation, surfacing violations and suggested fixes directly within code editors. The tool covers code complexity monitoring to track the size of classes and methods and employs non-inclusive language detection to
RuboCop is a comprehensive linter and formatter specifically for Ruby that provides automated style enforcement, IDE integration via LSP, and highly customizable rule sets for CI/CD pipelines.
Standard is a zero-configuration static analyzer, linter, and formatter for JavaScript. It functions as a style guide that enforces consistent coding rules and identifies programming errors without requiring manual configuration files. The tool distinguishes itself by providing an automatic code fixer that scans source files to correct style violations and ensure a uniform codebase. It implements a predefined rule set to eliminate the need for project-specific configuration. The project covers a broad range of static analysis capabilities, including support for experimental language syntax a
This tool is a dedicated linter and formatter for JavaScript that provides automated style enforcement and error checking, though it is limited to the JavaScript ecosystem rather than supporting multiple languages.
Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best practices. It functions as a code quality auditor and Javadoc validation tool, checking source code against configurable rulesets to ensure structural and stylistic consistency. The project allows for the creation of custom linting rules by extending a core API to inspect the abstract syntax tree. It further enables specialized validation through the use of XPath expressions to query the syntax tree for specific code patterns and violations. Capability areas include the enforcement
Checkstyle is a specialized static analysis and linting tool for Java that provides robust rule enforcement and IDE integration, though it is limited to the Java ecosystem rather than being a multi-language solution.
Stylelint is a static code analysis tool and linter for CSS and style-like languages. It identifies errors, enforces coding conventions, and operates as a PostCSS plugin to validate stylesheets during build pipelines. The project distinguishes itself through support for non-standard syntaxes, including preprocessor parsing for SCSS and Less, and the ability to extract and lint embedded styles from JavaScript, HTML, and template literals. It features an automated fixing system that programmatically corrects repairable styling violations to ensure consistency. The system provides a plugin arch
Stylelint is a specialized linter and formatter for CSS and style-like languages that provides robust rule customization, automated fixing, and integration capabilities for build pipelines.
node-jscs is a JavaScript linter and code style checker designed to analyze source code and enforce consistent coding standards. It functions as a static analysis tool that identifies patterns in JavaScript code to ensure adherence to defined style guides. The project provides capabilities for both JavaScript code linting and automated code formatting. It can check source code for style violations and automatically correct those errors to align the codebase with a specified set of formatting rules.
This tool is a dedicated JavaScript linter and formatter that enforces style guidelines through static analysis, fitting the category despite its focus on a single language rather than multi-language support.
Flake8 is a Python style checker and static analysis tool that identifies programmatic errors and violations of coding standards in source files. It serves as a linting wrapper that aggregates multiple checkers into a single interface, functioning as a pluggable framework for Python code analysis. The tool incorporates a cyclomatic complexity analyzer to measure the logical complexity of functions and identify code that requires refactoring. It is designed for extensibility, allowing the integration of custom plugins and rules through defined entry points. The system provides capabilities fo
Flake8 is a well-established static analysis and linting tool for Python that supports customizable rule sets and CI/CD integration, though it is limited to the Python ecosystem rather than being a multi-language tool.
Slevomat Coding Standard is a collection of rules for the PHP_CodeSniffer static analysis tool. It provides a comprehensive set of checks designed to enforce consistent coding styles and identify potential issues within PHP codebases. The project distinguishes itself by offering a wide array of specialized sniffs that go beyond standard formatting requirements. These rules focus on improving code quality, enforcing strict typing, and ensuring adherence to specific architectural patterns, allowing developers to maintain high levels of consistency across complex projects. The library covers a
This tool provides a comprehensive set of additional rules and sniffs for PHP_CodeSniffer, enabling automated code checking and enforcement of strict coding standards within the PHP ecosystem.
WordPress Coding Standards is a collection of rules for the PHP CodeSniffer engine designed to enforce consistent coding conventions and best practices within PHP projects. It functions as a specialized static analysis tool that scans source code to identify style violations, security vulnerabilities, and potential bugs before execution. By integrating into development workflows, it ensures that code adheres to official project conventions, maintaining readability and consistency across large-scale plugin and theme development. The project distinguishes itself through deep domain-specific val
This tool provides a comprehensive set of rules for PHP_CodeSniffer to enforce WordPress coding standards, serving as a specialized linter for the PHP ecosystem.
Semistandard is a static analysis tool and automated code formatter designed to enforce consistent JavaScript syntax and formatting standards across a codebase. It functions as a linter that identifies deviations from established style rules and provides automated corrections to resolve formatting errors without manual intervention. The tool is distinguished by its specific focus on semicolon usage, ensuring that all statements adhere to a uniform syntax standard. It provides comprehensive style management by verifying code against predefined rules and blocking non-compliant submissions withi
This tool provides automated linting and formatting for JavaScript code with customizable rules, serving as a specialized implementation of the requested category.
ECS runs PHP-CS-Fixer and PHP_CodeSniffer as a single, parallel fast tool with zero dependencies. Run on PHP 7.2+
This tool acts as a wrapper for PHP-specific linting and formatting utilities, providing automated style enforcement and CI/CD integration for PHP projects.
Node.js Standard Style
This tool provides a pre-configured, opinionated style guide and linter for JavaScript projects that automates formatting and integrates into development workflows, though it is limited to the JavaScript ecosystem rather than being a multi-language solution.
This project is a static analysis tool and linter for Elixir designed to enforce a unified visual structure across codebases. It serves as a specification for code formatting, naming conventions, and documentation standards. The tool provides a standardized system for casing and prefixes used in files, functions, and variables. It also establishes guidelines for formatting module and function descriptions to ensure consistent technical documentation. The project covers a broad range of code quality areas, including the organization of module layouts, the implementation of commenting patterns
This project functions as a static analysis and linting tool specifically for Elixir, providing automated enforcement of style guidelines and naming conventions to ensure codebase consistency.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| psf/black | 41.6K | Python | MIT | |
| prettier/prettier | 52.1K | JavaScript | MIT | |
| mgechev/revive | 5.5K | Go | MIT | |
| astral-sh/ruff | 48.2K | Rust | MIT | |
| millionco/react-doctor | 12.8K | TypeScript | MIT | |
| rust-lang/rustfmt | 6.7K | Rust | apache-2.0 | |
| htmlhint/htmlhint | 3.3K | JavaScript | mit | |
| palantir/tslint | 5.9K | TypeScript | Apache-2.0 | |
| brigade/scss-lint | 3.7K | Ruby | MIT | |
| csslint/csslint | 4.8K | JavaScript | NOASSERTION |