Best PMD Alternatives in 2026
The top PMD alternatives are ESLint, Ruff and ShellCheck: 15 linters our editors would look at instead of PMD, in our ranking order.
PMD: A broad, open-source linter for teams managing static analysis across 16 languages. Where it falls short: autofix is not part of the stated core capabilities.
Switching from PMD? For most linters buyers the best PMD alternative is ESLint, built for javaScript projects needing an extensible standard. SQLFluff offers the most languages supported (28).
Why People Look for a PMD Alternative
- Autofix is not part of the stated core capabilities
- Its breadth may require managing rules across multiple languages
- Platform coverage is listed as Windows, Linux, and self-hosted
- Languages supported: 16 — 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
All 15 PMD 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 PMD:
- Editor score 9.4 vs 8.3
A free, extensible JavaScript linter with autofix, plugins, and broad developer-tool integrations.
- Security rules
- Autofix
- Custom rules
9.4/10★★★★★Visit ESLint -
Best forPython teams wanting linting and formatting together
- Better than PMD:
- Editor score 9.2 vs 8.3
Free Python linting and formatting with more than 900 built-in rules.
- Security rules
- Autofix
9.2/10★★★★★Visit Ruff -
Best forShell-script quality and portability checks
- Better than PMD:
- Editor score 9.0 vs 8.3
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 PMD:
- Editor score 8.8 vs 8.3
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 PMD:
- Editor score 8.7 vs 8.3
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
- Better than PMD:
- Editor score 8.6 vs 8.3
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 PMD:
- Editor score 8.5 vs 8.3
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 PMD:
- Languages supported: 17 vs 16
- Editor score 8.4 vs 8.3
An open-source web toolchain combining linting, formatting, fixes, and editor support.
- Security rules
- Autofix
- Custom rules
8.4/10★★★★☆Visit Biome -
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
A focused, configurable Markdown linter for documentation workflows.
- Autofix
- Custom rules
8.1/10★★★★☆Visit markdownlint -
Best forSwift teams using Xcode
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
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
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 PMD:
- Languages supported: 28 vs 16
A configurable open-source SQL linter for SQL and dbt teams.
- Autofix
- Custom rules
7.6/10★★★★☆Visit SQLFluff
PMD Alternatives: Common Questions
What is the best alternative to PMD?
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 PMD?
Yes. ESLint, Ruff, ShellCheck, Stylelint and clang-tidy have a free plan or a free tier (15 of the 15 alternatives on this page).
Why do people look for PMD alternatives?
Autofix is not part of the stated core capabilities; Its breadth may require managing rules across multiple languages; Platform coverage is listed as Windows, Linux, and self-hosted.
Which PMD alternative has the most languages supported?
SQLFluff, with 28.
How do I switch from PMD?
Export your data from PMD (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 PMD.
How to Switch from PMD
- Export your data from PMD (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 PMD.
PMD vs Each Alternative
| # | Tool | Free plan | Paid from | Languages supported | Autofix | Custom rules | Security rules | Score |
|---|---|---|---|---|---|---|---|---|
| 9 | PMD | Yes | Free | 16 | Yes | Yes | 8.3 | |
| 1 | ESLint | Yes | Free | 1 | Yes | Yes | Yes | 9.4 |
| 2 | Ruff | Yes | Free | 1 | Yes | No | Yes | 9.2 |
| 3 | ShellCheck | Yes | Free | 4 | Yes | 9.0 | ||
| 4 | Stylelint | Yes | Free | 8 | Yes | Yes | No | 8.8 |
| 5 | clang-tidy | Free | 3 | Yes | Yes | Yes | 8.7 | |
| 6 | Clippy | Free | 1 | Yes | No | Yes | 8.6 | |
| 7 | Credo | Yes | Free | 1 | Yes | Yes | 8.5 | |
| 8 | Biome | Yes | Free | 17 | Yes | Yes | Yes | 8.4 |
| 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 |
Reviewed by iTechGuides Editors · Editorial team · Updated Oct 2026
Last updated · How we research and update










