A shared oxlint config for TypeScript projects.
Axiom is a curated, opinionated set of oxlint rules — the linting distilled from years of ESLint configs, now running on the OXC toolchain. Drop it into oxlint.config.ts and get a sensible baseline without picking rules one by one.
Covers 137 rules across 9 plugins: eslint, typescript, oxc, import, jsdoc, promise, node, unicorn, and vitest/jest (scoped to test files).
pnpm add -D @2bad/axiom oxlintoxlint is a peer dependency. Version >= 1.60 is required.
Create oxlint.config.ts in your project root:
import { axiom } from '@2bad/axiom'
import { defineConfig } from 'oxlint'
export default defineConfig({ extends: [axiom] })Add lint scripts to package.json:
{
"scripts": {
"check": "oxlint ./source",
"fix": "oxlint --fix ./source"
}
}extends merges — add your own rules, overrides, or ignorePatterns alongside and they win:
import { axiom } from '@2bad/axiom'
import { defineConfig } from 'oxlint'
export default defineConfig({
extends: [axiom],
rules: {
'typescript/no-explicit-any': 'off'
}
})Axiom only handles linting. Pair with oxfmt for formatting — all stylistic concerns (quotes, indentation, semis, spacing) live there, not in the lint rules.
In mathematics, an axiom is a statement taken to be true without proof. These rules are the baseline; debate ends here.
Contributions welcome. See issues or submit a PR.