@arvoretech/pi-recap
v1.0.1
Published
PI extension that drafts a one-line recap of where you left off — on demand with /recap and automatically when you return to an idle session
Readme
@arvoretech/pi-recap
Drafts a one-line recap of where you left off in a Pi session — inspired by Claude Code's session recap.
What it does
- On demand: run
/recapany time to get a 1–2 line summary of what was being worked on, what's done, and the next pending step. Useful before a commit, before opening a PR, or after a long session. - Automatically on return: when you come back to a session that has been idle for a while, Pi drafts the recap and shows it before your next turn — so you don't have to scroll back to rebuild context.
The recap is generated by a background model call (via the host's completeSimple, same mechanism as smart-context) using the current session model. It's best-effort: if it can't run, it silently no-ops and never blocks your turn.
Auto-recap trigger
Pi has no native terminal focus/blur event, so instead of Claude Code's "unfocused ≥ 3 min" signal this extension uses idle wall-clock time since the last completed turn:
- At least 3 minutes elapsed since the last
agent_end. - Session has at least 3 user turns behind it.
- Never twice in a row — after a recap is shown, the next one waits for fresh activity.
- Interactive mode only (
ctx.hasUI); skipped in print/headless mode.
The practical effect (a recap waiting when you return) is the same; the trigger is time-based rather than focus-based.
Configuration
Auto-recap is on by default. Disable it with an env var:
export PI_ENABLE_AWAY_RECAP=0/recap always works regardless of this setting.
Install
.pi/settings.json:
{
"packages": ["npm:@arvoretech/pi-recap"]
}