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

iwomc

v0.5.0

Published

It Works On My Computer - find out why a teammate's checkout fails, and fix it.

Readme

IWOMC

It Works On My Computer. IWOMC finds out why, and fixes it.

Your teammate clones the commit you just pushed. Your app runs. Theirs does not. Usually the difference is not in the code - it is on your disk. A package that got installed but never added to package.json. A version that had to be rolled back. A virtual environment set up by hand weeks ago.

IWOMC records what your machine actually has, ties it to the exact Git commit, and uses that to make the other machine work - then proves it by running your own test command. It says working only when that command passes.

Install

npm install -g iwomc

Node.js 22.5 or newer. No Docker, no account, no server.

Use it

On the checkout that works:

iwomc init --proof "npm test"
iwomc capture
iwomc verify

On the checkout that is broken:

iwomc rescue --approve

Then, so nobody hits it again:

iwomc promote          # show an ordinary diff that fixes the repository
iwomc promote --apply

Keep a history

A contract describes one commit. To answer what was installed at 2pm last Tuesday

  • or to catch a downgrade, which a snapshot cannot express - leave the recorder on:
iwomc daemon status                       # a recorder starts by itself; this shows it
iwomc timeline <commit>                   # what was installed at that commit
iwomc diff <their-commit> <your-commit>   # what is different between the two

The recorder starts the first time you use IWOMC in a project and tells you it has. It reads your project's package folders and nothing else: it never runs a package manager, never looks outside the projects you registered, never edits a tracked file, and never uploads your history. iwomc daemon disable stops it.

For coding agents

iwomc mcp exposes the same workflow as typed MCP tools. Anything that changes your machine refuses to run without explicit confirmation. Run iwomc agent-docs for the full reference offline.

Across operating systems

The person whose machine works is often not on your operating system. IWOMC applies their contract anyway when nothing in it is restricted to one platform, and says it was proven elsewhere rather than implying otherwise. When something is restricted - a build tool's per-platform binary, say - it refuses and names the package instead of giving you a generic mismatch to diagnose.

Supported today

Nine package managers are detected, recorded, repaired, and verified:

| Ecosystem | Managers | | --- | --- | | Node.js | npm, pnpm, Yarn, Bun | | Python | pip, uv, Poetry | | Rust | Cargo | | Go | Go modules |

Every one of them installs inside your project folder only. Each keeps a machine-wide cache by default - ~/.cargo, ~/.npm, Go's module cache - and IWOMC redirects every one into the project's own .iwomc directory, so a rescue never changes anything outside the checkout it was pointed at.

Cargo and Go find their dependencies only through an environment variable. IWOMC sets it for the proof command it runs and prints what to set in your own shell; it cannot change your shell for you.

Nineteen more are recognised and reported honestly as not yet repairable, rather than claimed as supported. iwomc status names the level for the project you are in.

More

Source, documentation, and issues: https://github.com/Carldtitan/Environment_Drift

MIT licensed.