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

git-commandos

v0.1.1

Published

Git, but you have to earn it. A 3D extraction shooter CLI that wraps git and gates real commits behind gameplay.

Readme

What is this?

Your staged files are cargo. You carry them across a hostile city to the extraction pad and hold it while the commit is written. Take a hit and the crate on top is knocked loose, decaying on the ground until you go back for it — or don't.

Whatever you fail to extract is unstaged instead of committed. In extreme mode, the stakes are worse: lost files are deleted from disk.

Install

npm install -g git-commandos

Needs Node 18.17+ and a real git on your PATH. The game ships pre-built — there is nothing to compile after install.

# or run from a clone
pnpm install && pnpm build
node cli/index.mjs --help

Commands

| Command | Description | |---|---| | gcmds commit -m "message" | Commit staged files — survive to ship them | | gcmds push [remote] [branch] | Push commits to remote | | gcmds merge <branch> | Merge a branch | | gcmds quick-run | Stage fake files and play a test round | | gcmds fake-files [--count=N] | Create and stage N fake .ts files | | gcmds play | Launch sandbox mode (no real git state) |

All commands accept --extreme: on loss, files are deleted from disk instead of just unstaged.

Drop in gcmds wherever you type git

gcmds is a superset of git. Anything it does not gate, it hands to git exactly as typed — same output, same exit code:

gcmds status
gcmds log --oneline -10
gcmds rebase -i HEAD~3
gcmds commit -m "earn it"   # ← this one opens the game

So you can alias it and forget about it:

alias git=gcmds   # in ~/.zshrc or ~/.bashrc

git itself is never touched. Nothing is installed, symlinked or shadowed on your PATH — the alias is yours to add and remove, and every script, hook and tool on your machine keeps calling the real git exactly as before.

What is gated and what is not:

  • Gated: commit, push, merge — in the plain forms, the ones that mean "ship what I have".
  • Passed through: everything else, and any form of those three the game has no business interpreting — --amend, --fixup, -p, a pathspec, merge --abort, merge --continue, push --delete, refspecs like origin :old-branch. Those go to git exactly as typed.
  • Flags you pass along (--no-verify, --signoff, -u) are forwarded to the real command once you have survived.
  • gcmds commit with no -m still opens your editor, with your template, first.
  • Hooks still run. -C, --git-dir and the rest of git's global options are never parsed by us — an invocation carrying them is git's.

Aliased and want to skip the game once? Type \git (or command git).

What a run looks like

Every command opens the game in your browser. The briefing is your actual commit — message, branch, files, and what a failed run will cost you.

Mission briefing

Your staged files are cargo, on your back from the moment you land. The extraction pad is somewhere across a dark city, and the marker tells you how far.

The city at night

Recruiters hold range and talk at you while they shoot. Every hit knocks a crate loose, and a dropped file decays on a visible timer — recover it or it's gone.

Recruiter engagement

Interns arrive in packs. One is nothing; four at once while a recruiter holds range is the pincer the two of them exist to create.

Intern pack

Meetings land on the map at random — no warning, nothing to shoot to stop them: amber ones you are compelled to attend (and are safe from fire inside), red ones that pin you in molasses if you step in.

Mandatory and avoid meetings

The Outlook Invite Storm rains invites across the block.

Outlook Invite Storm

Catch one and you get a modal. It accepts itself if you don't answer.

Meeting invitation

AI bro stampede Moving straight on vibes can not be tamed. will not listen to anyone. better get out of the way

AI bro stampede

Reaching the pad isn't the end: you have to hold it while the commit is written, which is exactly when the second stampede is scheduled.

Holding the extraction pad

Carry it all out and the commit lands, with a footer recording how it was earned.

Extraction complete

Don't, and nothing is committed — the files you lost are unstaged behind you. In --extreme mode they are deleted instead.

Mission failed

Controls

| Input | Action | |---|---| | WASD | Move | | Mouse | Aim | | Left mouse | Fire | | Space | Dodge | | E | Interact — deposit or reclaim at the stash cache | | Q | Drop a crate | | R | Reload | | Esc | Pause |

Gamepad works too — sticks to move and aim, triggers to fire.

Pickups

| Pickup | Effect | |---|---| | Machine Gun / Shotgun | Weapon upgrade — the Sidearm never runs out, these do | | Ammo | Rounds for the matching weapon only | | Medkit | Heal, under the health rule |

Development

pnpm install   # also copies chiptune3 worklet files to public/audio/
pnpm dev       # Vite dev server (game only, no CLI integration)
pnpm build     # build to dist/ (required for CLI commands to work)
gcmds quick-run   # fast test loop

Music: drop a .xm or .mod tracker file at public/music/chiptune.xm. Free tracks at modarchive.org.


FAQ

Is this a good idea? No.

Is it safe to use on a real project? No.

I lost a bunch of work. What do I do? Please fill out this form.