pi-git-delegate

Pi extension: delegate git operations (diff/log/blame) to cheaper models via subagents, saving costs and keeping parent context clean.

Packages

Package details

extension

Install pi-git-delegate from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-git-delegate
Package
pi-git-delegate
Version
0.2.15
Published
Nov 2, 2026
Downloads
553/mo · 101/wk
Author
eiei114
License
MIT
Types
extension
Size
260.1 KB
Dependencies
0 dependencies · 4 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

Pi Git Delegate

Join dotfield.xyz on Discord

CI Publish npm version npm downloads License: MIT Pi package Trusted Publishing

Delegate git operations (diff/log/blame) to cheaper models via subagents — keeping parent context clean and cutting costs.

What this is

Pi Git Delegate provides typed tools that internally delegate heavy git read operations (diff, log, blame) to subagents. The subagent processes the raw git output and returns only a concise summary to the parent session. This prevents large diffs from polluting the parent's context window and lets you route expensive operations to cheaper models.

When to delegate

The cost leverage principle: delegate only when input is large and output is small.

Operation Delegation Why
git diff (→ summary) ✅ Delegate Diff is large (1000+ tokens), summary is tiny
git log (→ changelog) ✅ Delegate Many commits → compact digest
git blame (→ context) ✅ Delegate Full blame is verbose; what matters is who/when/why
git status ❌ Direct Output is tiny; subagent overhead not worth it
git push / git commit ❌ Direct Write operations stay in parent for safety

Features

  • git_diff_summary — delegate git diff to a subagent, return a 1-3 sentence summary
  • git_log_summary — delegate git log range, return a structured digest
  • git_blame_summary — delegate git blame, return who changed what and why
  • Per-tool model routing — set provider and model per tool in .pi/settings.json (null uses the session defaults)
  • /git-delegate:configure — interactive help for writing the settings block
  • /git-delegate:status — show current model routing and example JSON
  • Model override parameter — override model per-call via tool parameter
  • Failure recovery — read retry boundaries and failure behavior
  • Fallback to current model — no config needed; uses the parent session model
  • Write guard — no write operations exposed as tools

Install

pi install npm:pi-git-delegate

Install locally (project-scoped):

pi install npm:pi-git-delegate -l

Try without installing:

pi -e .

Quick start

After installing (see above) or running pi -e . from this repo, start Pi from the Git repository you want to inspect. Follow Tool examples to ask Pi to use the tools.

The tools are registered automatically — no extra setup required.

Configuration

Model routing is optional. Run in Pi:

/git-delegate:configure

This shows what each key does, prints a starter JSON block, and can save it to .pi/settings.json interactively.

Check the current routing anytime with:

/git-delegate:status

Manual example for .pi/settings.json:

{
  "pi-git-delegate": {
    "diff": { "provider": "anthropic", "model": "claude-3-5-haiku-latest" },
    "log": { "provider": null, "model": null },
    "blame": { "provider": null, "model": null }
  }
}

null means "use the current session provider/model".

Tool examples

Install the package with pi install npm:pi-git-delegate, then start Pi from the Git repository you want to inspect. In Pi chat, ask:

Summarize my current working-tree changes using git_diff_summary with ref set to HEAD.

git_diff_summary uses HEAD by default and summarizes git diff HEAD. If there are no tracked changes, it returns No changes found. without starting a subagent; edit a tracked file first to see a summary. The other tools also inspect the current Git repository: give git_log_summary a commit range that exists there, or git_blame_summary a tracked file path. pi list only lists installed packages; ask Pi in chat to use a tool.

Package contents

Path Purpose
extensions/ Pi TypeScript extension entrypoints
lib/ Shared TypeScript helpers
docs/ Optional supporting docs

Development

npm install
npm run ci

Release

This package is set up for npm Trusted Publishing, so no NPM_TOKEN is required.

npm version patch
git push

See docs/release.md for setup details.

Docs

docs/ is optional supporting documentation, not a fixed six-file set. README stays the GitHub/npm entrypoint; add docs/*.md only when they help users or maintainers.

Security

Pi packages can execute code with your local permissions. Review extensions before installing third-party packages.

For vulnerability reporting, see SECURITY.md.

Links

License

MIT