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

@runecraft/graphify-pi

v0.3.0

Published

Minimal Pi extension for graphify knowledge graphs — lazy tools, git-based staleness, bounded exec, zero config.

Readme

@runecraft/graphify-pi

Minimal knowledge-graph extension for Pi

Query your codebase's knowledge graph from inside Pi — five tools, zero config, 83% fewer tokens.


What it does

@runecraft/graphify-pi wraps the graphify CLI as a Pi extension. It registers five tools that let your coding agent query, traverse, explain, and build a codebase knowledge graph instead of grepping raw files.

| Tool | What it does | |------|-------------| | graphify_build | Build the knowledge graph from your codebase (run first) | | graphify_query | BFS subgraph around concepts matching a natural-language question | | graphify_path | Shortest path between two nodes (fuzzy match) | | graphify_explain | Plain-language explanation of one node and its neighbors | | graphify_update | Incrementally re-extract changed files (AST-only, no LLM cost) |

Install

Via Pi (recommended)

pi install npm:@runecraft/graphify-pi

Manual with -e flag

Clone the repo and point Pi at the extension directly:

git clone https://github.com/runecraftai/pi-extensions.git
pi -e pi-extensions/packages/graphify-pi

Or for a single-session test:

pi -e /path/to/pi-extensions/packages/graphify-pi

As a project extension

Add to your project's .pi/extensions/ directory:

cp -r /path/to/pi-extensions/packages/graphify-pi ./graphify-pi
pi  # auto-discovers .pi/extensions/graphify-pi/

Requirements

  • graphify CLI on PATH (or set GRAPHIFY_BIN)
    uv tool install graphifyy
  • Node.js ≥ 20
  • Pi with extension support

Note: graphify-pi requires the graphify CLI to function. If the CLI is not found, you'll see a warning at session start with installation instructions.

Configuration

All configuration via environment variables — no config files:

| Variable | Default | Description | |----------|---------|-------------| | GRAPHIFY_BIN | graphify | Path to the graphify binary | | GRAPHIFY_BUDGET | 2000 | Default token cap for graphify_query results | | GRAPHIFY_STALE_COMMITS | 1 | Commits newer than graph before staleness notification | | GRAPHIFY_MAX_OUTPUT | 1048576 (1 MiB) | Max bytes from CLI stdout+stderr before truncation |

How it works

session_start
  ├─ graphify CLI available?
  │   ├─ no  → warn "install with: uv tool install graphifyy"
  │   └─ yes → continue
  ├─ graphify-out/graph.json exists?
  │   ├─ yes → register 5 tools + check staleness
  │   └─ no  → register tools (user can run graphify_build)
  └─ staleness check: git rev-list --count HEAD --since=<mtime>
       └─ count > threshold → notify "graph is N commits stale"

Tools shell out to the graphify CLI with a 60s timeout and bounded output capture. No extraction logic is reimplemented — every call delegates to the pinned binary.

Quick start

  1. Install graphify: uv tool install graphifyy
  2. Install the extension: pi install npm:@runecraft/graphify-pi
  3. Open Pi in your project
  4. Run: graphify_build (or let the extension auto-detect an existing graph)
  5. Query: graphify_query "how does authentication work?"

License

MIT — © 2026 Runecraft AI