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

mini-tanjiro

v4.0.5

Published

A Tanjiro desktop mascot for macOS, Windows and Linux. Free, unofficial, non-commercial fan project.

Readme

mini-tanjiro

A Tanjiro (Demon Slayer) desktop mascot — a Shimeji-style pet that lives on top of every window on your desktop. He wanders and walks along the bottom of your screen on his own; tap him to make him run, double-tap to hear his signature line. Ships as a free, non-commercial npm package: npm install -g mini-tanjiro, then run mini-tanjiro from any terminal.

Tanjiro appears as a small sprite glued to the bottom edge of your primary screen, visible above every other app (Chrome, VS Code, Finder — everything). Everywhere except the small area he occupies, clicks pass straight through the invisible overlay to whatever is underneath — your desktop works normally except where Tanjiro stands.

Current status: Tanjiro lives across all connected displays — one transparent overlay window per screen, with the simulation running in the main process. He wanders and walks along each display's ground line on his own; tap him to run, double-tap for his signature line, grab and carry him between screens, or throw him and watch him arc, bounce, and land. Published to npm — run npx mini-tanjiro, or npm install -g mini-tanjiro and then mini-tanjiro.

Platforms: macOS and Windows are supported and tested. Linux is experimental — the code runs and the app boots, but this project is developed on a Mac with no Linux machine available, so its visual behaviour is unverified. If something looks wrong on Linux, please open an issue: run npx mini-tanjiro --verbose and paste the first line it prints.

Troubleshooting

Quit him. Right-click Tanjiro and choose Quit — this always works. You can also use the menu bar icon when it is visible. If neither is reachable — GNOME has no system tray unless the AppIndicator extension is installed — run pkill -f mini-tanjiro.

The menu bar icon disappeared. macOS gives the newest menu bar item the leftmost slot, and that is the first one the system drops when the bar runs out of room. It is not a crash: Tanjiro is still running, and right-clicking him still opens Guide and Quit.

To keep the icon permanently, ⌘-drag it a few positions to the right in the menu bar. macOS remembers where you put it, and out of the leftmost slot it stops being the first thing evicted. The app cannot do this for you — there is no API to claim a menu bar position.

He is a black rectangle (Linux). Some Linux GPU stacks hand back a window with no alpha channel. Try MINI_TANJIRO_DISABLE_GPU=1 npx mini-tanjiro, and please open an issue either way — whether it helps identifies the cause.

Nothing happens at all. Run npx mini-tanjiro --verbose. That keeps the process attached and prints what the app is doing.

"Electron failed to install correctly". mini-tanjiro ships a small Electron npm wrapper and downloads the separate ~100 MB runtime during npm install (with an X.X MB / Y.Y MB progress bar on a real terminal). If Electron was already cached on your machine, the download finishes quickly and you may only see the static "extracting" line — that is normal. That step can be skipped if npm was configured to skip setup scripts — most often ignore-scripts=true. If the runtime is still missing after install, the first run of mini-tanjiro will try again. To check whether skipped scripts were the cause:

npm config get ignore-scripts

If that prints true, reinstall with npm install -g mini-tanjiro --ignore-scripts=false.

Disclaimer: Unofficial fan project. Not affiliated with Shueisha, Ufotable, or Demon Slayer. Free and non-commercial.

For the full v1 product spec and roadmap, see V1.md. For the v2 spec (in progress), see V2.md.


Prerequisites

  • Node.js (v22+ recommended)
  • Bun (dev tooling — end users installing the published package via npm never need this)

Install (development)

Clone or download the repo, then:

bun install

Commands

Run (development)

Start the app with hot reload:

bun run dev

Preview the production build locally (no dev server):

bun run start

Build

Typecheck and compile to out/:

bun run build

Run the built app directly (without global install):

node bin/mini-tanjiro.js

Typecheck

Check TypeScript for main, preload, and renderer:

bun run typecheck

Check main/preload only:

bun run typecheck:node

Check renderer only:

bun run typecheck:web

Lint & format

bun run lint
bun run format

Global CLI (local test)

This mirrors the real end-user install path, so it deliberately uses npm rather than bun — end users installing the published package always go through npm.

Install the package globally from this folder, then run from anywhere:

npm install -g .
mini-tanjiro

The process detaches immediately — the terminal returns to a prompt while the overlay keeps running.

Uninstall the global test install:

npm uninstall -g mini-tanjiro

Packaging check

See what would be included in an npm publish tarball:

npm pack --dry-run

Quitting

Right-click Tanjiro and choose Quit. When the menu bar icon is visible, you can also click it and choose Quit.

If the process is ever unresponsive, fall back to Activity Monitor (search for "Electron") or pkill -f mini-tanjiro.


Tech stack