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

@graflethq/cli

v0.3.0

Published

Precomputed knowledge graphs of versioned library docs, for AI agents. Docs as a graph, not snippets.

Downloads

1,057

Readme

Docs as a graph, not snippets.

Precomputed knowledge graphs of versioned library docs, for AI coding agents. One graflet = one library at one release. graflet <slug> downloads a library's documentation Markdown plus a pre-built knowledge graph of those docs, both pinned to the same upstream commit.

Install

npm i -g @graflethq/cli   # needs Node >= 18

Use

graflet login          # sign in with GitHub (once) — the one action that needs an account
graflet next.js        # latest tracked release  -> ./next.js/
graflet next.js@16     # that release, pinned     -> ./next.js@16/
graflet watch next.js  # get emailed when the graph updates

A download reports each step as it happens — the two sources stream in parallel:

$ graflet next.js
graflet · next.js → ./next.js/

✔ Resolved 16 → 2f9d939 · docs and graph aligned
✔ Downloaded docs → 312 files (18 MB)
✔ Fetched graph → 1,204 nodes · 3,880 edges

Done in 24s
Saved ~6h 12m of local build · ~$0.94 in API cost

All of that is on stderr. Stdout carries exactly one line — the absolute destination path — so cd "$(graflet next.js)" works with no parsing. Piped or in CI, the same words print as plain lines with no spinner and no escape codes.

Each download writes one directory holding both sources, kept apart:

next.js/
├── docs/…               the library's own Markdown, byte-for-byte from upstream
├── LICENSE              the docs' license
└── graphify-out/        the graph
    ├── graph.json
    ├── graph.html
    ├── GRAPH_REPORT.md
    ├── savings.json
    └── meta.json

graphify-out/ is the same folder name graphify writes, so running it over the docs yourself lands in the same place. The Markdown is fetched anonymously from the library's public repo at the pinned commit; the graph is streamed from a broker after sign-in, so you never hold a token for the private graph repo.

For CI / headless use, skip the browser with a bearer you already hold:

export GRAFLET_TOKEN=<bearer>   # authenticate without a browser, without writing the keyring

Browse the catalog at graflet.rnui.dev. Full design, ADRs and source: github.com/graflethq/graflet.

Naming

Spelled g-r-a-f-l-e-t, no p-h — from graphlet, a small induced subgraph. npm blocks the bare name (too close to leaflet), so the package is scoped @graflethq/cli; the installed command is graflet. PyPI keeps bare graflet.

License

MIT — © 2026 MD. MOHIBUR RAHMAN.