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

@lahfir/text-shimmer

v0.1.0

Published

Bun-powered CLI for generating animated shimmer text frames.

Readme

text-shimmer

Give any terminal string a gentle, animated shimmer. This Bun-powered package bundles a CLI and a tiny API so you can drop the effect into status banners, onboarding scripts, or whatever else needs a little spotlight.

Quick start

  1. bun add @lahfir/text-shimmer
  2. bun run build
  3. bun ./dist/cli.js "Shipping soon"

Tip: during development you can run straight from TypeScript with bun src/cli.ts "Draft build" to skip the build step.

Use the CLI

text-shimmer "Release party" --palette "red,white,gold" --speed 60
  • Colours can be hex (#ec4899) or plain words (magenta, light gray, teal).
  • --static prints a single shimmer frame, handy for screenshots.
  • --speed controls the delay between frames in milliseconds.
  • --width widens the glow if you want a slower roll.
  • --bold flips on ANSI bold when you want extra emphasis.
  • --once or --iterations let you cap the loops.

Pipe anything in:

echo "Deploying service" | text-shimmer --palette "cyan,purple" --once

Embed in your own tool

import { createShimmerSequence, animateToStream } from "@lahfir/text-shimmer";

const banner = createShimmerSequence("Build complete", {
  palette: ["skyblue", "white", "gold"],
  highlightWidth: 8,
  bold: true,
});

console.log(banner.frameAt(0));

await animateToStream(process.stdout, "Waiting on staging", {
  speed: 40,
  iterations: 2,
});

The shimmer smoothly blends between the base colour (defaults to a soft gray) and your palette. Pass baseColor: null or --plain if you want to skip the overlay entirely, and add bold: true or --bold whenever you want the text weight turned up.

Options at a glance

| Flag | Purpose | | ----------------------------- | ------------------------------------------------------- | | --palette <a,b,c> | Comma-separated colours (hex or names) for the gradient | | --base <colour> | Base colour outside the shimmer (hex or name) | | --bold | Apply ANSI bold styling to the text | | --frames <count> | Override the total frames in the loop | | --width <number> | Grow or shrink the shimmer spread | | --speed <ms> | Delay between frames | | --plain | Disable colour output | | --static | Print only one frame | | --once / --iterations <n> | Control looping | | --help / --version | Utility info |

Work on the project

bun install
bun run build
bun test

The build emits dist/index.js and dist/cli.js. Tests (and the shimmer itself) run on the Bun runtime.