Getting started
Getting started
Install the plugin, select a preset and run Oxlint.
Install
Install the package and Oxlint in your TypeScript project. The package targets Node.js 24 or later. The npm release workflow is enabled, but the first owner publication and Trusted Publisher setup are pending. Until the package is actually available in the registry, use a supplied npm pack archive. Do not substitute workspace paths.
# Before publication, install a supplied package archive:
npm install --save-dev ./totto2727-oxlint-0.0.0.tgz oxlint
# After npm publication:
npm install --save-dev @totto2727/oxlint oxlintConfigure
Create an ESM oxlint.config.ts and import a preset object:
import { defineConfig } from 'oxlint'
import typescript from '@totto2727/oxlint/typescript'
export default defineConfig({ extends: [typescript] })Use @totto2727/oxlint/effect for Effect-only policy, or @totto2727/oxlint/preset for both groups. The exported default plugin uses the rules/ namespace. Named exports typescriptRuleNames, effectRuleNames and compatibilityRuleNames expose group membership. The presets already include a pinned MIT port of the native Ultracite 7.12.3 core configuration. The library does not depend on the full Ultracite CLI package, and runs directly with Oxlint. You do not need a second Ultracite preset or CLI wrapper. React, type-aware rules, Ultracite JavaScript plugins and oxfmt integration are separate opt-in choices, not automatically enabled. For explicit per-rule configuration in .oxlintrc.json instead of a preset (this does not apply the native core baseline):
{
"jsPlugins": ["@totto2727/oxlint"],
"rules": {
"rules/require-import-extension": "error",
"rules/consistent-import-extension": ["error", { "mode": "ts" }]
}
}Use mode js for emitted JavaScript imports, or mode ts for TypeScript source execution. Missing extensions cannot be automatically inferred. Do not enable force-ts-extension alongside the two replacement rules.
Run and review
npx oxlint
npx oxlint --fixReview diagnostics and fixes before committing. Only rules with a documented automatic fix change code. Preset rules apply to test files as well as application sources. There are no test-only rule exemptions. Use an oxlint-disable-next-line comment with -- and a concrete reason only when a genuine boundary exception is required. See TypeScript, Effect, and the Oxlint configuration documentation.