explaingit

joshuakgoldberg/rewrite

Analysis updated 2026-07-05 · repo last pushed 2025-11-10

JavaScriptAudience · developerComplexity · 3/5QuietSetup · moderate

TLDR

The next version of ESLint is being rebuilt as a set of smaller, focused packages that handle specific jobs like configuration, plugin creation, and migration from older setups.

Mindmap

mindmap
  root((repo))
    What it does
      Linting foundation
      Configuration management
      Plugin building blocks
      Config migration helper
    Tech stack
      JavaScript
      Node packages
    Use cases
      Custom linting rules
      Upgrade old ESLint configs
      Build linting plugins
    Audience
      Developers using ESLint
      Tooling authors
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Write custom linting rules for your team's code standards using the plugin toolkit.

USE CASE 2

Migrate existing ESLint configurations to the new format with the migration helper.

USE CASE 3

Build tooling that adopts specific ESLint components without integrating the entire system.

What is it built with?

JavaScriptNode.jsESLint

How does it compare?

joshuakgoldberg/rewritealexlabs-ai/brain-conciergeayushnau/workday_jobautomator
Stars00
LanguageJavaScriptJavaScriptJavaScript
Last pushed2025-11-10
MaintenanceQuiet
Setup difficultymoderatemoderatemoderate
Complexity3/53/53/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Multiple packages with unclear individual documentation, users need to understand which package fits their use case.

In plain English

ESLint is a widely used tool that checks JavaScript code for errors and enforces consistent style rules, helping developers catch mistakes before they become bugs. This repository is where the next version of ESLint is being built from the ground up. Rather than shipping as one large tool, the rewrite is split across several smaller packages, each handling a specific job. For example, @eslint/core provides the foundation, @eslint/config-array and @eslint/config-helpers deal with how configuration rules are set up, and @eslint/plugin-kit gives developers building blocks to create their own linting plugins. There's also @eslint/migrate-config to help move old configurations to the new format, and @eslint/mcp which appears to add some form of tool integration, though the README doesn't go into detail on what each package does individually. This restructured approach would appeal to developers who already use ESLint or are building tooling on top of it. For instance, a team wanting to write custom linting rules for their company's code standards could use the plugin toolkit, while someone upgrading from an older ESLint setup could lean on the migration helper to smooth the transition. What's notable here is the decision to break ESLint into focused packages rather than keeping it as a single monolithic tool. This kind of restructuring typically makes it easier for different pieces to evolve independently and for other tools to adopt specific parts without buying into the whole system. The README is otherwise sparse on technical rationale, so the deeper motivations and tradeoffs behind the rewrite aren't spelled out, but the package breakdown itself signals a move toward modularity and flexibility.

Copy-paste prompts

Prompt 1
Show me how to use @eslint/plugin-kit to create a custom ESLint linting rule for my team's code standards.
Prompt 2
How do I use @eslint/migrate-config to convert my old .eslintrc configuration to the new ESLint package format?
Prompt 3
What is the difference between @eslint/core, @eslint/config-array, and @eslint/plugin-kit in the new ESLint architecture?
Prompt 4
Help me set up a project that uses the new @eslint/core package to lint JavaScript files programmatically.

Frequently asked questions

What is rewrite?

The next version of ESLint is being rebuilt as a set of smaller, focused packages that handle specific jobs like configuration, plugin creation, and migration from older setups.

What language is rewrite written in?

Mainly JavaScript. The stack also includes JavaScript, Node.js, ESLint.

Is rewrite actively maintained?

Quiet — no commits in 6-12 months (last push 2025-11-10).

How hard is rewrite to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is rewrite for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.