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

@nippyhost/cli

v0.4.0

Published

Publish sites to nippy.host from the terminal, CI, or Claude (via MCP). Drop a folder, get a link.

Readme

@nippyhost/cli

Publish websites to nippy.host from the terminal, CI, or Claude. Drop a folder, get a link — photos become a gallery, files become a download page, sites just work. Links don't expire.

npx @nippyhost/cli login                       # one-time: approve in your browser, done
npx @nippyhost/cli deploy ./dist --site demo   # → https://demo.nippy.site

The bin is called nippy, so a global install gives you the short form:

npm i -g @nippyhost/cli
nippy deploy ./photos --site henderson-wedding

Commands

| Command | What it does | |---|---| | nippy login | Opens your browser to approve the CLI on nippy.host (OAuth, no copy-paste) and stores the resulting scoped token in ~/.config/nippy/ (chmod 600). --paste for headless/SSH machines | | nippy deploy [path] --site <name> | Publish a folder, single file, or zip. Existing site → updated in place, same URL; missing → created. --new forces a fresh site, --json for scripts | | nippy sites / nippy sites info <name> | List sites / show one site's files | | nippy open <name> | Open https://<name>.nippy.site | | nippy whoami | Which credential is active, and does it work | | nippy mcp install [--client …] | Add the MCP server to Claude Desktop, Claude Code, or Cursor | | nippy mcp serve | Run the MCP server on stdio (assistants call this) |

Use from Claude (MCP)

On claude.ai (or any client that takes a remote MCP server): no install. Add a custom connector with the URL https://api.nippy.host/mcp — approval is the same OAuth consent screen as nippy login (Streamable HTTP, OAuth 2.1 + PKCE, dynamic client registration). The remote server has the same tools plus start_upload / start_revision / finalize_upload / abort_upload for files of any type and size.

Claude Desktop, Claude Code, or Cursor (local, stdio):

npx nippy-mcp                       # Claude Desktop
npx nippy-mcp --client claude-code  # Claude Code
npx nippy-mcp --client cursor      # Cursor

Then just ask: "publish this page on Nippy". Tools include publish_site, update_site (same URL, surgical file changes), list_sites, list_permanent_sites, read_site_file, check_site_name, plus paid-plan tools for passwords, SEO meta, search-indexing, and visitor analytics. Small binaries (images, PDFs, fonts) go inline with encoding: "base64" — up to 4 MB per file, 12 MB per call; use nippy deploy for anything bigger.

Previews

Assistants iterate, and most drafts are throwaway — so publishing has two verbs. publish_preview puts a draft at <slug>.preview.nippy.site: it expires 24 hours after its last update, is never indexed, and doesn't use up one of your site slots. update_preview revises it (and resets the clock), list_previews shows what's active with time remaining, and discard_preview throws one away.

When a draft is worth keeping, promote makes it permanent — either as a new site or by replacing an existing site's contents. The preview URL doesn't die: it becomes a permanent redirect to the site, so a link you already shared keeps working.

publish_site is unchanged and still means "permanent, counts against your plan". Free accounts hold 5 active previews at a time; paid plans are unlimited.

Use in CI

# any CI — the token comes from a secret
- run: NIPPY_TOKEN=${{ secrets.NIPPY_TOKEN }} npx @nippyhost/cli deploy ./dist --site docs --json

NIPPY_TOKEN always overrides the stored login.

Tokens & security

  • nippy login uses the same OAuth consent screen as Nippy's AI connectors; the login shows up under Connected apps in Settings → API & MCP, where you can disconnect it any time. For CI, create a token there instead — free account works (1 live site, 25 MB, no card).
  • Tokens are scoped (deploy/read/manage/analytics) and revocable. They can never delete sites, touch billing, or manage your account — those need the dashboard.
  • Plan limits are enforced server-side and reported honestly: hitting one tells you exactly what the limit is.

Notes

  • A folder without index.html becomes a gallery (all images) or a tidy download page (mixed files) automatically.
  • Zips are unpacked locally before upload.
  • Site names are subdomains of nippy.site: lowercase letters, digits, hyphens. If a name's taken you get the next free suffix back.

MIT · nippy.host · help