lintmax

Configuration

All lintmax.config.ts options

All options live in lintmax.config.ts.

Top-level options

ignores

ignores: ['packages/ui/**', '.intlayer/cache/**']

compact

Controls consecutive blank line removal in source files (default true).

compact: false

comments

Controls comment deletion (default true).

comments: false

tailwind

tailwind: false
tailwind: 'src/styles/globals.css'

When omitted or true, lintmax auto-detects common entries. In monorepos, it prefers ui/src/styles/globals.css when multiple candidates exist.

tsconfigRootDir

tsconfigRootDir: '/absolute/project/root'

eslint

Use top-level tailwind and tsconfigRootDir instead of nesting them.

eslint.off

eslint: {
  off: ['@typescript-eslint/no-magic-numbers']
}

eslint.ignores

eslint: {
  ignores: ['vendor/**']
}

eslint.append

For JSON-serializable inline config:

eslint: {
  append: [{ files: ['tests/**'], rules: { 'no-magic-numbers': 'off' } }]
}

For preset modules with runtime plugins, use eslintImport(...):

import { defineConfig, eslintImport } from 'lintmax'

export default defineConfig({
  eslint: {
    append: [
      eslintImport({
        files: ['backend/convex/**/*.ts'],
        from: '@noboil/convex/eslint',
        name: 'recommended'
      })
    ]
  }
})

biome

biome.off

biome: {
  off: ['noConsole']
}

biome.ignores

biome: {
  ignores: ['_generated/**']
}

biome.overrides

biome: {
  overrides: [{ includes: ['packages/ui/**'], off: ['noConsole'] }]
}

oxlint

oxlint.off

oxlint: {
  off: ['no-console']
}

oxlint.ignores

oxlint: {
  ignores: ['_generated/**']
}

oxlint.overrides

oxlint: {
  overrides: [{ files: ['**/*.test.ts'], off: ['no-console'] }]
}

Shared file-pattern overrides

overrides: {
  '**/*.test.ts': {
    eslint: ['no-console'],
    oxlint: ['no-console'],
    biome: ['noConsole']
  }
}

Each entry must define at least one linter action: biome, eslint, or oxlint.

TypeScript preset

{ "extends": "lintmax/tsconfig" }

On this page