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-interrupt

v1.0.1

Published

Safely context-switch urgent Git fixes with worktrees — no stash, no WIP commits.

Readme

Git Interrupt

No stash. No WIP commits.

Git Interrupt creates a clean worktree for an urgent fix, so the work you already have in progress stays exactly where it is.

Quick start

Install it once:

npm install --global git-interrupt

From the repository you were working in:

git-interrupt fix/login

When the fix is committed, run this from its worktree:

git-interrupt done

No global install? Replace git-interrupt with npx git-interrupt in either command.

Stop stashing. Start fixing.

An urgent bug should not wreck the work you already have in progress.

Git Interrupt gives every urgent fix its own clean Git worktree. Your current branch, modified files, and untracked files stay exactly where they are. No stash. No WIP commit. No branch-switching anxiety.

The full workflow

You are deep into feature/payments. Twelve files are modified. Three are untracked. Then a login bug lands in your lap.

git-interrupt fix/login

Fix the bug in the new VS Code window. Commit and push it as you normally would:

git add -A
git commit -m "Fix login failure"
git push -u origin fix/login

Then, from the interrupt worktree's terminal:

git-interrupt done

The temporary worktree is removed. Your original workspace is still waiting for you, untouched.

What just happened?

your-project/                 feature/payments + unfinished local work
your-project-fix-login/       fix/login + the urgent fix

Git Interrupt creates the second folder using git worktree. Both directories share the same Git repository, but have independent branches and working files.

| Your current work | The urgent fix | | --- | --- | | Stays in its original folder | Gets a clean sibling folder | | Keeps modified and untracked files | Starts from the latest commit (HEAD) | | Is never stashed or committed by the tool | Gets its own branch |

Why use it?

Git already has the safe primitive: git worktree. Git Interrupt turns it into a habit you can use under pressure.

  • No stash — nothing to forget, pop, drop, or accidentally apply on the wrong branch.
  • No WIP commits — your history stays meaningful.
  • No lost context — open the fix in a separate VS Code window and return to your original work exactly as you left it.
  • No risky cleanupdone refuses to remove a worktree that has uncommitted changes.

Install options

Run it on demand with npx:

npx git-interrupt fix/login

Or install it globally if you use it often:

npm install --global git-interrupt

Then run:

git-interrupt fix/login

Commands

Create an interrupt worktree

git-interrupt <branch-name>

For example, git-interrupt fix/login creates a sibling directory named <repository>-fix-login and a new fix/login branch.

Remove a completed interrupt worktree

Run this from inside the interrupt worktree after committing or otherwise cleaning all changes:

git-interrupt done

Git cannot change the directory of your parent shell, so the command prints the path of your original workspace for you to return to.

Safety promises

Git Interrupt never:

  • runs git stash;
  • creates a commit;
  • modifies the original worktree;
  • deletes a branch;
  • removes a worktree with uncommitted changes.

It also refuses to overwrite an existing destination or reuse an existing local branch.

Requirements

  • Git 2.5+
  • Bash 3.2+ (already included with macOS)
  • Optional: VS Code's code command

Development

npm test

License

MIT