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

airanks

v1.3.1

Published

AIR (airanks) CLI — AI optimization from your terminal: look up any site's AI Rank, same data as the toolbar. https://airanks.net

Downloads

313

Readme

⚡ airanks — AI optimization from your terminal

npm node deps site

What does AI actually say about your site? air looks up any domain's AI Rank — the same live data as the AIR Toolbar — straight from your terminal. AI optimization, minus the tab-switching. 🏆

$ air stripe.com

   stripe.com    AIR 9/10  █████████░  ·  top 13%

   tracked — 253 occurrences · 1 phrase · 7 brands
   llms.txt ✓  llms-full ✗  ai.txt ✗  robots.txt ✓  json-ld ✓
   ai crawlers: 14 partial of 14

🚀 Quick start

npx airanks stripe.com        # one-shot, nothing installed
npm i -g airanks && air nike.com    # or keep it

First run walks you through a 10-second sign-in (free account — the API requires one; it keeps the bulk scrapers out).

🧭 What it does

| Command | What happens | |---|---| | air stripe.com | 📊 AIR score, truecolor gauge, percentile, ai-files checklist, AI-crawler verdicts | | air best running shoes | 🔎 keyword/phrase search — top domains, brands & ranked phrases | | air brandnewsite.com | 🕐 never-seen domains are gathered on the spot (live spinner, ~1–3 min) | | air login | 🔐 paste an API key, or browser sign-in: type a short code, click Approve, done | | air whoami / air logout | 👤 session info · remove the local token |

Smart detection: an argument that parses as a hostname is a lookup, anything else is a search. Force either with -d/--domain or -k/--keyword (alias -p/--phrase).

🎛 Flags & modes

| Flag | Effect | |---|---| | --json | machine-readable payload (stable envelope) | | --txt | plain text — no color, no icons; also auto-selected by TERM=dumb / CI=true | | (default) | truecolor score gauge, Nerd-Font icons, clickable links (OSC 8 terminals) |

Exit codes: 0 success · 1 error · 2 answer still gathering — re-run in a minute (the payload is still emitted under --json).

NO_COLOR is honored (strips color, keeps glyphs). Honest output policy: counts from a partial sample are labeled as counts, never dressed up as a ranking.

🔐 Signing in

A free account is required for lookups (anti-abuse). Two ways in:

  1. API key — mint at airanks.net/tokens, paste when asked (or set AIR_API_KEY in the environment — it always wins).
  2. Browser pairingair login → prints a short code → type it at airanks.net/cli/auth → Approve. Works from SSH boxes and containers too: no localhost server, no port games — the browser can be on any device.
sequenceDiagram
    autonumber
    participant CLI as 💻 air login
    participant API as ☁️ airanks.net
    participant B as 🌐 your browser
    CLI->>API: PKCE challenge
    API-->>CLI: short code · XXXX-XXXX
    CLI->>CLI: prints code, opens browser, polls
    B->>API: sign in, type the code, Approve
    API-->>CLI: scoped token (90-day, single-claim)
    CLI->>CLI: saved to ~/.config/air/auth.json (0600, host-bound)

Tokens are scoped cli-ability, expire in 90 days, ride only to the host they were minted for, and are handed over exactly once. The code must be typed, never clicked — that's the anti-phishing design.

📦 Zero dependencies

One file, Node ≥ 18 stdlib only. No supply chain to audit but this one. The CLI keeps itself current automatically on run (from this very package — pin a version with npm i -g [email protected] if you prefer).

🗺 More


Built in Dallas with an unreasonable amount of measurement. ⚡🤠