@gtheys/pi-sem
Pi extension — entity-aware semantic code tools (diff, impact, context, blame, log) via the sem CLI
Package details
Install @gtheys/pi-sem from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@gtheys/pi-sem- Package
@gtheys/pi-sem- Version
0.1.1- Published
- Jul 20, 2026
- Downloads
- 238/mo · 167/wk
- Author
- gtheys
- License
- MIT
- Types
- extension
- Size
- 47.7 KB
- Dependencies
- 0 dependencies · 4 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
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 rangessem_impact- dependency / blast-radius analysis for an entitysem_context- token-budgeted semantic context for a focused entitysem_log- entity history across git commitssem_entities- structural inventory of a filesem_blame- entity-level blame for a filesem_eval- comparessem diffagainst rawgit difffor 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 diffvssem diff --format json - semantic summary - number of entities, change types, and top changed entities
- impact samples - sample
sem impact --testslookups 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_evalto compare semantic diff vs git diff on the current changes.” - “What tests are affected by changes to
buildReport? Usesem_impact.” - “Give me focused context for
buildReportwith a 4000 token budget usingsem_context."
Recommended default posture:
- prefer
sem_contextfor one suspicious function/class - prefer
sem_impactfor blast radius and test selection - use
sem_diffonce for overview / counts / review framing - keep raw
git diffand 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.