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

aeo-ready

v1.7.8

Published

AEO benchmark aggregator. One scan, every score. Collects agentic-seo, Cloudflare, Fern, Vercel, and AgentGrade in one report.

Readme

aeo-ready

AEO benchmark aggregator. One scan, every score.

npx aeo-ready scan yoursite.com

What it does

Runs every major AEO (Agentic Engine Optimization) benchmark against your site in one command. Shows per-check pass/fail, company comparisons, and tracks scores over time.

Sources

| Benchmark | What it checks | Checks | |-----------|---------------|--------| | agentic-seo (Addy Osmani) | Discovery, content structure, token economics, capability signaling, UX bridge | 10 | | Cloudflare (isitagentready.com) | Discoverability, content accessibility, bot access, API/MCP/A2A discovery, commerce | 19 | | Fern (afdocs) | llms.txt quality, markdown availability, page size, content structure, URL stability, auth | 23 | | Vercel (Agent Readability Spec) | Agent reachability, discoverability, markdown serving, HTML agent-friendliness | 25 | | AgentGrade (agentgrade.com) | MCP, payment protocols, identity standards, content negotiation, OpenAPI, infrastructure | 70+ |

Usage

npx aeo-ready scan yoursite.com                   # scan a URL (remote checks)
npx aeo-ready scan yoursite.com --dir ./public    # full scan (local + remote)
npx aeo-ready scan yoursite.com --json            # JSON output for CI
npx aeo-ready scan yoursite.com --threshold 60    # exit 1 if below

Why --dir?

agentic-seo scores ~23/100 in URL-only mode because most checks (content structure, token economics, capability signaling, UX bridge) need filesystem access. Pass --dir to your build output or public directory to get the real score.

URL-only:  agentic-seo 23/100 (F)
With --dir: agentic-seo 92/100 (A)

Output

  aeo-ready — yoursite.com

  Checking agentic-seo · Cloudflare · Fern · Vercel · AgentGrade...

  agentic-seo ·································· 91/100 A
    ✓ Discovery              25/25
    ◑ Content Structure      18/25
    ✓ Token Economics        25/25
    ✓ Capability Signaling   15/15
    ✓ UX Bridge               8/10

  Cloudflare ···································· 4/5 B
    10 passed  2 failed
    ✗ robotsTxtAiRules  No rules for AI bots found
    ✗ contentSignals    No content signals in robots.txt

  Fern ········································ 83/100 B
    9 passed  4 failed
    ✗ llms-txt-links-markdown  Links point to HTML, no markdown
    ✗ content-start-position   2 pages have content past 50%
    ✗ llms-txt-coverage        Covers 67% of sitemap
    ✗ markdown-content-parity  4 pages have content differences

  Vercel ····································· 75/100 B
    15 passed  5 failed
    ✗ robots.txt               blocked: ccbot
    ✗ Agent UA → markdown      returned HTML
    ✗ .md URL → markdown       status 404
    ✗ Frontmatter              no frontmatter found
    ✗ Missing page → markdown  returned 404

  AgentGrade ································ 81/100 B+
    30 passed  10 failed
    ✗ llms.txt linked from HTML
    ✗ Accept: JSON returns JSON
    ✗ Accept: text returns text

  ──────────────────────────────────────────────────
  Overall                                     85/100

  Next steps
    npx afdocs check https://yoursite.com         4 Fern issues
    npx skills add katrinalaszlo/agent-serve      make your product agent-ready

  Fix now? [y/N]

Say y and aeo-ready analyzes failures across all 5 benchmarks, deduplicates overlapping issues, and fixes what it can:

  • Auto-fixes (with --dir): patches robots.txt for AI bots, creates agents.txt, generates sitemap.md, scaffolds llms.txt/AGENTS.md, adds missing pages to llms.txt
  • Manual instructions: prints actionable steps for server config (content negotiation, .md URLs, Vary header) and platform-specific issues

Non-interactive in CI (--json or non-TTY).

CI Mode

- run: npx aeo-ready scan yoursite.com --dir ./public --threshold 50

History

Scores persist in .aeo-ready/history.json. Re-scan to track improvement over time.

npx aeo-ready history                          # show last 10 scans

Programmatic API

import { scan, getHistory } from "aeo-ready";

const result = await scan({ url: "https://yoursite.com", dir: "./public", json: true });
// result.averageScore, result.benchmarks.agenticSeo, .cloudflare, .fern, .vercel, .agentgrade

const history = getHistory(process.cwd());
// history.scans — array of past scan results

Next step: make your product agent-ready

aeo-ready tells you how discoverable your site is to AI agents. To actually serve those agents — structured content, tool definitions, skill endpoints — use agent-serve:

npx skills add katrinalaszlo/agent-serve

Best practices by site type

See skills/agent-web/best-practices.md for an opinionated AEO framework covering SaaS, personal/portfolio, API/developer tools, and content/blog sites.

Author

Kat Laszlo — @katlaszlo