eslint-config-setup
v0.3.3
Published
Pre-generated, permutation-based ESLint flat configs for modern TypeScript & React projects
Maintainers
Readme
ESLint Config Setup
The ESLint config for teams that ship with AI and want to move fast.
Most ESLint configs compose rules at runtime from dozens of plugins. That means version conflicts, plugin mismatches, and "works on my machine" differences. ESLint Config Setup resolves every rule at build time — you get a flat, pre-built config where every rule is already decided. No runtime composition, no surprises.
- AI guardrails — a dedicated
aimode that enforces what code review can't: explicit types, strict naming, no magic values, complexity limits. Rules that humans find tedious are trivial for an AI to follow. The AI doesn't push back. It just fixes the code. - OxLint-ready — a single
oxlintflag disables every ESLint rule that OxLint already covers, andgetOxlintConfig()generates a matching OxLint config. No manual migration, no rule conflicts, no coverage gaps. Run both linters, get the full rule set at 100x the speed. - 27 plugins, one import — TypeScript (
strictTypeChecked), React 19, import cycles, security, browser compat, spell checking, and more. Every rule pre-resolved at build time. No plugin conflicts, no version mismatches.
// eslint.config.ts
import { getEslintConfig } from "eslint-config-setup"
export default await getEslintConfig({ react: true, ai: true })Quick Start
npm install -D eslint-config-setup eslint typescript// eslint.config.ts
import { getEslintConfig } from "eslint-config-setup"
export default await getEslintConfig({ react: true })Configuration flags
| Flag | Default | What it does |
|------|---------|--------------|
| react | false | React 19+ with Hooks, Compiler, JSX-A11y, Storybook, Testing Library |
| node | false | Node.js globals, eslint-plugin-n. Disables browser compat checks. |
| ai | false | Strict guardrails for AI-generated code (naming, types, complexity) |
| oxlint | false | Disables ESLint rules already covered by OxLint |
Flags are independent. Combine them however you need.
Customizing rules
import { getEslintConfig, disableRule, addRule } from "eslint-config-setup"
const config = await getEslintConfig({ react: true, ai: true })
disableRule(config, "@typescript-eslint/no-magic-numbers", { scope: "tests" })
addRule(config, "no-console", "off", { scope: "scripts" })
export default configDocumentation
- Getting Started — installation and setup
- AI Mode — why AI-generated code needs different rules
- OxLint Integration — run ESLint + OxLint without conflicts
- All 27 Plugins — what's included and why
- Configuration — flags and usage examples
- Rule API — rule manipulation and scoped overrides
- Architecture — how pre-generation works
Contributing
See CONTRIBUTING.md for development setup, architecture overview, and PR guidelines.
License
MIT — Copyright (c) 2025 Sebastian Software GmbH
