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

weavatrix-md

v0.2.4

Published

Tiny deterministic cross-repository integration map for coding agents.

Readme

weavatrix-md

crates.io npm MIT

Tiny deterministic cross-repository integration map for coding agents.

weavatrix-md looks at local repositories and writes one WEAVATRIX.md next to README.md, AGENTS.md, and CLAUDE.md. The file answers a single question:

Which other repositories sit on the other side of this repo’s databases, Redis, Vault, Kafka topics, and APIs?

It is not a graph engine and not Weavatrix Core. Local analysis depends only on weavatrix-scan and weavatrix-parse. An optional stdio MCP host (weavatrix-md mcp, tool weavatrix_md) wraps the same generator.

Install

cargo install weavatrix-md --locked
# or
npm install -g weavatrix-md

Requires Rust 1.88+ for the crates.io install. The npm package ships the same native binary for win32/darwin/linux on x64 and arm64 (Node 18+). After npm install you also get weavatrix-md-mcp (same as weavatrix-md mcp).

Quick start

Default scope is the current Git repository plus sibling Git repositories in the parent directory:

cd ~/work/payments-api
weavatrix-md
# -> writes payments-api/WEAVATRIX.md
#    peers: payment-worker, checkout-web (siblings under ~/work)
weavatrix-md                  # current repo + siblings
weavatrix-md /path/to/repo    # explicit target + siblings
weavatrix-md --folder ~/work  # every Git repo under the folder
weavatrix-md --check          # CI: fail if WEAVATRIX.md is stale
weavatrix-md --stdout         # print instead of writing
weavatrix-md mcp              # MCP stdio host (tool weavatrix_md)

Example: three sibling services

A runnable neighborhood lives in examples/mixed-three-repos:

| Repo | Role | Evidence the tool reads | |---|---|---| | payments-api | HTTP API + Kafka producer | .env.example DB URL, producer.send({ topic: "payment.completed" }) | | payment-worker | Kafka consumer + same DB | .env.example DB URL, consumer.subscribe({ topic: "payment.completed" }) | | checkout-web | HTTP client | fetch("http://payments-api:3000/charge") |

cd examples/mixed-three-repos
git init payments-api payment-worker checkout-web   # discovery keys off .git
weavatrix-md --folder .

Generated payments-api/WEAVATRIX.md:

# Weavatrix

Repository: `payments-api`

## Database

- PostgreSQL / `payments`
  - `payment-worker`

## Kafka

- `payment.completed`
  - produces → `payment-worker`

## API

- called by ← `checkout-web`

Generated payment-worker/WEAVATRIX.md:

# Weavatrix

Repository: `payment-worker`

## Database

- PostgreSQL / `payments`
  - `payments-api`

## Kafka

- `payment.completed`
  - consumes ← `payments-api`

Generated checkout-web/WEAVATRIX.md:

# Weavatrix

Repository: `checkout-web`

## API

- calls → `payments-api`

WEAVATRIX.md is fully generated. Do not edit it by hand.

CI stale check

weavatrix-md --folder examples/mixed-three-repos --check
# exit 0 if committed files match; exit 1 if stale

Print without writing

weavatrix-md examples/mixed-three-repos/payments-api --stdout

What it proves

| Section | Identity | Direction | |---|---|---| | Database | engine + host + logical database | neighborhood, no arrows | | Redis | host + logical database | neighborhood, no arrows | | Vault | host | neighborhood, no arrows | | Kafka | topic, including Go flag.String defaults and kafka-go | produces → / consumes ← | | API | host/service alias, or a globally unique non-generic route | calls → / called by ← |

Precision over recall. A missing edge is acceptable. A false edge in committed agent context is not.

It will not link repositories because they share a users table, a DATABASE_URL key, or GET /health.

Redis / Vault example

When two repos share the same Redis or Vault identity (for example REDIS_URL=redis://cache.internal:6379/0 or VAULT_ADDR=https://vault.internal), they appear under neighborhood sections — without produce/consume arrows:

## Redis

- Redis / `0`
  - `payment-worker`

## Vault

- `vault.internal`
  - `payment-worker`

What it does not do

No watcher, LLM, Git history, blast radius, owners, diagrams, or edits to AGENTS.md / CLAUDE.md. RabbitMQ, NATS, SQS, and runtime maps are out of scope. Redis and Vault appear only as neighborhood identity sections, not as message-bus edges.

Local mode is offline. It never executes repository code, never opens a database, and never prints credentials. .env secret files stay ignored; .env.example is eligible. The MCP host uses the same offline path.

Agent integration

The generator does not patch agent instruction files. Point the agent at the artifact once:

Claude Code — in CLAUDE.md:

@WEAVATRIX.md

Codex / Cursor / Copilot CLI — in AGENTS.md:

For cross-repository changes, read WEAVATRIX.md first.

MCP — stdio host, tool weavatrix_md:

weavatrix-md mcp
# npm also installs: weavatrix-md-mcp

Example tool arguments:

{
  "folder": "/Users/you/work",
  "check": false,
  "stdout": false
}
{
  "path": "/Users/you/work/payments-api",
  "stdout": true
}

Development

cargo fmt --all -- --check
cargo clippy --all-targets -- -D warnings
cargo test --locked
cargo bench --bench generation

Benches live in benches/generation.rs. Recorded numbers: benchmark-results/generation.txt. Release binary on this workstation: 1.1 MiB stripped.

License

MIT. Copyright (c) 2026 Sergii Ziborov.