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

shiptag

v0.1.0

Published

Generate a beautiful, shareable SVG card for any repository.

Readme

shiptag

Generate a beautiful, shareable SVG card for any repository — name, description, primary languages (with a colored language bar), stars/forks, and owner. Perfect for social previews (Open Graph) and README headers.

shiptag example card

  • Pure, well-tested rendererrenderCard(data) returns a standalone SVG.
  • Two modes — fetch from GitHub, or build entirely offline from a local repo.
  • No native deps — SVG only (a future --png is noted below).

Install

npm install -g shiptag
# or run without installing:
npx shiptag <owner/repo>

Requires Node.js >= 18.

Usage

GitHub mode

Fetch repo metadata and the language breakdown from the GitHub REST API:

shiptag abdulmunimjemal/shiptag -o card.svg

Set GITHUB_TOKEN to lift the unauthenticated rate limit (optional):

GITHUB_TOKEN=ghp_xxx shiptag facebook/react -o react.svg

Local mode (offline, no network)

Build a card from a local repository — reads package.json (name, description), the git origin remote (owner/name), and computes the language breakdown by scanning file extensions (skipping node_modules, .git, dist, etc.):

shiptag --local .                 # current directory, SVG to stdout
shiptag --local ../my-project -o my-project.svg

Options

| Option | Description | | --- | --- | | -o, --out <file> | Write the SVG to <file> (default: stdout). | | --theme <name> | dark (default) or light. | | --size <name> | og — 1200×630 social size (default); card — compact. | | --local [path] | Offline mode; scan [path] (default: current directory). | | --summary | Replace the description with a one-line AI summary (off by default). | | --base-url <url> | Base URL for the --summary API (default: OpenAI). | | -h, --help | Show help. | | -v, --version | Show version. |

Exit codes: 0 ok, 1 fetch error, 2 usage error.

AI summary (optional, off by default)

With --summary, shiptag asks an OpenAI-compatible chat endpoint for a single punchy line describing the repo, using your own OPENAI_API_KEY. Without the flag, the card uses the repo description and makes no AI calls.

OPENAI_API_KEY=sk-xxx shiptag abdulmunimjemal/shiptag --summary -o card.svg
# point at any OpenAI-compatible API:
shiptag owner/repo --summary --base-url https://my-gateway.example/v1

Programmatic API

renderCard is a pure function and is exported for direct use:

import { renderCard, computeLanguages } from "shiptag";

const svg = renderCard({
  name: "shiptag",
  owner: "abdulmunimjemal",
  description: "Generate a beautiful, shareable SVG card for any repository.",
  languages: computeLanguages({ TypeScript: 9200, JavaScript: 600 }),
  stars: 1280,
  forks: 47,
});

Also exported: computeLanguages, fetchGitHubCard, buildLocalCard, generateSummary, colorForLanguage, and the LANGUAGE_COLORS map.

Roadmap

  • --png output (currently SVG only, to avoid native dependencies in v0.1).

License

MIT © 2026 Abdulmunim Jemal