---
title: Extend ESLint
eleventyNavigation:
    key: extend eslint
    title: Extend ESLint
    order: 2
---

This guide is intended for those who wish to extend the functionality of ESLint.

In order to extend ESLint, it's recommended that:

- You know JavaScript, since ESLint is written in JavaScript.
- You have some familiarity with Node.js, since ESLint runs on it.
- You're comfortable with command-line programs.

If that sounds like you, then continue reading to get started.

## [Ways to Extend ESLint](ways-to-extend)

This page summarizes the various ways that you can extend ESLint and how these extensions all fit together.

## [Create Plugins](plugins)

You've developed custom rules for ESLint and you want to share them with the community. You can publish an ESLint plugin on npm.

## [Custom Rule Tutorial](custom-rule-tutorial)

A tutorial that walks you through creating a custom rule for ESLint.

## [Custom Rules](custom-rules)

This section explains how to create custom rules to use with ESLint.

## [Custom Formatters](custom-formatters)

This section explains how you can create a custom formatter to control what ESLint outputs.

## [Custom Parsers](custom-parsers)

If you don't want to use the default parser of ESLint, this section explains how to create custom parsers.

## [Custom Processors](custom-processors)

This section explains how you can use a custom processor to have ESLint process files other than JavaScript.

## [Share Configurations](shareable-configs)

This section explains how you can bundle and share ESLint configuration in a JavaScript package.