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

@gtheys/pi-sem

v0.1.1

Published

Pi extension — entity-aware semantic code tools (diff, impact, context, blame, log) via the sem CLI

Readme

pi-sem

Semantic Git tooling for Pi, powered by sem.

The extension exposes entity-aware tools to the model instead of making it reason over raw line hunks only.

Included tools

  • sem_diff - entity-level diff for working tree, staged changes, commits, or ranges
  • sem_impact - dependency / blast-radius analysis for an entity
  • sem_context - token-budgeted semantic context for a focused entity
  • sem_log - entity history across git commits
  • sem_entities - structural inventory of a file
  • sem_blame - entity-level blame for a file
  • sem_eval - compares sem diff against raw git diff for coverage and prompt footprint

Installation notes

This repo declares @ataraxy-labs/sem as an optional dependency, so npm install should fetch the wrapper binary automatically on supported platforms.

Fallback options:

npm install @ataraxy-labs/sem
# or
brew install sem-cli
# or
cargo install --git https://github.com/Ataraxy-Labs/sem sem-cli

Evaluation workflow

Run the local benchmark helper to compare semantic diff coverage and size versus raw git diff:

npm run sem:evaluate -- --staged
npm run sem:evaluate -- --from origin/main --to HEAD
npm run sem:evaluate -- --commit HEAD

Useful flags:

npm run sem:evaluate -- --staged --no-impact
npm run sem:evaluate -- --from origin/main --to HEAD --file-ext .ts --file-ext .md
npm run sem:evaluate -- --format json

What to look at

The evaluator reports:

  • coverage - how many git-changed files also show up in sem diff
  • payload size - bytes / lines / rough token estimate for raw git diff vs sem diff --format json
  • semantic summary - number of entities, change types, and top changed entities
  • impact samples - sample sem impact --tests lookups for a few changed entities

Important: our first local runs showed that sem diff --format json is not always smaller than raw git diff, especially on very large or lockfile-heavy diffs. The upside is better entity structure and impact/context workflows, not guaranteed token compression on every selection.

Suggested Pi usage

Good prompts once the extension is loaded:

  • “What changed in this branch? Use sem.”
  • “Use sem_eval to compare semantic diff vs git diff on the current changes.”
  • “What tests are affected by changes to buildReport? Use sem_impact.”
  • “Give me focused context for buildReport with a 4000 token budget using sem_context."

Recommended default posture:

  • prefer sem_context for one suspicious function/class
  • prefer sem_impact for blast radius and test selection
  • use sem_diff once for overview / counts / review framing
  • keep raw git diff and file reads for exact line-level evidence

If the review extension is loaded too, /review now adds this semantic workflow directly into its review prompt.