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

@preserve-cli/seed

v0.2.0

Published

Preserve workspace CLI — seed brand, assets, products, proof, glossary, and overview from any marketing website

Readme

@preserve-cli/seed

Seed brand profiles, images, products, proof, glossary, and overview documents into a Preserve workspace from any public marketing website.

Prerequisites

  • An existing Preserve workspace
  • A workspace API key with seed/publish scope (brand.seed), created by a workspace owner or admin

Usage

npx @preserve-cli/seed \
  --url https://example.com \
  --slug my-workspace \
  --auth-key pk_live_…

Verify published workspace knowledge:

npx @preserve-cli/seed verify \
  --slug my-workspace \
  --auth-key pk_live_…

Dry-run scrape only (writes local cache, no publish):

npx @preserve-cli/seed \
  --url https://example.com \
  --slug my-workspace \
  --auth-key pk_live_… \
  --dry-run

Environment variables

  • PRESERVE_API_KEY — fallback for --auth-key
  • PRESERVE_BASE_URL — fallback for --base-url (default: https://mcp.preserve.design)

Commands

| Command | Description | |---------|-------------| | preserve-seed (default) | Crawl a website and publish full workspace knowledge | | preserve-seed verify | Read back published brand, assets, products, glossary, and proof via MCP |

Flags

| Flag | Description | |------|-------------| | --url | Website to scrape (required unless --skip-scrape) | | --slug | Workspace slug | | --auth-key | pk_live_ key with brand.seed scope | | --base-url | MCP host (default https://mcp.preserve.design) | | --max-pages | Maximum marketing pages to crawl (default 40) | | --include-blog | Include /blog pages in the crawl | | --dry-run | Scrape only; write local cache, no publish | | --skip-scrape | Publish from existing local cache | | --output-dir | Cache directory (default ./.preserve/{slug}/) |

What gets scraped

The CLI discovers pages via sitemap.xml, homepage nav/footer links, and priority marketing paths (/about*, /platform*, /product*, /pricing, /glossary, /case-study*, etc.).

It publishes:

  • Brand — company name, voice, colors, typography (from meta tags, JSON-LD, and CSS)
  • Assets — favicon, OG image, primary logo (customer/partner logos filtered out)
  • Products — one product per matched marketing/product page
  • Proof — case studies, testimonials, homepage metrics, FAQ claims
  • Glossary — terms from /glossary plus company name
  • Overview — markdown company overview document

Local cache

After scraping, files are written to .preserve/{slug}/:

pages.json
brand.json
assets-manifest.json
products.json
proof.json
glossary.json
overview.md

Use --skip-scrape to re-publish from cache without re-crawling.

Local development

From the monorepo root:

pnpm --filter @preserve-cli/seed build
pnpm preserve -- --url https://www.docket.io --slug docket-inc --auth-key pk_live_… --dry-run
pnpm preserve verify -- --slug docket-inc --auth-key pk_live_…

Publish to npm

The package is standalone (no monorepo workspace dependencies). From the repo root:

pnpm --filter @preserve-cli/seed pack:check   # build + validate tarball
pnpm preserve:publish                         # npm publish --access public

Requires npm login with publish access to @preserve-cli.