pi-git-context
Opinionated git state context injection for pi
Package details
Install pi-git-context from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-git-context- Package
pi-git-context- Version
0.1.3- Published
- Apr 21, 2026
- Downloads
- 351/mo · 11/wk
- Author
- h14h
- License
- MIT
- Types
- extension
- Size
- 48.3 KB
- Dependencies
- 0 dependencies · 2 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-context
Opinionated git state context injection for pi.
What it does
Injects a concise, current git snapshot into the LLM context on every prompt, while keeping the session history clean by only persisting snapshots when state actually changes.
Snapshot contents
| Section | Condition | Example |
|---|---|---|
| Remote | If remote exists | Remote: github.com/h14h/pi-packages |
| Default branch | If determinable, and not current branch | Default branch (main, a1b2c3d): synced with origin |
| Current branch / HEAD | Always in repo | Branch: feat/auth-refactor (b2c3d4e), +3 commits from main, ahead 1 / behind 0 |
| PR status | If gh CLI available and branch has PR |
PR: #42 (Ready) |
| Worktrees | If linked worktrees exist | Linked worktrees: 6 total |
| Working tree | Always | Working tree: dirty (2M, 1S, 1U, 0D) |
| Primary worktree | If CWD is a linked worktree | Primary worktree (main, a1b2c3d): synced with origin, clean |
Abbreviations: M = modified, S = staged, U = untracked, D = deleted.
Footer status
A persistent footer segment shows:
◈ ● (a1b2c3d) ✓
◈= linked worktree (·= primary worktree, fixed-width)●= clean /◐= dirty /✖= conflicted(a1b2c3d)= short SHA✓= snapshot up to date /?= warning / Braille spinner = refreshing
Commands
| Command | Description |
|---|---|
/git |
Open a read-only overlay showing the exact snapshot the agent will see on the next turn |
How it works
- Before each agent loop: computes snapshot. If it changed from the last persisted snapshot, a new
custom_messageentry is appended to the session (visible in TUI, collapsible). - Before every LLM call: the
contexthandler strips all prior git snapshots and injects exactly one fresh, ephemeral snapshot. The LLM never sees stale state. - After each agent turn: if
write,edit, orbashtools ran, an optimistic background refresh is kicked off so the next prompt sees current state. - Cache: a quick fingerprint (branch + SHA + worktree path + dirty count) avoids recomputing the full snapshot when nothing changed.
Install
pi install ./packages/pi-git-context
Or from npm (once published):
pi install pi-git-context