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

@yourfam/yf-wip

v0.1.0

Published

WIP git commit from file counts — no AI. Bare yf-wip is add -A then commit. --staged commits the index only.

Readme

yf-wip

WIP git commit from file counts — no AI. Bare yf-wip is add -A then commit. --staged commits the index only. Node 20+.

The message is counts and paths grouped by extension. It is not yf-commit (no LLM, no conventional-commits). Does not run your test suite. No GitHub token.

  • Source / README: https://github.com/YourFam/yf-wip
  • npm: https://www.npmjs.com/package/@yourfam/yf-wip
  • Unscoped alias: https://www.npmjs.com/package/yf-wip
  • Issues: https://github.com/YourFam/yf-wip/issues

Install

Node 20+.

npm install -g @yourfam/yf-wip

Then from any git repo:

yf-wip

The command is yf-wip.

Alternate modes of install

-g = on your machine (global).
-D = in this project (devDependency).

| | npm install -g @yourfam/yf-wip | npm install -D @yourfam/yf-wip | |---|---|---| | Where it goes | Global npm prefix (your user/system) | node_modules/ + package.json of the current repo | | Command | yf-wip from any folder | npx yf-wip (or a script) in that repo | | Other repos | Works | Not installed there | | Git | Not committed | Listed in package.json; teammates get it with npm install | | Typical use | A CLI you want everywhere | A tool this project uses in scripts/CI |

For yf-wip as a daily command, use -g. Use -D only if this one repo should own the tool.

With -D, the binary lives in that repo’s node_modules/.bin/. Your shell PATH does not include that, so plain yf-wip will not work. From that repo:

npx yf-wip

No install (npm fetches the published package):

npx @yourfam/yf-wip
npx yf-wip

npx yf-wip is the unscoped alias of @yourfam/yf-wip (same CLI, same version). After -g, the command is yf-wip.

If npm rejected unscoped yf-wip at publish time, the alias is yf-git-wip instead (npx yf-git-wip).

Main uses

Exactly one mode per run. Bare yf-wip is commit all. --staged is index only.

yf-wip

git add -A, then commit the index with a count-only WIP message.

Use this when you want every change in the work tree (tracked, untracked, deletions) in one WIP commit.

npx yf-wip

Subject looks like 🚧 3 files · +1 new · ~2 mod. Body lists Modified, then New, then Deleted, grouped by extension.

If the index is still empty after add -A, prints Warning: Nothing to commit. on stderr and exits 1.

yf-wip --staged

Commit the current index only. Does not git add. Unstaged and untracked files stay dirty.

Use this when you already staged the paths you want.

npx yf-wip --staged

-s is the same as --staged. If the index is empty, prints Warning: No staged changes to commit. on stderr and exits 1. It will not stage leftover dirty files to “help.”

Other arguments

| Argument | What it does | |---|---| | --print-alias | Print two git config --global lines that map git ca / git cs to this CLI. Exit 0. Does not write ~/.gitconfig. Does not commit. | | --help, -h | Usage. No git. | | --version, -V | Package version. No git. |

npx yf-wip --print-alias

Example output (paste yourself if you want those aliases; this command does not install them):

git config --global alias.ca "!npx --yes @yourfam/yf-wip"
git config --global alias.cs "!npx --yes @yourfam/yf-wip --staged"

Unknown flags abort with exit 1 and do not run git. There is no --message, --amend, or --no-verify in v1. Commit hooks still run.

Development

This is the GitHub repo, not a second package. Docs and source live here; npx / npm install still install whatever version is published on npm.

git clone https://github.com/YourFam/yf-wip.git
cd yf-wip
npm test
node ./bin/yf-wip.js --help

Maintainer: YourFam (kamal-yourfam on npm). MIT.

Publish the unscoped alias (maintainers)

The GitHub repo publishes two npm packages at the same version:

  1. npm publish --access public from the repo root → @yourfam/yf-wip
  2. Then from alias/, with matching version and dependencies["@yourfam/yf-wip"]:
cd alias
npm publish --access public

That second package is named yf-wip and only shims the scoped CLI so npx yf-wip cannot be squatted. If npm returns 403 similar to an existing package, publish unscoped yf-git-wip instead.

License

MIT © 2026 YourFam. See LICENSE.