Skip to content
PluginStats

@eslint/plugin-kit weekly downloads statistics

By eslint (6 listings) · npm · ESLint plugins

Utilities for building ESLint plugins.

View on npm Fresh · Oct 17, 2026

@eslint/plugin-kit has 58,726,107 recorded weekly downloads on npm, a decrease of 43.2% over the past 30 days.

It ranks #4 of 2,251 tracked npm listings by weekly downloads.

Over 90 days, weekly downloads changed by -43.1%.

PluginStats has 543 daily observations since Apr 23, 2025; the latest is from Oct 17, 2026.

Weekly downloads
58,726,107
Official API · Oct 17, 2026
7-day growth
-51.2%
-61.6M weekly downloads
30-day growth
-43.2%
-44.7M weekly downloads
90-day growth
-43.1%
-44.5M weekly downloads
Rank
#4
Among tracked npm listings

About @eslint/plugin-kit

ESLint Plugin Kit

Description

A collection of utilities to help build ESLint plugins.

Installation

For Node.js and compatible runtimes:

For Deno:

Usage

This package exports the following utilities:

• ConfigCommentParser - used to parse ESLint configuration comments (i.e., /* eslint-disable rule */) • VisitNodeStep and CallMethodStep - used to help implement SourceCode#traverse() • Directive - used to help implement SourceCode#getDisableDirectives() • TextSourceCodeBase - base class to help implement the SourceCode interface

ConfigCommentParser

To use the ConfigCommentParser class, import it from the package and create a new instance, such as:

There are different styles of directive values that you'll need to parse separately to get the correct format:

VisitNodeStep and CallMethodStep

The VisitNodeStep and CallMethodStep classes represent steps in the traversal of source code. They implement the correct interfaces to return from the SourceCode#traverse() method.

The VisitNodeStep class is the more common of the two, where you are describing a visit to a particular node during the traversal. The constructor accepts three arguments:

• target - the node being visited. This is used to determine the method to call inside of a rule. For instance, if the node's type is Literal then ESLint will call a method named Literal() on the rule (if present). • phase - either 1 for enter or 2 for exit. • args - an array of arguments to pass into the visitor method of a rule.

For example:

The CallMethodStep class is less common and is used to tell ESLint to call a specific method on the rule. The constructor accepts two arguments:

• target - the name of the method to call, frequently beginning with "on" such as "onCodePathStart". • args - an array of arguments to pass to the method.

For example:

Directive

The Directive class represents a disable directive in the source code and implements the Directive interface from @eslint/core. You can tell ESLint about disable directives using the SourceCode#getDisableDirectives() method, where part of the return value is an array of Directive objects. Here's an example:

TextSourceCodeBase

The TextSourceCodeBase class is intended to be a base class that has several of the common members found in SourceCode objects already implemented. Those members are:

• lines - an array of text lines that is created automatically when the constructor is called. • getLoc(nodeOrToken) - gets the location of a node or token. Works for nodes that have the ESLint-style loc property and nodes that have the Unist-style position property. If you're using an AST with a different location format, you'll still need to implement this method yourself. • getLocFromIndex(index) - Converts a source text index into a { line: number, column: number } pair. (For this method to work, the root node should always cover the entire source code text, and the getLoc() method needs to be implemented correctly.) • getIndexFromLoc(loc) - Converts a { line: number, column: number } pair into a source text index. (For this method to work, the root node should always cover the entire source code text, and the getLoc() method needs to be implemented correctly.) • getRange(nodeOrToken) - gets the range of a node or token within the source text. Works for nodes that have the ESLint-style range property and nodes that have the Unist-style position property. If you're using an AST with a different range format, you'll still need to implement this method yourself. • getText(node, beforeCount, afterCount) - gets the source text for the given node that has range information attached. If node is omitted or falsy (such as undefined, null, or an empty string), the entire source text is returned. Optionally, can return additional characters before and after the given node. As long as getRange() is properly implemented, this method will just work. • getAncestors(node) - returns the ancestry of the node. In order for this to work, you must implement the getParent() method yourself.

Here's an example:

In general, it's safe to collect the parent information during the traverse() method as getParent() and getAncestors() will only be called from rules once the AST has been traversed at least once.

License

Apache 2.0

Sponsors

The following companies, organizations, and individuals support ESLint's ongoing maintenance and development. Become a Sponsor to get your logo on our READMEs and website.

Platinum Sponsors

Gold Sponsors

Silver Sponsors

Bronze Sponsors

Technology Sponsors

Technology sponsors allow us to use their products and services for free as part of a contribution to the open source ecosystem and our work.

Description from the npm listing.

  • eslint
  • eslintplugin
  • eslint-plugin

Where @eslint/plugin-kit sits in the listing

Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

All npm2,248 listings · 113 pages · page 1, #4 (overall #4)
All npm: every listing in weekly downloads order
PNG SVG
ESLint plugins252 listings · 13 pages · page 1, #3 (overall #3)
ESLint plugins: every listing in weekly downloads order
PNG SVG

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@eslint/plugin-kit weekly downloads on npm, last 90 days: 58,726,107 weekly downloads as of Oct 17, 2026, -43.1% over 90 days.@eslint/plugin-kitWeekly downloads on npm · Last 90 days58,726,107downloads / week-43.1% over 90 days40M60M80M100M120M140M160MJul 19Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17downloads / weekobservedarchived (Internet Archive)no observationsJul 21, 2026 – Oct 17, 2026 · 89 observations · Updated Oc…pluginstats.com
@eslint/plugin-kit weekly downloads on npm, last 90 days: 58,726,107 weekly downloads as of Oct 17, 2026, -43.1% over 90 days.
PNG SVG

7/30/90-day growth

@eslint/plugin-kit weekly downloads growth on npm: -51.2% over 7 days, -43.2% over 30 days, -43.1% over 90 days.@eslint/plugin-kitWeekly downloads growth on npm58,726,107downloads / week now7-day growth-61,570,146 weekly downl…-51.2%30-day growth-44,744,026 weekly downl…-43.2%90-day growth-44,477,947 weekly downl…-43.1%Growth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
@eslint/plugin-kit weekly downloads growth on npm: -51.2% over 7 days, -43.2% over 30 days, -43.1% over 90 days.
PNG SVG

Ranking history

@eslint/plugin-kit npm ranking history: currently #4 (by weekly downloads).@eslint/plugin-kitnpm ranking · by weekly downloads · Last 90 days#4current rank#1#2#3#4#5#6Jul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18rankOct 17, 2026 – Oct 18, 2026 · 2 observations · Updated Oct 17, 2026pluginstats.com
@eslint/plugin-kit npm ranking history: currently #4 (by weekly downloads).
PNG SVG

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Recent observations

Full history (543)
Recent weekly downloads observations for @eslint/plugin-kit
Date (UTC)Weekly downloadsChange vs. previous
58,726,107-13.6M
72,316,384+319.3K
71,997,083-23.8M
95,777,877-22.3M
118,056,3620
118,056,362-1.7M
119,767,344-528.9K
120,296,253-677.3K
120,973,513+164.7K
120,808,778-1.4M
122,253,950-1.8M
124,033,437-24M
148,067,977+408.8K
147,659,167—

Similar npm ESLint plugins plugins

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@eslint/plugin-kit. First seen Oct 16, 2026; last successful collection Oct 18, 2026. See the methodology.