eslint_d

raw JSON →
15.0.2 verified Sat Apr 25 auth: no javascript

eslint_d is a drop-in replacement for ESLint that runs linting in a persistent background daemon, drastically reducing startup latency (e.g., ~300ms to ~100ms per run on modern hardware). Version 15.0.2 requires Node.js >=22 and supports ESLint v4 through v10. It automatically starts, stops, and restarts the server, binds to parent/editor processes, and falls back to a bundled ESLint if a local one is missing. Key differentiators include environment variables for fine-tuning behavior, support for monorepos via `ESLINT_D_ROOT`, and a `--fix-to-stdout` option for editor integration. Unlike editor-built-in caches, it provides speed benefits to Vim, Neovim, Emacs, and Sublime Text, while Atom, VSCode, and WebStorm gain little due to their own caching.

error Failed to start daemon: EADDRINUSE
cause Another eslint_d instance or process is already using the default port.
fix
Run 'eslint_d stop' to kill the existing daemon, then restart.
error eslint_d: command not found
cause eslint_d is not installed globally or not in PATH.
fix
Install globally: 'npm install -g eslint_d'. Or use 'npx eslint_d'.
error Error: No matching ESLint version found. ESLint v10.0.0 is not supported.
cause eslint_d has a bundled ESLint that may not match the local project's version, or the installed ESLint version is out of support range (v4-v10).
fix
Ensure local eslint version is between 4 and 10. Update eslint or use a compatible version.
breaking eslint_d v15 requires Node.js >=22. Older Node versions will not work.
fix Upgrade Node.js to 22+ or use eslint_d v14.x if on earlier Node versions.
gotcha Editors like Atom, VSCode, and WebStorm already cache ESLint; using eslint_d may not improve performance and can cause conflicts.
fix Do not configure eslint_d in those editors; stick with built-in ESLint support.
gotcha If ESLINT_D_PPID is not set and ESLINT_D_IDLE is 0, the daemon may never exit automatically, consuming resources.
fix Set ESLINT_D_PPID to 'auto' or a specific PID, or set ESLINT_D_IDLE to a positive number of minutes.
deprecated CommonJS require() patterns for eslint_d are deprecated; it is ESM-only since v15.
fix Use ES module imports if using as dependency (though primarily CLI). For CLI usage, use npx or global install.
npm install eslint_d
yarn add eslint_d
pnpm add eslint_d

Global installation of eslint_d and usage of its CLI commands for linting, daemon control, and fix-to-stdout.

npm install -g eslint_d
# Lint a file
eslint_d file.js
# Start daemon explicitly
eslint_d start
# Status
eslint_d status
# Fix to stdout (requires --stdin)
echo 'let x = 1' | eslint_d --stdin --fix-to-stdout
# Stop daemon
eslint_d stop