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

@growth-choice/ai-audit

v0.1.0

Published

Technical AI search readiness audit for any public website. Checks AI crawler access, technical SEO, structured data, and AI discovery resources.

Readme

@growth-choice/ai-audit

Technical AI search readiness audit for any public website.

Checks AI crawler accessibility (robots.txt for GPTBot, OAI-SearchBot, ClaudeBot, Bingbot, Googlebot), technical SEO, JSON-LD structured data, AI discovery resources (llms.txt, sitemap, ARD), and content accessibility. Returns a 0–100 score with letter grade and per-finding recommendations.

Web tool: https://growth-choice.com/ai-visibility-audit
Docs: https://growth-choice.com/ai-visibility-audit/docs


Installation

# Run without installing
npx @growth-choice/ai-audit https://example.com

# Install globally
npm install -g @growth-choice/ai-audit
growth-choice-ai audit https://example.com

Requires Node.js 22 or later. ESM imports are supported; CommonJS require is not supported.

These installation commands become available after the first npm publication.


Usage

# Basic audit (human-readable output)
npx @growth-choice/ai-audit https://example.com

# JSON output (machine-readable, for automation)
npx @growth-choice/ai-audit https://example.com --json

# Save JSON to file
npx @growth-choice/ai-audit https://example.com --output report.json

# Custom timeout (default: 12000ms)
npx @growth-choice/ai-audit https://example.com --timeout 20000

Options

| Option | Description | |---|---| | --json | Output raw JSON | | --output <file> | Write JSON to file | | --timeout <ms> | Per-request timeout (default: 12000) | | --version | Print version | | --help | Show help |


Exit codes

  • 0 — Audit completed (even if score is low)
  • 1 — Audit failed (invalid URL, unreachable, or blocked)
  • 2 — Usage error

Programmatic API

import { runAudit } from '@growth-choice/ai-audit'

const result = await runAudit('https://example.com')
console.log(result.score, result.grade)
console.log(result.findings)

What it checks

| Category | Max | Key signals | |---|---|---| | Crawler Accessibility | 20 | robots.txt, AI bot rules, sitemap directive | | Technical SEO | 30 | HTTPS, HTTP 200, title, meta desc, H1, canonical | | Structured Data | 20 | JSON-LD Organization, name+url, sameAs, WebSite | | AI Discovery Resources | 20 | sitemap.xml, llms.txt, feeds, ARD endpoint | | Content Accessibility | 10 | Text ratio ≥5%, service content, H1 presence |

Grade: A ≥85 · B ≥70 · C ≥55 · D ≥40 · F <40


Privacy

The CLI resolves DNS and fetches the target URL directly from your machine. No audit data is transmitted to Growth Choice servers. The web version at growth-choice.com/ai-visibility-audit runs the audit server-side; submitted URLs are processed in memory and not stored.


Contributing

This package is not yet publicly released. Its repository is currently private at https://github.com/Alexdovzhenko/growth-choice-ai-audit. Public access and npm publication require owner approval.


License

MIT — see LICENSE for details.


Built by Growth Choice — AI SEO and digital marketing.

Limits and security

This heuristic audit checks the requested page and discovery resources at its original origin. It does not predict rankings, citations, or inclusion in AI answers. Optional discovery resources contribute 4 points; a sitemap contributes 16. robots.txt and HTML parsing are simplified and do not fully implement crawler matching or browser parsing. Discovery probes check HTTP success, not resource validity, and a failed probe may mean a network failure rather than absence.

Requests have a 12 second deadline by default, including DNS checks and body reading; --timeout applies to each request (1–300000 ms). Redirects are checked at each hop with a maximum of five. Page bodies are capped at 512 KiB; discovery probes at 32 KiB. Oversized pages fail; failed discovery probes score as absent.

Private/reserved IPv4 and non-global IPv6 destinations are rejected, including mixed public/private DNS answers. DNS checks and connections are separate, so DNS rebinding remains possible. Do not expose this package as a service for untrusted URLs without network egress isolation. The SDK has no authentication, API keys, telemetry, or runtime dependencies.

SDK example with timeout:

import { runAudit } from '@growth-choice/ai-audit'
const result = await runAudit('https://example.com', { timeoutMs: 20000 })

Development

npm ci
npm test
npm pack --dry-run

Use a currently supported Node.js release. Review SECURITY.md before hosting the SDK.