Stack Gems
Menu

Tag

Lint tools

6 reviewed tools: 6 free or open source.

Order: free and open source first, then hosted products with a real free tier, then paid-led; catalog order inside each group, with quiet or archived repos last. Not a score, and no tool pays for its place.

6 tools

  • RuffPython linter faster than your test suite

    Free / OSS · OSS/MIT · 50.2k GitHub stars

    VerdictOne fast tool to replace your entire lint toolchain.

    CatchNot every rule from every tool is implemented. Some teams have strong opinions about specific linter behaviors.

  • BiomeRust formatter and linter that replaces Prettier plus ESLint

    Free / OSS · Apache-2.0 · 26k GitHub stars

    VerdictThe default JS format+lint binary in 2026. Fast, dual-licensed, not ESLint.

    CatchNot a 1:1 ESLint plugin ecosystem. Some rules and framework plugins do not exist yet. Dual-license is MIT OR Apache-2.0 at your option — there is no single LICENSE file at the repo root.

  • OxcMIT Rust JS/TS toolchain: parser, linter, and friends

    Free / OSS · OSS/MIT · 23.1k GitHub stars

    VerdictMIT Rust JS/TS toolchain. Substrate and oxlint, not Biome.

    CatchOxc is the lower-level toolchain / oxlint lane, not a Biome killer. It will not replace Prettier+ESLint overnight the way Biome’s single format+lint tool can.

  • ShellCheckGPL-3.0 de-facto static analysis for shell scripts

    Free / OSS · GPL-3.0 · 40.2k GitHub stars

    VerdictGPL-3.0 shell linter. Free forever CLI; the copyleft is the loud license, not a seat tax.

    CatchGPL-3.0 copyleft — fine as a laptop/CI CLI; read the license before you embed the analyzer into a proprietary product. Vs Hadolint (Dockerfile AST + ShellCheck on RUN): ShellCheck is *shell scripts*, not Dockerfiles. It is static analysis, not a runtime or a shell.

  • HadolintGPL-3.0 AST Dockerfile linter + ShellCheck on RUN

    Free / OSS · GPL-3.0 · 12.5k GitHub stars

    VerdictGPL-3.0 Dockerfile linter. Free forever; lint the recipe, dive the layers, lazydocker the running boxes.

    CatchGPL-3.0 copyleft — same class as ShellCheck; not MIT. Vs Docker (the engine), dive (*layer/size forensics*), and lazydocker (Docker/Compose *TUI*): Hadolint is the *Dockerfile linter*, not a runtime, not layer diffs, not a container dashboard.

  • @shadcn/lintMIT agent-first linter for Tailwind v4 design systems — ESLint or Oxlint

    Free / OSS · OSS/MIT · 3.2k GitHub stars

    VerdictMIT design-system linter when agents keep restyling your Tailwind components — errors that teach the fix; Tailwind v4 and early versions only.

    CatchTailwind v4 only, and pre-1.0 (0.2.0), so expect rule and option churn. The “almost every task reached zero violations” results are the authors’ own evals. Under Oxlint, Vue and Svelte files are read only in their script blocks, not the template, and `<style>` blocks in .vue/.svelte are not linted at all — use a CSS linter. You still have to write the contracts; the defaults do not know your design system. Vs shadcn-ui (the component source it pairs with): this is the guardrail, not the components.

FAQ

What is the top free pick among Lint tools?
Ruff leads the Stack Gems list for Lint tools. Verdict: One fast tool to replace your entire lint toolchain.
How many Lint tools does Stack Gems review?
6: 6 free or open source. Each review has a verdict and an honest Catch; no tool pays for its spot.
Which Lint tools can I self-host for free?
Ruff, Biome, Oxc, ShellCheck, Hadolint and @shadcn/lint.
Which Lint tools have the most GitHub stars?
Ruff (50.2k), ShellCheck (40.2k), Biome (26k), per GitHub on 2026-10-21. Stars measure attention, not fit; read the Catch.
What is the catch with Ruff?
Not every rule from every tool is implemented.