/cursor-tutorials

Why Cursor ignores custom ESLint rules

Learn why Cursor overlooks custom ESLint rules and how to fix config, plugin, and workspace issues in this clear troubleshooting guide.

Matt Graham, CEO of Rapid Developers

Book a call with an Expert

Starting a new venture? Need to upgrade your web app? RapidDev builds application with your growth in mind.

Book a free No-Code consultation

Why Cursor ignores custom ESLint rules

Cursor usually ignores custom ESLint rules because the editor does not run ESLint itself by default. It only surfaces lint results when your local project is already correctly configured, your ESLint installation is healthy, and Cursor can detect your config the same way VS Code does. If ESLint is misconfigured, missing, installed in the wrong place, or your custom rules aren’t actually reachable from your project’s ESLint setup, then Cursor simply has nothing to show — so it looks like it’s “ignoring” them.

 

What’s Really Happening

 

Cursor isn’t a separate environment. It uses your local ESLint setup, just like VS Code. So if Cursor ignores your custom rules, it’s almost always because the project’s ESLint configuration isn’t being detected or executed properly.

Below are the real, common reasons this happens — based on how ESLint and Cursor actually work.

 

Real Reasons Cursor Ignores Custom ESLint Rules

 

  • Your ESLint extension isn’t installed or enabled. Cursor has built‑in support for many VS Code extensions, but ESLint still must be turned on. If ESLint extension is off, Cursor shows no lint rules at all.
  • ESLint is not installed locally in your project. ESLint must exist in node\_modules. Cursor won’t use a global install. Example of what you must have: \`\`\`shell npm install eslint --save-dev \`\`\`
  • Your custom rule package is not installed or not reachable. For example: \`\`\`shell npm install eslint-plugin-yourrules --save-dev \`\`\` If the plugin isn’t installed locally, Cursor can't load it, so it silently skips it.
  • The ESLint config file is unsupported or in the wrong place. Cursor looks for the config in normal ESLint locations:
    • .eslintrc.js
    • .eslintrc.cjs
    • .eslintrc.json
    • eslint.config.js (new flat config)
    If your config is in the wrong folder or named incorrectly, Cursor can’t find it.
  • You added rules but forgot to enable the plugin inside the config. ESLint requires both a plugins entry and a rules entry. Example (REAL working config): \`\`\`js // .eslintrc.js module.exports = { plugins: ["yourrules"], // plugin must be listed here rules: { "yourrules/some-rule": "error" // and enabled here } } \`\`\`
  • You're using the new ESLint Flat Config but misconfigured the export. The new format requires a proper array export. Missing this causes ESLint to silently fail. Example (REAL working flat config): \`\`\`js // eslint.config.js import yourRules from "eslint-plugin-yourrules"

    export default [
    {
    plugins: { yourrules: yourRules },
    rules: {
    "yourrules/some-rule": "error"
    }
    }
    ]
    ```

  • Cursor’s ESLint integration doesn’t lint certain file types unless configured. For example, TypeScript requires @typescript-eslint/parser and @typescript-eslint/eslint-plugin. Without these, custom rules may never run.
  • Your project has multiple ESLint configs and Cursor picks the wrong one. This happens in monorepos. Cursor follows the same resolution rules as VS Code, which may load a parent config instead of the one you intended.
  • ESLint throws an error but Cursor hides it. ESLint fails to load custom plugins if there's a runtime crash. You can always see the real error by running: \`\`\`shell npx eslint . \`\`\` If this command prints an error, Cursor cannot lint either.

 

How to Verify the Real Issue Step-by-Step

 

  • Run npx eslint . in the integrated terminal. If this fails, fix the error — Cursor depends on this working.
  • Open Output panel → select ESLint. Cursor logs why ESLint rules weren’t applied.
  • Check that ESLint: Enable is turned on in Cursor settings.
  • Ensure that your custom rule plugin is installed in the same project root where your ESLint config lives.

 

A Simple Working Example for Custom Rules

 

If you want to confirm Cursor can actually use a custom rule, try something simple and guaranteed to run:

// .eslintrc.js
module.exports = {
  rules: {
    "no-console": "error" // built-in rule, easy to test
  }
}

Then create a file:

// test.js
console.log("hello") // ESLint should complain

If this doesn't produce an error in Cursor, Cursor isn’t loading ESLint at all — which means configuration or installation problem, not your custom rule.

 

The Core Truth

 

Cursor doesn’t intentionally ignore custom ESLint rules. It only appears that way when ESLint isn’t fully working in your local environment. Once ESLint is configured correctly, Cursor respects every rule — custom or not — because it simply delegates to the same ESLint engine your command line uses.

Still stuck?
Copy this prompt into ChatGPT and get a clear, personalized explanation.

This prompt helps an AI assistant understand your setup and guide you through the fix step by step, without assuming technical knowledge.

AI AI Prompt

Want to explore opportunities to work with us?

Connect with our team to unlock the full potential of no-code solutions with a no-commitment consultation!

Book a Free Consultation

Client trust and success are our top priorities

When it comes to serving you, we sweat the little things. That’s why our work makes a big impact.

Rapid Dev was an exceptional project management organization and the best development collaborators I've had the pleasure of working with. They do complex work on extremely fast timelines and effectively manage the testing and pre-launch process to deliver the best possible product. I'm extremely impressed with their execution ability.

CPO, Praction - Arkady Sokolov

May 2, 2023

Working with Matt was comparable to having another co-founder on the team, but without the commitment or cost. He has a strategic mindset and willing to change the scope of the project in real time based on the needs of the client. A true strategic thought partner!

Co-Founder, Arc - Donald Muir

Dec 27, 2022

Rapid Dev are 10/10, excellent communicators - the best I've ever encountered in the tech dev space. They always go the extra mile, they genuinely care, they respond quickly, they're flexible, adaptable and their enthusiasm is amazing.

Co-CEO, Grantify - Mat Westergreen-Thorne

Oct 15, 2022

Rapid Dev is an excellent developer for no-code and low-code solutions.
We’ve had great success since launching the platform in November 2023. In a few months, we’ve gained over 1,000 new active users. We’ve also secured several dozen bookings on the platform and seen about 70% new user month-over-month growth since the launch.

Co-Founder, Church Real Estate Marketplace - Emmanuel Brown

May 1, 2024 

Matt’s dedication to executing our vision and his commitment to the project deadline were impressive. 
This was such a specific project, and Matt really delivered. We worked with a really fast turnaround, and he always delivered. The site was a perfect prop for us!

Production Manager, Media Production Company - Samantha Fekete

Sep 23, 2022