> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coderabbit.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# ESLint

> How CodeRabbit runs ESLint to lint JavaScript, TypeScript, and framework files on every pull request — including supported plugins, sandboxed execution, and skip conditions.

[ESLint](https://eslint.org/) is a linter for JavaScript, TypeScript, JSX, TSX, CSS, etc. CodeRabbit runs ESLint automatically on every pull request in a secure sandbox, using your repository's own ESLint configuration when present and posting results as inline review comments.

## Files

ESLint will run on files with the following extensions: `.js`, `.ts`, `.cjs`, `.mjs`, `.d.cts`, `.d.mts`, `.jsx`, `.tsx`, `.css`, `.vue`, `.svelte`, `.astro`, `.graphql`, `.gql`, `.mdx`

## Configuration

* ESLint configuration is read from the repository and is used as is. If no ESLint configuration file is found, CodeRabbit writes a temporary fallback config based on the selected review profile.
* Please ensure that all ESLint dependencies are defined in your `package.json` file(s).
* Yarn and PNPM workspaces are supported.
* Private ESLint plugins or configurations are not supported at the moment. Please [reach out to support](/support) if you would like us to add support for this.
* For `@typescript-eslint`, linting with type information is not supported at the moment. The [type checking rules](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/disable-type-checked.ts) are disabled.
* For `eslint-plugin-import`, the following rules are disabled:
  * `import/no-unresolved`
* For the `eslint-plugin-n`, the following rules are disabled:
  * `n/no-missing-import`
  * `n/no-missing-require`
* For the `eslint-plugin-node`, the following rules are disabled:
  * `node/no-missing-import`
  * `node/no-missing-require`

To enable or disable ESLint, use your `.coderabbit.yaml` file or the CodeRabbit web UI:

<Tabs>
  <Tab title=".coderabbit.yaml">
    ```yaml .coderabbit.yaml theme={null}
    reviews:
      tools:
        eslint:
          enabled: true
    ```
  </Tab>

  <Tab title="Web UI">
    Go to **Reviews → Tools → ESLint** in your organization or repository settings and toggle ESLint `on` or `off`.

    ***
  </Tab>
</Tabs>

## Security policy and restrictions

ESLint runs in a sandbox. CodeRabbit scans ESLint config files before any `npm`/`yarn`/`pnpm` installs and only permits a curated allow-list of plugins.

* CodeRabbit extracts referenced plugins from configs (the `plugins` array, `extends: "plugin:..."`, `eslint-plugin-...` mentions).
* If any plugin outside the allow-list is referenced, CodeRabbit skips ESLint for the run.
* CodeRabbit does not install or execute arbitrary third-party plugins from the repository.

The following plugins are currently allowed, grouped by category:

| Category               | Plugins                                                                                                                                             |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| TypeScript / Stylistic | `@typescript-eslint`, `@stylistic`                                                                                                                  |
| Import / Module        | `import`, `simple-import-sort`, `unused-imports`, `n`, `node`                                                                                       |
| React ecosystem        | `react`, `react-hooks`, `react-native`, `jsx-a11y`, `next`                                                                                          |
| Testing                | `jest`, `vitest`, `testing-library`, `cypress`, `playwright`, `mocha`                                                                               |
| Frameworks             | `vue`, `nuxt`, `angular`, `@angular-eslint`, `@angular-eslint/template`, `svelte`, `astro`, `solid`, `qwik`, `turbo`, `hydrogen`, `storybook`       |
| Code quality           | `sonarjs`, `security`, `unicorn`, `promise`, `regexp`, `compat`, `jsdoc`, `deprecation`, `lodash`, `boundaries`, `perfectionist`, `eslint-comments` |
| Formatting             | `prettier`, `tailwindcss`                                                                                                                           |
| Other                  | `mdx`                                                                                                                                               |

## When CodeRabbit skips ESLint

CodeRabbit will skip running ESLint when:

* The config references a plugin not in the allow-list.
* The config can't be parsed or is otherwise unsafe.
* No `package.json` can be found for the relevant project.

## What's next

<CardGroup cols={1}>
  <Card title="All supported tools" href="/tools/list" icon="list" horizontal>
    Browse the complete list of linters, security analyzers, and CI/CD integrations available in CodeRabbit.
  </Card>

  <Card title="Tools reference" href="/reference/tools-reference" icon="wrench" horizontal>
    Explore detailed specifications and capabilities of all available CodeRabbit tools.
  </Card>

  <Card title="Configuration reference" href="/reference/configuration" icon="settings" horizontal>
    Full reference for all available options, including how to enable, disable, and tune individual tools.
  </Card>
</CardGroup>
