Packages

oxlint

1.88.0MIT
  • 1.88.0 is the latest, published 13 October 2026.
  • No known security advisory.
  • 1.x: 91 releases since 10 June 2025, 14 in the last 90 days.

Releases in the last 90 days

Feed of releases and advisories

Every stable release, newest first. Notes are quoted as the maintainers published them.

  1. 1.88.0

    13 October 2026
    ast: Refactor comment attachment storage

    Breaking changes

    • breaking

      ast: Refactor comment attachment storage

    • breaking

      ast: Add comment attachment storage

    Features

    • oxlint/lsp: Show config errors to LSP client

    • linter/unicorn/prefer-query-selector: Add allowWithVariables option

    Bug Fixes

    • linter/sort-keys: Compare natural order like ESLint

    • linter/unicorn/prefer-bigint-literals: Unwrap redundant constructor call; don't auto-fix for lost precision

    • linter: Prevent conflicting type import fixes

    • oxfmt: Follow symlinked configs in discovery

    • oxlint,oxfmt: Set stderr blocking

    Performance

    • linter/oxc/bad-array-method-on-arguments: Check arguments references once

    • linter/plugins: Inline firstCommentAtOrAfter into call sites

    • linter/plugins: Use shift over multiply for powers of 2

    • linter: Share one source per file across type-aware diagnostics

    • minifier: Use ident when checking specific id names

  2. 1.87.0

    5 October 2026
    linter/react/no-unescaped-entities: Implement suggestion

    Features

    • linter/react/no-unescaped-entities: Implement suggestion

    • linter/unicorn/no-useless-switch-case: Implement suggestion

    • linter/react/jsx-no-target-blank: Implement suggestion

    Bug Fixes

    • linter/jsx-a11y/label-has-associated-control: Validate label attribute values

    • linter/jsx-a11y/mouse-events-have-key-events: Handle nullish event handlers

    • linter/jsx-a11y/lang: Validate lang expression strings

    • linter/unicorn/numeric-separators-style: Report misgrouped BigInt literals

    • linter/unicorn/no-zero-fractions: Parenthesize separator and large integers in fixer

    • parser: Validate TypeScript type member separators

    • linter/eslint/prefer-exponentiation-operator: Preserve autofix precedence

    • linter/valid-title: Continue checks after allowed words

    • linter/eslint/no-unused-vars: Respect disabled argument checks for used ignore patterns

  3. 1.86.0

    28 September 2026
    linter/react/only-export-components: Support allowCompoundComponents

    Features

    • linter/react/only-export-components: Support allowCompoundComponents

    • linter: Add typescript/no-generated-empty-object-type

    Bug Fixes

    • linter/typescript/no-unnecessary-parameter-property-assignment: Account for parameter property reassignment

    • linter/eslint/one-var: Keep declare when splitting declarations

    • linter/eslint/require-await: Count await using as an await

    • linter/plugins: Include executing selectors in JS plugin rule timings

    • react-compiler: Handle recursive function expressions

    • react-compiler: Treat zero-argument new Date as impure

    • oxlint: Skip type-aware lint rules in type-check-only mode

    • oxlint: Skip undefined children in CFG walker

    • parser: Handle HTML comment values

    • linter/typescript/unified-signatures: Align rule with upstream

    • linter/node/no-exports-assign: Change category from style to suspicious

    • linter/import/no-duplicates: Distinguish import attributes

    • linter/unicorn/prefer-spread: Stop checking string split calls

    • linter/eslint/no-unused-vars: Honor ignore patterns inside array rest bindings

    • linter/eslint/no-unused-vars: Recognize consumed update expressions

    • linter/eslint/prefer-const: Ignore embedded assignments

    Performance

    • linter/eslint/no-unused-vars: Skip sequence checks when absent

  4. 1.85.0

    21 September 2026
    oxlint,oxfmt: Do not discover nested config in Vite+ mode

    Features

    • oxlint,oxfmt: Do not discover nested config in Vite+ mode

  5. 1.84.0

    21 September 2026
    oxlint,oxfmt: Find all vite.config.* variants

    Section of a shared release note

    Oxlint v1.84.0

    Features

    • oxlint,oxfmt: Find all vite.config.* variants

    • linter: Report JavaScript plugin rule timings

    • linter/unicorn/no-unreadable-iife: Implement suggestion

    Bug Fixes

    • linter/eslint/no-unused-vars: Report private namespace bindings

    • oxlint/lsp: Align nested config handling with configPath semantics

    • linter/esliny/no-unused-vars: Handle comments when removing imports

    • linter/esliny/no-unused-vars: Preserve rest bindings when removing array elements

    • linter/eslint/preserve-caught-error: Prevent conflicting fixes with prefer-optional-catch-binding

    • linter/unicorn/consistent-function-scoping: Detect ancestor-only function captures

    • linter/vitest/prefer-to-be-truthy: Suggest assertion rewrites

    • parser: Preserve reparsed await tokens

    • linter/react: Add a few more missing properties to no-unknown-property

    Performance

    • linter/eslint/no-restricted-exports: Skip inactive configurations

    • linter/eslint/capitalized-comments: Avoid unnecessary case-conversion allocations

    • linter/oxc/no-map-spread: Avoid collecting spread spans twice

    • linter/eslint/no-inline-comments: Skip unnecessary JSX node scans

    • linter/eslint/no-control-regex: Avoid temporary diagnostic allocations

    • linter/promise/no-multiple-resolved: Avoid collecting executor parameters

    • linter/jsx-a11y/anchor-ambiguous-text: Avoid temporary word allocations

    • linter/react/jsx-handler-names: Avoid temporary prefix collections

    • linter/typescript/consistent-generic-constructors: Avoid intermediate comment strings

    • linter/typescript/triple-slash-reference: Avoid attribute parsing allocations

    • linter/unicorn/prefer-export-from: Avoid temporary attribute vector

    • linter/eslint/no-useless-assignment: Short-circuit identical scopes

  6. 1.83.0

    14 September 2026
    linter/react: Update lint rules to accomodate changes in React 19.3

    Section of a shared release note

    Oxlint v1.83.0

    Features

    • linter/react: Update lint rules to accomodate changes in React 19.3

    Bug Fixes

    • linter/unicorn/prefer-array-flat-map: Report .filter().flatMap() chains

    • linter/unicorn/prefer-at: Report single-character substring calls

    • linter/eslint/no-unused-vars: Respect rest params after-used option

    • linter/eslint/no-unused-vars: Preserve ambient implicit exports

    • linter/unicorn/prefer-global-this: Preserve window event method references

    • linter/unicorn/prefer-default-parameters: Report violation for ??= and ||=

    • linter/unicorn/prefer-array-flat: Skip plain concat normalization

    • oxlint: Replace backlashes path for "no js runtime" diagnostic

    • linter/typescript/prefer-for-of: Handle computed collections

    • linter/typescript: Mark no-unnecessary-type-parameters and prefer-find suggestions as implemented

    • linter: Compare label text in runtime optimization assertion

    • linter: Include file path in diagnostic assertion

    • parser: Reject return types on constructor overloads

    Performance

    • linter/react/jsx-pascal-case: Avoid temporary name segment vector

    • linter/promise/catch-or-return: Avoid temporary formatting vectors

    • linter/jsx-a11y/no-static-element-interactions: Avoid role vector

    • linter/jsx-a11y/anchor-is-valid: Avoid temporary attribute vector

    • deafdba linter/react/exhaustive-deps: Avoid temporary dependency vector

    • linter/oxc/branches-sharing-code: Compute deletion spans lazily

    • linter/react/jsx-curly-brace-presence: Avoid newline position allocation

    • linter/eslint/no-restricted-properties: Skip empty configurations

    • linter/oxc/no-barrel-file: Iterate module requests directly

    • linter/unicorn/prefer-single-call: Avoid temporary argument vector

    • linter/unicorn/prefer-includes: Reduce suggestion allocations

    • linter/unicorn/no-new-buffer: Avoid temporary argument vector

  7. 1.82.0

    7 September 2026
    parser: Rename panicked to fatal_error in ParserReturn

    Section of a shared release note

    Oxlint v1.82.0

    Breaking changes

    • breaking

      parser: Rename panicked to fatal_error in ParserReturn

    Features

    • linter/eslint/no-unmodified-loop-condition: Support checkConditionalExpressions option

    Bug Fixes

    • linter/unicorn/numeric-separators-style: Correct schema defaults

    • jsx-a11y/anchor-has-content: Allow anchors passed as custom component props

    • linter/eslint/id-length: Exempt TS interface/type-literal members with never

    • ast_visit: Account for trimmed source offsets

    • linter/typescript/no-explicit-any: Fix rest parameter to unknown[]

    • linter/react/jsx-no-literals: Check nested JSX expression literals

    • parser: Fix debug assert failure when lexer error with tokens enabled

    • oxlint/lsp: Don't try to parse fix message, always fallback

    • linter/eslint/no-useless-assignment: Handle destructuring assignments

    • linter/eslint/no-array-constructor: Handle ASI hazards in fixer

    • linter: Qualify rules in rules output

    • linter/typescript/no-extraneous-class: Avoid deleting class expressions

    • linter/eslint/no-unused-vars: Handle stored arrow references

    Security

    • security

      deps: Update npm packages (#26178) (renovate[bot])

  8. 1.81.0

    1 September 2026
    linter/nextjs/no-typos: Implement suggestion

    Section of a shared release note

    Oxlint v1.81.0

    Features

    • linter/nextjs/no-typos: Implement suggestion

    Bug Fixes

    • linter/lsp: Prevent tsgolint from holding onto processes

    • linter/import/no-empty-named-blocks: Make empty value import removal a suggestion

    • linter/eslint/object-shorthand: Preserve __proto__ semantics

    • linter/unicorn/prefer-set-size: Ignore shadowed Set constructors

    • linter: Clamp invalid JS plugin locations

    • linter: Normalize reversed JS plugin locations

    • linter/eslint/no-use-before-define: Run on JS, JSX files

    • linter/unicorn/no-useless-spread: Treat typed arrays as a distinct value hint

    • linter/react/no-unstable-nested-components: Check nested component object property names

    • linter/eslint/no-unassigned-vars: Skip Svelte and Vue files

    • linter/plugins: Fix interaction between JS plugins and Vue rules

    • linter/plugins: Alter method for obtaining mutable Program when sending AST to JS plugins

    • linter/unicorn/prefer-math-min-max: Avoid unsafe autofix

  9. 1.80.0

    24 August 2026
    linter/typescript/no-confusing-non-null-assertion: Implement suggestion

    Section of a shared release note

    Oxlint v1.80.0

    Features

    • linter/typescript/no-confusing-non-null-assertion: Implement suggestion

    Bug Fixes

    • linter/oxc/double-comparisons: Handle grouped logical expressions

    • linter/eslint/no-control-regex: Refine help message text

    • estree: Include decorators in FormalParameterRest spans

    • linter/eslint/no-useless-rename: Preserve type modifiers

    • rust: Address nightly deprecations

    • linter/vue: Resolve vue imports via shared import helpers

    • linter/react/no-react-children: Resolve react imports by symbol

    • linter: Resolve globals by reference, not by name

    • linter: Remove invalid React compiler doc links

  10. 1.79.0

    18 August 2026
    linter: Split react/react-compiler into per-category rules

    Section of a shared release note

    Oxlint v1.79.0

    Breaking changes

    • breaking

      linter: Split react/react-compiler into per-category rules

    See React Compiler Support for details.

    Features

    • linter/typescript/no-empty-object-type: Implement suggestion

    Bug Fixes

    • react_compiler: Skip node_modules by default

    • linter/unicorn/no-array-callback-reference: Ignore effect library imports

    • linter: Align React Compiler rule categories

    • linter: Resolve inactive React compiler rules

    • linter/eslint/no-useless-constructor: Allow parameter properties

    • linter: Report exhaustive effect dependencies

    • linter/eslint/no-return-assign: Anchor diagnostic on return stmt

    • react-compiler: Improve derived state diagnostic

    • linter/jest/prefer-mock-return-shorthand: Preserve implementations using this

    • linter/eslint/no-redeclare: Run in ES modules, skipping only the globals check

    • linter/unicorn/prefer-default-parameters: Mark fixer as a suggestion

    • linter: Allow spread rule options in config types

    • linter/typescript/no-useless-empty-export: Skip TS declaration files

    • linter/typescript/no-useless-empty-export: Report after imports

    • linter/typescript/no-unnecessary-type-conversion: Mark fixer as suggestion

    • linter/typescript/explicit-module-boundary-types: Anchor diagnostics on arrows

    • linter/eslint/array-callback-return: Anchor diagnostic on callback

    • linter/eslint/preserve-caught-error: Handle AggregateError options

    • linter: Improve React Compiler diagnostics

    • react-compiler: Improve diagnostic spans

    • linter/unicorn/prefer-string-replace-all: Apply fixes in one pass

    • react-compiler: Standardize diagnostics

    • linter/react/display-name: Report curried HOC inner component

Show 4 earlier releases
  1. 1.78.0

    10 August 2026
    linter/jsdoc: Implement no-blank-blocks rule

    Section of a shared release note

    Oxlint v1.78.0

    Features

    • linter/jsdoc: Implement no-blank-blocks rule

    • linter/eslint: Implement one-var rule

    • linter/jsx-a11y/anchor-has-content: Add options to match eslint

    Bug Fixes

    • linter/eslint/no-implicit-coercion: Preserve template coercion whitespace

    • linter: Preserve source text for JS plugin ignore fixes

    • linter/eslint/prefer-promise-reject-errors: Handle parenthesized calls

    • linter/unicorn/new-for-builtins: Ignore optional chains

    • linter/unicorn/prefer-code-point: Downgrade the auto-fix to dangerous

    • linter/vitest: Validate consistent-test-filename regex patterns

    • react_compiler: Disable exhaustive memo validation by default

    • linter/eslint/no-unused-vars: Report invalid regex options

    • linter/unicorn/prefer-array-flat: Fix concat.apply suggestions

    • linter/react/rules-of-hooks: Detect constructor callbacks

    • linter/unicorn/new-for-builtins: Support Float16Array

    • linter/unicorn/error-message: Support SuppressedError messages

    • linter: Assert token lookup invariants

    • linter/eslint/no-unused-vars: Bound catch parameter lookup

    • linter/unicorn/switch-case-braces: Bound token lookup

    • linter/unicorn/no-static-only-class: Bound token lookup

    • linter/unicorn/empty-brace-spaces: Bound token lookup

    • linter/eslint/no-unreachable-loop: Do not report loops whose body has a finally block

    • linter/eslint/no-param-reassign: Validate ignorePropertyModificationsForRegex property

    • linter/eslint/no-throw-literal: False positive on variable declared without initializer

    • oxlint: Normalize customized rule names

    • linter/unicorn/consistent-existence-index-check: Bound token lookup

    • linter/typescript/prefer-namespace-keyword: Bound token lookup

    • linter/typescript/no-namespace: Bound token lookup

  2. 1.77.0

    3 August 2026
    semantic: Return borrowed JSDoc so the parse cache works

    Section of a shared release note

    Oxlint v1.77.0

    Breaking changes

    • breaking

      semantic: Return borrowed JSDoc so the parse cache works

    • breaking

      ast: Store single parameter in TSIndexSignature::parameter

    • breaking

      ast: Introduce ExportDeclaration, ExportFromDeclaration

    • breaking

      ast: Introduce ArrowFunctionBody enum

    Features

    • linter/oxc/bad-char-at-comparison: Expand coverage

    • oxlint: Show file:line:col in github format annotation messages

    Bug Fixes

    • linter/unicorn/new-for-builtins: Detect parenthesized member expression object

    • linter: Reject duplicate JS plugin names

    • linter: Ignore unsigned shifts in prefer-math-trunc

    • linter/eslint/prefer-promise-reject-errors: Handle ambient error variables

    • linter/oxc/no-async-await: Bound token lookup

    • linter/oxc/bad-bitwise-operator: Bound token lookups

    • linter/import/no-duplicates: Bound token lookup

    • linter/import/consistent-type-specifier-style: Bound token lookup

    • linter/eslint/yoda: Bound token lookup

    • linter/oxc/no-map-spread: Avoid recursive declaration traversal

    • linter/eslint/prefer-promise-reject-errors: Move category to pedantic

    • linter/eslint/require-await: Bound token lookup

    • linter/eslint/prefer-template: Bound token lookup

    • linter/unicorn/new-for-builtins: Align Date() diagnostic message with upstream

    • linter/eslint/prefer-object-spread: Bound token lookup

    • oxlint,oxfmt: Respect .gitignore for walk targets and explicit paths

    • linter/eslint/prefer-const: Bound token lookup

    • linter/eslint/object-shorthand: Bound token lookups

    • linter/eslint/no-var: Bound token lookup

    • linter/eslint/no-unused-vars: Bound token lookups

  3. 1.76.0

    27 July 2026
    linter: Verify eslint/no-restricted-globals config schema

    Section of a shared release note

    Oxlint v1.76.0

    Features

    • linter: Verify eslint/no-restricted-globals config schema

    • linter: Verify jest/vitest prefer-lowercase-title config schema

    • linter/oxc: Add bad-match-all-arg rule

    • linter/n: Implement exports-style rule

    • linter/eslint: Implement id-denylist rule

    • linter/typescript-eslint: Implement suggestion for class-literal-property-style rule

    Bug Fixes

    • linter: Mark missing suggestions as pending

    • oxlint: Absolutize explicit CLI paths even with --no-ignore

    • linter/jsx-a11y/interactive-supports-focus: Match eslint behavior for custom components

    • linter/typescript/no-confusing-non-null-assertion: Report in and instanceof

    • linter: Unicorn/no-array-reverse and no-array-sort replacements should be suggestions

    • config: Preserve defineConfig field JSDoc

    • linter/node/no-top-level-await: Clarify diagnostic

    • linter/eslint/func-names: Ignore overloads

    • estree: Handle empty spans serializing ImportMeta and NewTarget

    Performance

    • linter/jest-vitest/no-test-return-statement: Only run on return statements

    • linter/eslint/func-style: Rewrite rule to not iterate over all nodes

    • linter/eslint/no-new-func: Only run on new and call expressions

    • linter: Avoid Vec allocations via bound_names

    • linter/eslint/no-const-assign: Avoid Vec allocation per const declarator

    • linter/typescript/adjacent-overload-signatures: Avoid collecting vec in some cases

    • linter/node/exports-style: Iterate once over global references

    • linter: Avoid allocations in jest/no-deprecated-functions

    • linter: Speed up jest/vitest prefer-each

    • linter/eslint/prefer-rest-params: Run once per file

    • linter/eslint/no-this-before-super: Skip files without classes

  4. 1.75.0

    21 July 2026
    Announcing Type-Aware Linting Stable

    Section of a shared release note

    Oxlint v1.75.0

    Highlights

    Features

    • linter/node: Implement no-top-level-await rule

    • linter/react: Implement function-component-definition rule

    • linter: Reuse jest/padding-around-test-blocks for vitest/padding-around-test-blocks

    • linter/import/consistent-type-specifier-style: Support prefer-top-level-if-only-type-imports option

    Bug Fixes

    • oxlint,oxfmt: Report error for invalid glob patterns

    • linter/unicorn/no-useless-undefined: Preserve valid parameter defaults

    • linter/eslint/prefer-destructuring: Handle typed declarations

    • linter/eslint/no-throw-literal: Handle assigned errors

    • linter: Detect React components from returned JSX

    • linter/eslint/no-useless-computed-key: Allow TS syntax in computed keys

    Performance

    • linter/unicorn/prefer-event-target: Only run on Class and NewExpression nodes

    • oxlint/lsp: Only invoke lint on code actions when document is not opened

    • diagnostics: Box OxcDiagnosticInner to reduce binary size

    • linter/reporter/stylish: Compute diagnostic Info once per diagnostic

All 211 releases

Major versions

  • 1.xsince 10 June 2025 · latest 1.88.0 · 91 releases
  • 0.xsince 27 June 2023 · latest 0.18.1 · 120 releases

Quality and security signals

What npm and deps.dev say about the latest release. Signals, not a verdict.

Reading npm and deps.dev…

Registry facts last checked 14 October 2026. Releases and advisories last read 14 October 2026.

Know when your own dependencies move

Inlinr tracks your coding time automatically. Switch dependency tracking on for a project and it reads that repository's manifest to show what is behind and what has been deprecated — off by default, one project at a time.