{"id":19671,"library":"eslint-interactive","title":"eslint-interactive","description":"eslint-interactive is a CLI tool that wraps ESLint to help fix large numbers of errors interactively, grouped by rule. Current stable version is 13.0.1, published under an Apache-2.0 license, with releases following semver. It requires Node.js ^20.19.0 || ^22.12.0 || >=24.0.0 and ESLint >=9.0.0. Unlike plain eslint --fix, it provides per-rule actions: run fix, disable per line, disable per file, convert error to warning, apply suggestions, and forcibly fix. Supports flat config only (eslint.config.js); legacy .eslintrc is dropped. Global installation is not recommended.","status":"active","version":"13.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/mizdra/eslint-interactive","tags":["javascript","eslint"],"install":[{"cmd":"npm install eslint-interactive","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-interactive","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-interactive","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: eslint-interactive wraps ESLint and requires it as a peer dependency (>=9.0.0).","package":"eslint","optional":false}],"imports":[{"note":"Programmatic API; use in Node.js ESM. The Core class exposes methods like applySuggestions and makeFixableAndFix.","symbol":"Core","correct":"import { Core } from 'eslint-interactive'"},{"note":"eslint-interactive is primarily a CLI tool; programmatic usage via Core is advanced.","wrong":"require('eslint-interactive')","symbol":"default (CLI)","correct":"npx eslint-interactive --help"},{"note":"Type import for Core constructor options.","symbol":"Options (TypeScript)","correct":"import type { Options } from 'eslint-interactive'"}],"quickstart":{"code":"// Install locally\n// npm i -D eslint-interactive eslint\n\n// Run the CLI interactively on src/\n// npx eslint-interactive src/\n\n// Programmatic usage (ESM):\nimport { Core } from 'eslint-interactive';\n\nconst core = new Core({\n  // Options matching eslint's CLI flags\n  cwd: process.cwd(),\n  extensions: ['.js', '.ts'],\n});\n\n// Perform a lint run interactively (opens the TUI)\nawait core.lint(['src/']);\n\n// Use programmable API to apply suggestions:\nconst result = await core.applySuggestions(\n  ['src/'],\n  (problem, suggestion, metadata) => {\n    // Custom logic to select suggestion\n    return suggestion; // or null to skip\n  },\n);\nconsole.log(`Fixed ${result.fixedCount} problems.`);","lang":"typescript","description":"Shows both CLI usage and programmatic API with Core class and applySuggestions method."},"warnings":[{"fix":"Upgrade to ESLint >=9.0.0 and migrate to flat config (eslint.config.js).","message":"Drop ESLint v8 and legacy config (.eslintrc) support.","severity":"breaking","affected_versions":">=13.0.0"},{"fix":"Use --no-eslintrc without a value, or omit the flag altogether.","message":"Boolean options no longer accept arguments (e.g. --no-eslintrc=false, --cache=false).","severity":"breaking","affected_versions":">=12.0.0"},{"fix":"Explicitly pass --cache if you need caching.","message":"Cache disabled by default; --cache-location default changed.","severity":"breaking","affected_versions":">=12.0.0"},{"fix":"Use a supported Node.js version.","message":"Node.js >=18 required (v13 requires >=20.19.0).","severity":"breaking","affected_versions":">=11.0.0"},{"fix":"Install eslint-interactive locally as a devDependency.","message":"Global installation is not recommended and only supported on a best-effort basis.","severity":"deprecated","affected_versions":"*"},{"fix":"Migrate to flat config or downgrade to v12 (but v12 may lack latest features).","message":"Requires flat config; if using legacy .eslintrc, you must use eslint-interactive@^12.","severity":"gotcha","affected_versions":">=13.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Install locally: npm i -D eslint-interactive and use npx or ./node_modules/.bin/eslint-interactive.","cause":"Global install or missing local dependency.","error":"Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'eslint-interactive'"},{"fix":"Upgrade to eslint-interactive >=11.0.3.","cause":"Incompatible with ESLint 9.5.0+ when using older eslint-interactive (<11.0.3).","error":"Config (unnamed): Key \"language\""},{"fix":"Migrate to flat config or downgrade to eslint-interactive@^12.","cause":"Attempting to use eslint-interactive >=13 with .eslintrc.","error":"Error: Flat config only. Use eslint-interactive@^12 for legacy config."},{"fix":"Replace --no-eslintrc=false with --no-eslintrc.","cause":"Boolean options do not accept =false; use --no-eslintrc flag alone.","error":"Error: The '--no-eslintrc' option does not accept a value."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}