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

patchmesh

v0.1.2

Published

A shared work ledger for coding agents: records what agents did, and hands it back so the next one does not repeat it.

Readme

patchmesh

A shared work ledger for coding agents and their subagents.

Agents write to it implicitly, by working through a host hook. They read from it deliberately — to find out what has already been done and what is being done right now, so they do not repeat it or collide with it.

npm install -D patchmesh patchmesh-recorder patchmesh-gateway
npx patchmesh init

init merges the recorder's hooks into .claude/settings.local.json, registers the patchmesh MCP server in .mcp.json, and adds .patchmesh/ to .gitignore. It is additive and idempotent: hooks belonging to other tools are never touched, and a second run reports what is already configured rather than appending a duplicate. Restart the agent session so it loads the hooks, then work normally.

Afterwards:

npx patchmesh status               # store health, counts, observation coverage
npx patchmesh events               # the durable event page
npx patchmesh overlaps             # files more than one worker changed
npx patchmesh prune --older-than 30

Agents get the same ledger back over MCP as patchmesh_recent_activity, patchmesh_overlapping_work, and patchmesh_recap.

What it records

A Claude Code PostToolUse hook journals every tool call — including the built-in Read, Edit, Write, and Bash that no MCP server can see — and the worktree is captured per turn and diffed, so a file written by a shell command is recorded even though the command named no path. Measured overhead is p50 108ms per call. Both binaries always exit 0: a recorder that can break your agent gets uninstalled after one incident.

What it does not do

PatchMesh reports. No command pauses, rejects, or redirects an agent.

Its stale and contracts detectors cannot fire on hook-recorded data — they are typed against read and dependency evidence a host hook does not produce — and say so rather than reporting "no findings". Overlap detection is implemented and correct but has not been exercised against genuinely concurrent work. See the repository README for the full list of what is and is not proven.

Requires Node 24 or newer: the event store is built on node:sqlite.

Repository · Issues · MIT