Skip to content

sebastian-software/eslint-config-setup

Repository files navigation

ESLint Config Setup

CI npm version npm downloads Codecov License: MIT Node.js TypeScript ESLint

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 ai mode 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 oxlint flag disables every ESLint rule that OxLint already covers, and getOxlintConfig() 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 })

Requires Node.js >= 22, ESLint >= 9.22, and TypeScript >= 5.0.

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 config

Documentation

Contributing

See CONTRIBUTING.md for development setup, architecture overview, and PR guidelines.

License

MIT — Copyright (c) 2025 Sebastian Software GmbH

About

Pre-generated ESLint flat configs for TypeScript & React — 25 plugins, AI mode, OxLint-ready. One import, zero runtime overhead.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages