Skip to content

CLI

The main package ships a CLI that can scaffold or refresh the project config.

bash
pnpm dlx @santi020k/eslint-config-basic init
pnpm dlx @santi020k/eslint-config-basic update
pnpm dlx @santi020k/eslint-config-basic explain
pnpm dlx @santi020k/eslint-config-basic inspect
pnpm dlx @santi020k/eslint-config-basic doctor
pnpm dlx @santi020k/eslint-config-basic docs
pnpm dlx @santi020k/eslint-config-basic migrate
pnpm dlx @santi020k/eslint-config-basic generate-skill
  • Detects TypeScript, runtime, and supported optional integrations from package.json.
  • Chooses eslint.config.js for ESM projects.
  • Chooses eslint.config.mjs otherwise.
  • Uses bundled framework booleans (frameworks.<name>: true) in generated configs.
  • Adds React automatically when Next.js or Expo is detected.
  • Prints detected config inputs with explain.
  • Prints detected inputs, package-manager details, workspace projects, and active config features with inspect.
  • Checks common v2 adoption issues with doctor.
  • Generates human-readable ESLINT_STANDARDS.md docs with docs.
  • Reports v1-to-v2 migration suggestions with migrate.
bash
pnpm dlx @santi020k/eslint-config-basic init

If the package is already installed locally, the basic-eslint bin is also available through your package manager’s local binary resolution.

Terminal window
basic-eslint --help
basic-eslint --version
bash
pnpm dlx @santi020k/eslint-config-basic update

Use update when you want to regenerate the file after adding or removing dependencies.

Use explain before committing a zero-config setup or after dependency changes.

Terminal window
npx @santi020k/eslint-config-basic explain

It prints the detected TypeScript state, preset, runtime, framework list, optional integrations, tools, and formats.

Use inspect when you want a fuller view than explain, including package-manager detection, workspace package discovery, and features read from the active ESLint config when it can be loaded.

Terminal window
npx @santi020k/eslint-config-basic inspect

For automation, use JSON output:

Terminal window
npx @santi020k/eslint-config-basic inspect --json

explain, doctor, and migrate also support --json for CI and migration tooling:

Terminal window
npx @santi020k/eslint-config-basic explain --json
npx @santi020k/eslint-config-basic doctor --json
npx @santi020k/eslint-config-basic migrate --json

Use doctor while adopting v2 or after moving a project into a workspace. It reports missing config files, configs that cannot be loaded, lingering v1 framework imports, missing lint scripts, and detected workspace packages that are not represented with projects scoping.

It also detects when two different ESLint copies are installed — for example a project pinning an older ESLint while the config packages resolve their own ESLint dependency. The current release line supports ESLint 10, and parallel copies can make your editor and CLI apply slightly different rule behavior, so doctor warns and suggests aligning or deduping.

For Astro projects, doctor also reports mismatched Astro Doctor configuration, suggests the optional integration when Astro is detected, and checks the installed Astro Doctor package against the current Node.js and ESLint versions.

Terminal window
npx @santi020k/eslint-config-basic doctor

Use doctor --lite-install to preview the install command for switching the current project to @santi020k/eslint-config-lite:

Terminal window
npx @santi020k/eslint-config-basic doctor --lite-install

Use init --check when CI should verify that a project already has an ESLint flat config without writing a file:

Terminal window
npx @santi020k/eslint-config-basic init --check

Use docs to create a project-local ESLINT_STANDARDS.md summary for humans.

Terminal window
npx @santi020k/eslint-config-basic docs

This is separate from generate-skill: docs writes a general standards document, while generate-skill targets AI coding assistant rule folders.

Use migrate while moving from v1-style framework package imports to v2 booleans.

Terminal window
npx @santi020k/eslint-config-basic migrate

The command reports the main migration steps and calls out configs that still appear to import old framework config packages.

For straightforward v1 configs that only import framework packages, --write can replace those imports with the v2 bundled framework boolean form.

Terminal window
npx @santi020k/eslint-config-basic migrate --write

The generate-skill command creates or updates ESLint standards files for AI coding assistants based on your project’s active configuration.

This is a beta feature and is non-breaking (it only adds/updates files in existing agent folders and instruction files).

Supported targets:

ToolLocationFormat
Generic agents.agent/skills/, .agents/skills/Markdown + front-matter
Claude Code.claude/commands/Markdown
Cursor.cursor/rules/MDC front-matter
Windsurf.windsurf/rules/Markdown + front-matter
GitHub Copilot.copilot/instructions/, .github/copilot-instructions.mdMarkdown / guarded section
Aider.aider/Markdown
Gemini.gemini/styleguide.mdMarkdown
Cline.clinerules/Markdown
Roo Code.roo/rules/Markdown
Kiro.kiro/steering/Markdown + inclusion: always front-matter
AGENTS.md standard (Codex CLI, OpenCode, Jules, Amp, etc.)root AGENTS.mdGuarded section appended/updated

Folder targets are only written when the folder already exists, and AGENTS.md / .github/copilot-instructions.md are only updated when those files already exist — the command never creates tool folders for tools you do not use.

bash
pnpm dlx @santi020k/eslint-config-basic generate-skill

Use --force if you want to overwrite existing standards files.

  • --force — overwrite existing skill files and guarded sections.
  • --check — CI mode: compares existing skill files against freshly generated content without writing anything, and exits with code 1 when any file is stale or missing. Useful as a CI step or pre-push hook so agent rules never drift from the actual config.
  • --create — scaffold a root AGENTS.md (with the guarded ESLint-standards section) when the project has none. Without this flag, AGENTS.md is only updated when it already exists.
CI example
npx @santi020k/eslint-config-basic generate-skill --check
  • Use init when the project does not have an ESLint flat config yet.
  • Use update when the dependency graph changed and you want a fresh generated baseline.
  • Use explain when you want to review what auto-detection found.
  • Use inspect when you need machine-readable details or active config feature extraction.
  • Use doctor when a v2 setup is not behaving as expected.
  • Use docs when you want a committed standards summary.
  • Use migrate when moving a v1 config to v2.
  • Use manual editing when the config already has custom organization that you do not want regenerated.

The CLI writes frameworks: { <name>: true } so the generated file stays concise and aligned with v2’s bundled framework model. You can still replace any framework entry with an imported custom config array or factory when needed.

  • The CLI detects frameworks, but it does not hide them behind implicit runtime magic.
  • Generated files are explicit about enabled frameworks, but do not add per-framework import statements.
  • Existing eslint.config.js or eslint.config.mjs files are respected for updates.
  • The generated file is a starting point that you can still edit by hand.

Did this page help?

One click helps us spot documentation that needs another pass. No personal data is sent.