{"slug":"best-javascript-linter","title":"Best JavaScript linter","question":"What is the best JavaScript and TypeScript linter in 2026?","verdict":"As of 2026-08-23, ChatGPT, Claude, Gemini and Grok collectively rank ESLint #1 for javascript linter on ModelsAgree by aggregate score. The models' case: Still the strongest default for serious JavaScript/TypeScript projects: unmatched rule and plugin depth, mature editor/CI integration, highly configurable flat config. The models' main caveat: Type-aware linting is comparatively slow and configuration/plugin complexity is substantially higher than newer native tools. The strongest alternative is Biome — Single fast Rust toolchain that lints and formats JS/TS/JSX/JSON with strong Prettier-compatible formatting, near-zero config, and huge speed gains. Not unanimous: Grok picks Oxlint. Source: https://modelsagree.com/best/best-javascript-linter (modelsagree.com, CC BY 4.0).","category":"Frontend","url":"https://modelsagree.com/best/best-javascript-linter","updated":"2026-08-23","models":["ChatGPT","Claude","Gemini","Grok"],"consensus":"3 of 4 models rank ESLint the top pick","disagreement":"Grok picks Oxlint","combined":[{"rank":1,"product":"ESLint","domain":"eslint.org","score":20,"appearances":4,"modelRanks":{"ChatGPT":1,"Claude":1,"Gemini":1,"Grok":3},"reason":"Still the strongest default for serious JavaScript/TypeScript projects: unmatched rule and plugin depth, mature editor/CI integration, highly configurable flat config, and typescript-eslint provides the deepest proven type-aware analysis; ESLint 10 remains actively developed in 2026. ([ESLint][1])"},{"rank":2,"product":"Biome","domain":"biomejs.dev","score":15,"appearances":4,"modelRanks":{"ChatGPT":3,"Claude":2,"Gemini":2,"Grok":2},"reason":"Single fast Rust toolchain that lints and formats JS/TS/JSX/JSON with strong Prettier-compatible formatting, near-zero config, and huge speed gains over ESLint; the most practical all-in-one for teams wanting one tool instead of ESLint+Prettier."},{"rank":3,"product":"Oxlint","domain":"oxc.rs","score":15,"appearances":4,"modelRanks":{"ChatGPT":2,"Claude":3,"Gemini":3,"Grok":1},"reason":"Fastest production linter by a wide margin (50-100x ESLint baseline, 12-18x on type-aware workloads), with stable type-aware linting (tsgolint v7, July 2026) covering 59 of 61 typescript-eslint type-aware rules using the real TypeScript type system via typescript-go; broad rule coverage including React/Jest/import equivalents, low-config defaults focused on correctness, excellent migration tooling, and proven scale for large monorepos/CI without sacrificing semantic depth. Assumes typical practitioner prioritizes catching real TS bugs (floating promises, misused types, etc.) at interactive speeds over niche plugins."},{"rank":4,"product":"Deno lint","domain":"deno.com","score":2,"appearances":2,"modelRanks":{"ChatGPT":5,"Claude":5},"reason":"Excellent zero-configuration native linter for JavaScript and TypeScript, extremely fast and especially compelling inside Deno projects because it ships directly with the runtime and requires essentially no dependency/configuration overhead."},{"rank":5,"product":"Semgrep","domain":"semgrep.dev","score":2,"appearances":1,"modelRanks":{"Gemini":4},"reason":"Premier solution for defining custom AST-based pattern rules, security vulnerability scanning, and enforcing codebase-wide architectural constraints across JavaScript and TypeScript with minimal syntax friction."},{"rank":6,"product":"SonarQube","domain":"sonarsource.com","score":2,"appearances":1,"modelRanks":{"ChatGPT":4},"reason":"Strongest option when linting is part of broader code-quality and security enforcement: sophisticated JS/TS bug, maintainability, vulnerability, duplication, and quality-gate analysis makes it particularly valuable for teams and CI rather than just editor feedback."}],"perModel":{"ChatGPT":[{"rank":1,"product":"ESLint","reason":"Still the strongest default for serious JavaScript/TypeScript projects: unmatched rule and plugin depth, mature editor/CI integration, highly configurable flat config, and typescript-eslint provides the deepest proven type-aware analysis; ESLint 10 remains actively developed in 2026. ([ESLint][1])","fix":"Type-aware linting is comparatively slow and configuration/plugin complexity is substantially higher than newer native tools."},{"rank":2,"product":"Oxlint","reason":"Near-tie with ESLint for many modern codebases: dramatically faster native implementation, strong built-in coverage of major ESLint ecosystems, ESLint-compatible JS plugins, and stable type-aware linting now covers 59 of 61 typescript-eslint type-aware rules. ([Oxc][2])","fix":"ESLint-plugin compatibility is not yet absolute—JS plugin support remains alpha and unsupported parser/custom-file edge cases can still force ESLint. ([Oxc][3])"},{"rank":3,"product":"Biome","reason":"Best low-friction all-in-one choice: extremely fast linting plus formatting, simple configuration, strong JS/TS rule coverage, multi-file analysis, plugins, and native type inference that enables type-aware rules without depending on the TypeScript compiler. ([Biome][4])","fix":"Its lint rule/plugin ecosystem is still materially narrower than ESLint's, so projects needing specialized framework or organization-specific rules can hit gaps."},{"rank":4,"product":"SonarQube","reason":"Strongest option when linting is part of broader code-quality and security enforcement: sophisticated JS/TS bug, maintainability, vulnerability, duplication, and quality-gate analysis makes it particularly valuable for teams and CI rather than just editor feedback.","fix":"Heavier infrastructure and workflow than a normal linter, making it poor value if you simply want fast local linting."},{"rank":5,"product":"Deno lint","reason":"Excellent zero-configuration native linter for JavaScript and TypeScript, extremely fast and especially compelling inside Deno projects because it ships directly with the runtime and requires essentially no dependency/configuration overhead.","fix":"Its intentionally constrained rule and plugin model makes it substantially less flexible than ESLint, Oxlint, or Biome for general Node/browser ecosystems."}],"Claude":[{"rank":1,"product":"ESLint","reason":"Still the most complete and extensible linter with the deepest plugin ecosystem (typescript-eslint, react, import, jsx-a11y, etc.), the mature flat-config system, custom-rule authoring, and near-universal editor/CI integration; typescript-eslint gives it type-aware rules no fully native rewrite yet matches. Assumes the typical practitioner needs breadth and type-aware linting over raw speed.","fix":"Slowest of the serious options on large codebases and config/plugin setup remains the most involved; type-aware rules add real overhead."},{"rank":2,"product":"Biome","reason":"Single fast Rust toolchain that lints and formats JS/TS/JSX/JSON with strong Prettier-compatible formatting, near-zero config, and huge speed gains over ESLint; the most practical all-in-one for teams wanting one tool instead of ESLint+Prettier.","fix":"Rule coverage is narrower than ESLint and it lacks full type-aware linting and the third-party plugin ecosystem, so complex codebases still hit gaps."},{"rank":3,"product":"Oxlint","reason":"Extremely fast Rust-based linter (oxc project) built to be a drop-in ESLint accelerator, with hundreds of ported rules and increasingly a type-aware story; ideal as a pre-commit/CI speed layer for very large repos.","fix":"Still maturing — rule parity and plugin support trail ESLint, so it usually supplements rather than fully replaces it."},{"rank":4,"product":"ESLint","reason":"The definitive engine for TypeScript-specific and type-aware lint rules; indispensable for any serious TS project and the reason ESLint dominates TS linting.","fix":"Not a standalone linter — it runs atop ESLint, and its type-aware rules require typechecking that can be slow on big projects."},{"rank":5,"product":"Deno lint","reason":"Fast built-in Rust linter shipped with the Deno runtime, zero-install and zero-config with sensible recommended rules and good TS support out of the box.","fix":"Best value only inside the Deno ecosystem; limited extensibility and not aimed at general Node/bundler projects."}],"Gemini":[{"rank":1,"product":"ESLint","reason":"Unmatched ecosystem maturity, exhaustive framework plugin support, and deep semantic type-aware linting via typescript-eslint; near-tie with Biome on developer-experience velocity, but takes the top spot due to total extensibility and complex safety guarantees.","fix":"Noticeably slower execution and high memory overhead on large codebases, especially when evaluating type-informed rules across extensive monorepos."},{"rank":2,"product":"Biome","reason":"Exceptional Rust-based execution speed, seamless zero-config setup, integrated formatting, and robust out-of-the-box JavaScript and TypeScript support that drastically simplifies the frontend toolchain.","fix":"Inability to run third-party ESLint plugins and lack of deep type-aware rule analysis, making it unsuitable for projects dependent on niche framework rules or TypeScript compiler-backed linting."},{"rank":3,"product":"Oxlint","reason":"Blazing-fast performance engineered to run 50–100x faster than traditional tooling, making it ideal as a zero-friction pre-commit or CI gate that catches common correctness bugs without complex configuration.","fix":"Focused narrowly on correctness and performance diagnostics rather than comprehensive code style enforcement, custom rule ecosystems, or deep type-checking."},{"rank":4,"product":"Semgrep","reason":"Premier solution for defining custom AST-based pattern rules, security vulnerability scanning, and enforcing codebase-wide architectural constraints across JavaScript and TypeScript with minimal syntax friction.","fix":"Not built for granular syntactic hygiene, formatting, or micro-level developer feedback, making it an architectural/security companion rather than a primary day-to-day general linter."}],"Grok":[{"rank":1,"product":"Oxlint","reason":"Fastest production linter by a wide margin (50-100x ESLint baseline, 12-18x on type-aware workloads), with stable type-aware linting (tsgolint v7, July 2026) covering 59 of 61 typescript-eslint type-aware rules using the real TypeScript type system via typescript-go; broad rule coverage including React/Jest/import equivalents, low-config defaults focused on correctness, excellent migration tooling, and proven scale for large monorepos/CI without sacrificing semantic depth. Assumes typical practitioner prioritizes catching real TS bugs (floating promises, misused types, etc.) at interactive speeds over niche plugins.","fix":"No built-in formatter (pair with Oxfmt or Prettier) and still-maturing custom/JS plugin story, so not ideal as a complete drop-in for heavily customized ESLint ecosystems without a hybrid pass."},{"rank":2,"product":"Biome","reason":"Best practical all-in-one value with native speed (20-50x ESLint), 500+ rules including solid type-aware support via its own inference engine, zero/low-config DX, built-in formatter (near-Prettier compatible) + import organization, cross-file analysis, and multi-language coverage that collapses the classic ESLint+Prettier stack for most greenfield or simplification-focused TS/JS projects. Near-tie with Oxlint on overall merit for typical daily use.","fix":"Type-aware rules rely on Biome’s inference rather than the official TypeScript type checker (coverage and fidelity still trailing full typescript-eslint), plus limited custom rule/plugin depth compared with ESLint."},{"rank":3,"product":"ESLint","reason":"Unmatched plugin ecosystem and configurability (typescript-eslint, React, Next.js, a11y, security, testing, custom rules) that still covers edge cases and frameworks the Rust tools have not fully matched; mature, battle-tested type-aware linting and the de-facto standard for complex existing","fix":null}]},"missedByModel":{"ChatGPT":[{"product":"quick-lint-js","reason":"exceptionally fast and simple, but its scope and ecosystem are too limited for a top general-purpose JS/TS recommendation"},{"product":"StandardJS","reason":"excellent convention-over-configuration experience, but it is fundamentally an opinionated ESLint setup rather than a stronger linting engine"}],"Claude":[{"product":"quick-lint-js","reason":"very fast and great editor feedback but focused narrowly on JS error-finding, not a full configurable rule engine"},{"product":"Rome","reason":"defunct — superseded by its Biome fork, so not a live option"}],"Gemini":[{"product":"SonarLint","reason":"Provides deep enterprise-grade SAST and bug pattern detection, but is too resource-heavy and cumbersome to serve as a fast daily JS/TS linter"},{"product":"quick-lint-js","reason":"Offers instant in-editor feedback with zero latency, but lacks broad rule sets, type-awareness, and the extensibility needed for modern full-stack workflows"}]}}