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

termuijs

v0.1.1

Published

Add TermUI components to your project — npx termuijs add <name>

Readme

termuijs

Copy TermUI components into your project. No install, no wrapper package — you get the actual source files in your repo, and you own them from there.

npx termuijs add spinner

That writes the Spinner source into src/components/spinner/ and installs whatever @termuijs/* packages it needs, using the package manager your project already uses.

Commands

add

npx termuijs add <name...>

Pass one or more component names. Each one's files land under src/components/<name>/, and any dependencies they pull in get installed in a single pass.

npx termuijs add spinner table progress-bar

Run it with no name to pick from a list:

npx termuijs add

list

npx termuijs list

Prints every component the registry knows about.

Flags

| Flag | Default | What it does | |------|---------|--------------| | --dir <path> | src/components | Where to write the files. | | --dry-run | off | Print what would be written and installed, change nothing. | | --yes, -y | off | Overwrite an existing component folder instead of stopping. |

A dry run is the quickest way to see what add will touch before it touches it:

npx termuijs add data-grid --dry-run

If a component folder already exists, add stops and tells you. Re-run with --yes to overwrite it.

How it works

Components live as JSON in the registry at https://termui.io/r/. add fetches r/<name>.json, writes the files it lists, gathers their dependencies, and installs them. list reads r/registry.json for the full index.

Files are always written inside the destination folder. A component that tries to write outside it is rejected, so a bad registry entry can't escape src/components.

Your package manager is detected from the lockfile in the current directory (bun.lock, pnpm-lock.yaml, yarn.lock, or package-lock.json), falling back to npm.

To point at a different registry — a local mirror, say, or a preview deploy — set TERMUI_REGISTRY_URL:

TERMUI_REGISTRY_URL=http://localhost:3000 npx termuijs add spinner

Links

  • Docs: https://www.termui.io
  • Source: https://github.com/Karanjot786/TermUI

MIT