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

@getnarro/docspack

v0.1.2

Published

Narro's documentation as a docspack — version-locked chunks an agent installs once and searches offline

Readme

@getnarro/docspack

Narro's documentation as a docspack — version-locked chunks an agent installs once and searches offline

npm version npm downloads license CI

getnarro.com · Documentation · Ecosystem

npm install --save-dev @getnarro/docspack docspack
npx docspack sync
npx docspack ask "how do I split a slide into two columns"

Why this exists

An agent writing a Narro deck has to know the markdown dialect, which package each component comes from, and which layout names are real. Left to guess it writes layout: split — plausible, never existed, and the deck builds anyway and renders wrong.

@getnarro/docs already ships that knowledge, and an agent has to load a whole page to use it. This package ships the same material as docspack chunks: installed from npm, indexed locally in SQLite, searched offline, and answered three chunks at a time instead of twenty thousand tokens at a time.

| | Fetching getnarro.com | @getnarro/docs | @getnarro/docspack | | --- | --- | --- | --- | | Version | latest | installed | installed | | Network | required | none | none | | Retrieval | whole page | whole page | ranked chunks | | Per answer | a page | a page | ≤ 3 chunks, ≤ 3000 tokens |

All three describe the same documentation. Which one you want depends on whether the agent can reach the network, and how much of its context window a question is allowed to cost.

Giving an agent access

Two lines in AGENTS.md or CLAUDE.md, and nothing else:

Run `docspack ask "<question>"` for documentation on this project's
dependencies. It answers from the installed versions.

docspack mcp serves the same index over MCP for assistants that would rather have a declared tool. Both return identical text.

What is in it

| | | | --- | --- | | Every documentation page | split at its own headings, one chunk per section | | The component reference | one chunk per component, each naming the package it is exported by | | The catalog | the closed sets — every layout, theme, transition, colour scheme, font preset, frontmatter key, template and CLI command that exists |

The catalog is the part a prose search cannot replace. A model that picks layout: out of a complete list cannot invent a name; one that reads a page about layouts can, and does.

Ask for a name it should be constrained by, and the answer is the whole set:

$ npx docspack ask "which layout values are valid in slide frontmatter"
## @getnarro/[email protected]/catalog-layouts
Valid `layout:` values in slide frontmatter. A name absent from this list does not exist.
- `default`
- `cover`
…

How it is built

Nothing here is written by hand. scripts/stage.mjs reads @getnarro/docs — whose own build reads the component props out of the TypeScript source and the closed sets out of the shipping registries — and writes markdown into docs/. docspack build chunks that into .llms/, and docspack doctor checks the result before it can be published.

pnpm --filter @getnarro/docspack build   # stage → build → doctor
pnpm --filter @getnarro/docspack test    # the payload the tarball will ship

The staging step is small but not cosmetic. It gives the paragraphs above a page's first heading a heading of their own, so chunk ids read as markdown-mode-overview rather than markdown-mode-markdown-mode; and it adds the import line to each component's section, because the package heading sits two levels above it and would otherwise not be in the chunk that names the component.

docs/, .llms/ and llms.txt are generated and git-ignored. prepublishOnly regenerates and re-checks them, so a stale payload cannot reach the registry.

Reporting a documentation problem

The package accepts drift, incorrect and missing findings, routed to this repository:

npx docspack feedback add --chunk @getnarro/[email protected]/catalog-layouts \
  --kind drift --evidence "layout: banner is accepted but absent from the set"
npx docspack feedback submit

add writes to a local file. submit prepares an issue for a human to open, and sends nothing on its own.

The Narro ecosystem

| Package | What it is | | --- | --- | | @getnarro/cli | CLI tools for creating and managing Narro presentations | | @getnarro/core | The React runtime for Narro presentations — Presentation, Slide, navigation, transitions, and speaker notes | | @getnarro/docs | Narro's documentation as data — markdown pages, a generated component API reference, and llms.txt | | @getnarro/docspack | Narro's documentation as a docspack — version-locked chunks an agent installs once and searches offline ← you are here | | @getnarro/markdown | Markdown & MDX authoring for Narro presentations | | @getnarro/marketplace | Themes, colour schemes, and templates for Narro presentations | | @getnarro/mcp-server | MCP (Model Context Protocol) server for AI-assisted Narro presentation creation | | @getnarro/shared-ui | Slide components for Narro presentations — headings, text, lists, code, media, charts, and layouts | | @getnarro/video | Frame-deterministic video framework for Narro — a brand system, a React timeline runtime, narration-derived timing, a headless-Chrome renderer, and a scrub studio | | @getnarro/video-marketing | Marketing scene components for @getnarro/video — lower thirds, stat counters, feature grids, pull quotes, device frames, callouts and end cards, all brand-driven and frame-deterministic | | create-narro | Scaffold a new Narro presentation |

All eleven ship from one repository and release together.

The npm package named narro is unrelated to this project. Narro's packages are all under the @getnarro/ scope; the CLI binary narro comes from @getnarro/cli.


Website · Documentation · llms.txt · GitHub · Issues · Changelog

Released under the MIT License.