npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@askviraj/linter

v1.1.5

Published

A linter & formatter CLI for JavaScript, TypeScript, Astro, JSON, JSONC, CSS, HTML, Markdown, YAML, TOML, and more.

Readme

@askviraj/linter

A self-contained linter CLI for JavaScript, TypeScript, Astro, JSON, JSONC, CSS, HTML, Markdown, YAML, TOML, and more. It bundles ESLint and all plugins so you don't have to install them in every project.

Features

  • Zero-config — Works out of the box with an opinionated flat config
  • Self-contained — Bundles ESLint and all plugins; no peer dependency headaches
  • Multi-language — One command lints 10+ file types
  • Fast — Optional caching and native Bun support
  • VS Code ready — First-class integration with the official ESLint extension

Installation

No installation required for one-off use:

# Via Bun
bunx --bun @askviraj/linter

# Via npx
npx @askviraj/linter

Install locally for faster repeated runs:

# With Bun
bun install --dev @askviraj/linter

# With npm
npm install --save-dev @askviraj/linter

Quick Start

# Lint the current directory
bunx --bun @askviraj/linter

# Lint specific files or directories
bunx --bun @askviraj/linter src/ tests/

# Auto-fix issues
bunx --bun @askviraj/linter --fix

# Scaffold config files for your project
bunx --bun @askviraj/linter --init

Supported File Types

| Language | Extensions | | ---------- | ------------------------------------------- | | JavaScript | .js, .mjs, .cjs, .jsx | | TypeScript | .ts, .mts, .cts, .tsx | | Astro | .astro | | JSON | .json | | JSONC | .jsonc, tsconfig.json, .vscode/*.json | | Markdown | .md | | CSS | .css | | YAML | .yaml, .yml | | TOML | .toml | | HTML | .html |

CLI Reference

| Flag | Short | Description | | ------------------------- | ----- | -------------------------------------------------------------------------------- | | --init | | Scaffold eslint.config.mjs, .config/linter.yaml, and .vscode/settings.json | | --force | | Overwrite existing files when used with --init | | --fix | | Automatically fix problems | | --cache | | Only check changed files | | --cache-location <path> | | Path to the cache file or directory | | --no-ignore | | Disable use of ignore files | | --quiet | | Report errors only | | --debug | | Enable ESLint debug logging | | --format, -f <name> | | Use a specific output format | | --max-warnings <n> | | Number of warnings to trigger nonzero exit code | | --version, -v | | Show version and plugin versions | | --help, -h | | Show help |

Positional arguments are treated as file or directory targets. Defaults to . when none are provided. Use -- to pass file names that look like flags (for example, linter -- --fix.js).

Configuration

.config/linter.yaml

Create this file in your repo to customize the bundled config:

version: 1

ignores:
  - "**/generated/**"
  - "**/*.d.ts"

overrides:
  typescript:
    rules:
      "@typescript-eslint/no-explicit-any": "error"

configs:
  - name: "custom"
    files: [ "**/*.test.ts" ]
    rules:
      "no-console": "off"

Supported keys

| Key | Type | Description | | ----------- | --------------------------- | --------------------------------------------------------- | | version | number \| string | Required. Schema version (currently 1). | | ignores | string[] | Additional global ignore patterns. | | overrides | Record<string, { rules }> | Rule overrides keyed by preset name. | | configs | unknown[] | Raw ESLint config objects appended after the base config. |

Preset names for overrides

Use these names in the overrides section:

  • javascript
  • typescript
  • astro
  • json
  • jsonc
  • markdown
  • markdown-typescript
  • yaml
  • toml
  • html
  • css

Scaffolding

Run --init to create the following files in your project:

  • eslint.config.mjs — imports @askviraj/linter/auto
  • .config/linter.yaml — your customization file
  • .vscode/settings.json — enables flat config mode

Use --force to overwrite existing files.

VS Code Integration

The package exports @askviraj/linter/auto for use with the dbaeumer.vscode-eslint extension.

After running --init, VS Code discovers eslint.config.mjs and loads the bundled config automatically. Edit .config/linter.yaml to customize rules; the extension picks up changes without restarting.

How It Works

  1. npx or bunx installs @askviraj/linter and its dependencies in a temporary or local node_modules.
  2. The bundled CLI reads .config/linter.yaml from the target repo (if present) to load user customizations.
  3. It builds the ESLint config by merging YAML overrides with the bundled base config.
  4. ESLint's programmatic API lints the current working directory. Plugins are resolved from the package's own node_modules, not the target repo's.

License

MIT — see LICENSE for details.