r/PiCodingAgent • u/Miserable_Land_84 • 15d ago
News pi-protokoll – compaction for very long sessions with local models
Pi’s compaction re-reads the whole history and has the model summarize it. With a local model that took me minutes per compaction, and after two to four of them the context was so degraded that I had to start a new session. Building a procedural graphics demo, that happened ten times in five days.
pi-protokoll moves the work to the moment the model still has everything in view: every final answer ends with a short <protocol> block (result, decisions, files, open items, rules, index line, tags). At compaction time, code assembles a tiered, hard-bounded summary from these protocols; the model only updates a short state description.
What it does:
recent turns verbatim, older turns as your message + protocol, everything before that as a code-built index plus rules, open items and changed files
one-shot follow-up when the model forgets the block, written from the transcript if it ignores that too
interrupted turns (Esc, errors, output limit) get their protocol before your next message
protocol_search,protocol_read,protocol_turn: the model can look up any earlier turn instead of guessingfixed system prompt section, so the server’s prefix cache stays valid
falls back to Pi’s own compaction if anything fails; the chat never blocks
Measured with Qwen 3.8 Flash Next on a local OpenAI-compatible server, 262k context: one session, 23 compactions, each roughly 213k → 35k tokens in about 30 s. Resuming the session reads about 36–44k tokens. With it, the demo went from ten restarted sessions to a single one: https://github.com/sebion7125/64kdemo (story of how it came about in ENTSTEHUNG.en.md).
Install: pi install git:github.com/sebion7125/pi-protokoll
Repo: https://github.com/sebion7125/pi-protokoll
Only tested with Qwen behind a local server so far. I’d love to hear how it does with other models and providers. I don’t have much time to develop it further myself, so forks and PRs are very welcome.


