Best Ruff Alternatives in 2026
The top Ruff alternatives are ESLint, ShellCheck and Stylelint: 15 linters our editors would look at instead of Ruff, in our ranking order.
Ruff: Free Python linting and formatting with more than 900 built-in rules. Where it falls short: focused on python rather than multiple languages.
Switching from Ruff? For most linters buyers the best Ruff alternative is ESLint, built for javaScript projects needing an extensible standard. SQLFluff offers the most languages supported (28).
Why People Look for a Ruff Alternative
- Focused on Python rather than multiple languages
- Custom lint rules are not supported
- Third-party plugins are not supported
- No custom rules — 11 of the alternatives below have it
- Languages supported: 1 — up to 28 with SQLFluff
Quick Picks by What You Need
- Best overallESLint9.4
JavaScript projects needing an extensible standard
Visit ESLint - Best free optionESLint9.4
Has a free plan
Visit ESLint - Most languages supportedSQLFluff7.6
28
Visit SQLFluff - Best for custom rulesESLint9.4
Custom rules (Ruff: no)
Visit ESLint
All 15 Ruff Alternatives, Ranked
Advertiser disclosure: iTechGuides is reader-supported. Vendors can pay for top positions in our rankings and for a place on other products' pages, and we may earn a commission when you click some links. Bought places stand at the number bought; this page and our disclosure say so. Paying vendors may get a fuller, more detailed review from our editors, and that review can change their score. How we rank.
-
Best forJavaScript projects needing an extensible standard
- Better than Ruff:
- Custom rules
- Editor score 9.4 vs 9.2
A free, extensible JavaScript linter with autofix, plugins, and broad developer-tool integrations.
- Security rules
- Autofix
- Custom rules
9.4/10★★★★★Visit ESLint -
Best forShell-script quality and portability checks
- Better than Ruff:
- Languages supported: 4 vs 1
A free, open-source linter for shell syntax, portability, robustness and security checks.
- Autofix
9.0/10★★★★☆Visit ShellCheck -
Best forCSS and CSS-like language teams
- Better than Ruff:
- Custom rules
- Languages supported: 8 vs 1
A capable, extensible CSS linter for teams that want configurable rules and CI support.
- Autofix
- Custom rules
8.8/10★★★★☆Visit Stylelint -
Best forC++ teams needing bug and style analysis
- Better than Ruff:
- Custom rules
- Languages supported: 3 vs 1
A deep C++ linter for style, bugs, custom checks, CUDA, and IDE workflows.
- Security rules
- Autofix
- Custom rules
8.7/10★★★★☆Visit LLVM Project -
Best forRust developers seeking extensive lint coverage
A deeply configurable Rust linter with more than 800 checks and CI support.
- Security rules
- Autofix
8.6/10★★★★☆Visit Clippy -
Best forElixir teams checking style and complexity
- Better than Ruff:
- Custom rules
A focused, free Elixir linter for style, complexity, refactoring, and custom checks.
- Security rules
- Custom rules
8.5/10★★★★☆Visit Credo -
Best forTeams linting and formatting web code
- Better than Ruff:
- Custom rules
- Languages supported: 17 vs 1
An open-source web toolchain combining linting, formatting, fixes, and editor support.
- Security rules
- Autofix
- Custom rules
8.4/10★★★★☆Visit Biome -
Best forMultilanguage static-analysis programs
- Better than Ruff:
- Custom rules
- Languages supported: 16 vs 1
A broad, open-source linter for teams managing static analysis across 16 languages.
- Security rules
- Custom rules
8.3/10★★★★☆Visit PMD -
Best forPython teams seeking linting, fixes, and formatting
An open-source Python linter and formatter with fixes, editor support, and CI integration.
- Security rules
- Autofix
8.2/10★★★★☆Visit Astral -
Best forMarkdown documentation teams
- Better than Ruff:
- Custom rules
A focused, configurable Markdown linter for documentation workflows.
- Autofix
- Custom rules
8.1/10★★★★☆Visit markdownlint -
Best forSwift teams using Xcode
- Better than Ruff:
- Custom rules
A focused, free Swift linter with configurable rules, autofix, and CI integrations.
- Autofix
- Custom rules
8.0/10★★★★☆Visit SwiftLint -
Best forJava teams enforcing configurable standards
- Better than Ruff:
- Custom rules
A focused, open-source Java linter with deep checks and flexible custom rules.
- Custom rules
7.9/10★★★★☆Visit Checkstyle -
Best forGo teams prioritizing correctness checks
A focused, free Go linter with broad checks, editor fixes, and CI support.
- Autofix
7.8/10★★★★☆Visit Staticcheck -
Best forGo teams wanting many linters in one tool
- Better than Ruff:
- Custom rules
A focused open-source tool for running and managing many Go linters.
- Security rules
- Autofix
- Custom rules
7.7/10★★★★☆Visit golangci-lint -
Best forSQL and dbt teams
- Better than Ruff:
- Custom rules
- Languages supported: 28 vs 1
A configurable open-source SQL linter for SQL and dbt teams.
- Autofix
- Custom rules
7.6/10★★★★☆Visit SQLFluff
Ruff Alternatives: Common Questions
What is the best alternative to Ruff?
ESLint: #1 in our Linters ranking, with an editor score of 9.4 out of 10. A free, extensible JavaScript linter with autofix, plugins, and broad developer-tool integrations.
Is there a free alternative to Ruff?
Yes. ESLint, ShellCheck, Stylelint, clang-tidy and Clippy have a free plan or a free tier (15 of the 15 alternatives on this page).
Why do people look for Ruff alternatives?
Focused on Python rather than multiple languages; Custom lint rules are not supported; Third-party plugins are not supported.
Which Ruff alternative has the most languages supported?
SQLFluff, with 28.
How do I switch from Ruff?
Export your data from Ruff (most tools have an export in their settings). Sign up for the alternative; start on its free plan or trial if it has one. Import your export and set up the integrations your team relies on. Run both side by side for a short while, then cancel Ruff.
How to Switch from Ruff
- Export your data from Ruff (most tools have an export in their settings).
- Sign up for the alternative; start on its free plan or trial if it has one.
- Import your export and set up the integrations your team relies on.
- Run both side by side for a short while, then cancel Ruff.
Ruff vs Each Alternative
| # | Tool | Free plan | Paid from | Languages supported | Autofix | Custom rules | Security rules | Score |
|---|---|---|---|---|---|---|---|---|
| 2 | Ruff | Yes | Free | 1 | Yes | No | Yes | 9.2 |
| 1 | ESLint | Yes | Free | 1 | Yes | Yes | Yes | 9.4 |
| 2 | ShellCheck | Yes | Free | 4 | Yes | 9.0 | ||
| 3 | Stylelint | Yes | Free | 8 | Yes | Yes | No | 8.8 |
| 4 | clang-tidy | Free | 3 | Yes | Yes | Yes | 8.7 | |
| 5 | Clippy | Free | 1 | Yes | No | Yes | 8.6 | |
| 6 | Credo | Yes | Free | 1 | Yes | Yes | 8.5 | |
| 7 | Biome | Yes | Free | 17 | Yes | Yes | Yes | 8.4 |
| 8 | PMD | Yes | Free | 16 | Yes | Yes | 8.3 | |
| 9 | Astral | Yes | Free | 1 | Yes | No | Yes | 8.2 |
| 10 | markdownlint | Yes | Free | 1 | Yes | Yes | 8.1 | |
| 11 | SwiftLint | Free | 1 | Yes | Yes | No | 8.0 | |
| 12 | Checkstyle | Yes | Free | 1 | Yes | 7.9 | ||
| 13 | Staticcheck | Yes | Free | 1 | Yes | 7.8 | ||
| 14 | golangci-lint | Yes | Free | 1 | Yes | Yes | Yes | 7.7 |
| 15 | SQLFluff | Yes | Free | 28 | Yes | Yes | 7.6 |
Head-to-Head
Reviewed by iTechGuides Editors · Editorial team · Updated Oct 2026
Last updated · How we research and update










