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

accessjet

v1.0.0

Published

Blazing fast, lightweight CLI tool for accessibility auditing

Readme

🚀 AccessJet

AccessJet is a blazing fast, developer-centric accessibility (a11y) CLI tool built for modern CI/CD pipelines.

Unlike traditional tools that load entire web pages, AccessJet optimizes the auditing process by intercepting network requests and focusing purely on the DOM structure required for accurate analysis. It provides instant, actionable feedback directly in your terminal without the noise.

✨ Why AccessJet?

Performance First: Achieves sub-second audits by strictly blocking non-essential resources (images, fonts, media) at the network layer.

🛠 Developer Experience (DX): No more wall of text. Minified HTML is automatically formatted (Prettier), truncated, and syntax-highlighted in the terminal.

🚦 CI/CD Quality Gates: Define strict failure thresholds (e.g., fail only on critical issues) to integrate safely into existing pipelines.

🔄 Concurrency: Parallel execution engine allows scanning multiple URLs simultaneously without resource exhaustion.

📦 Installation

npm install -g accessjet

🚀 Usage

Basic Scan

Check a single URL for accessibility violations:

accessjet check https://example.com

High Performance Mode

Scan multiple routes in parallel. The default concurrency is 5, but you can adjust this based on your machine's resources:

accessjet check https://site.com/home https://site.com/about -c 10

CI/CD "Strict" Mode

In a CI environment, you might want to block the build only if Critical issues are found, ignoring Minor or Moderate warnings:

accessjet check https://myapp.com --fail-on critical

⚙️ Configuration

| Flag | Alias | Description | Default | | ------------- | ----- | --------------------------------------------------------------------------------- | -------- | | --concurrency | -c | Number of concurrent browser contexts. | 5 | | --fail-on | -f | Minimum impact level to trigger exit code 1 (minor, moderate, serious, critical). | moderate | | --json | -j | Export full report to report.json. | false |

🏗 Architecture & Performance

AccessJet is built on Playwright and Axe-core, but utilizes a custom execution pipeline designed for speed.

1. Network Interception Strategy

To minimize scan time, AccessJet hooks into the browser's network layer. It proactively aborts requests for assets that do not affect the accessibility tree (images, fonts, stylesheets, media), ensuring that bandwidth is consumed only by the document structure.

2. Isolated Browser Contexts

Instead of launching a new browser instance for every URL (which is expensive), AccessJet initializes a single browser instance and utilizes lightweight BrowserContexts for isolation. This significantly reduces memory overhead during batch processing.

3. The Output Pipeline

Raw HTML from modern SPAs is often minified and unreadable. AccessJet processes the failing nodes through a dedicated formatting pipeline before displaying them:

Raw DOM Node → Prettier (HTML Parser) → Intelligent Truncation → Syntax Highlighting

🤖 GitHub Actions Integration

You can add AccessJet to your PR workflow to prevent accessibility regressions.

.github/workflows/a11y.yml
name: Accessibility Audit

on: [pull_request]

jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '18' }
      - name: Install Dependencies
        run: |
          npm install -g accessjet
          npx playwright install chromium
      - name: Run Audit
        # Fails only on critical issues
        run: accessjet check https://your-staging-url.com --fail-on critical

🛠 Local Development

To contribute to AccessJet:

git clone https://github.com/berkinduz/access-jet.git
cd access-jet
npm install
npm run build
# Generate the demo SVG seen in this README
npm run generate-demo

📄 License

Distributed under the MIT License. See LICENSE for more information.