A Pi package that prepares compaction in the background with a dedicated model. If Pi needs to compact and the prepared result still applies to the active branch, the extension uses it. Otherwise, it runs compaction with the configured model. After compaction succeeds, it reports the model, thinking level, token usage, cost, and elapsed compaction time.
Install from npm:
pi install npm:@tsaokoming/auto-compactTo try it for one session without installing it:
pi -e npm:@tsaokoming/auto-compactRemove or disable another copy of compact.ts before loading this package so
that only one extension handles compaction.
Add the extension-specific provider, model, and backgroundThreshold
fields to the existing compaction object in ~/.pi/agent/settings.json:
{
"compaction": {
"enabled": true,
"reserveTokens": 16384,
"keepRecentTokens": 16384,
"provider": "google-vertex",
"model": "gemini-3.7-flash",
"thinkingLevel": "high",
"backgroundThreshold": 80
}
}providerandmodelidentify the model used for compaction.thinkingLevelcontrols reasoning effort and defaults tohigh. Supported values areoff,minimal,low,medium,high,xhigh, andmax.backgroundThresholdis the context-window percentage at which background compaction begins.enabledtoggles this extension. When it isfalse, the section is missing, or required fields are absent, the extension stays inactive — it notifies once on session start and Pi's standard compaction behavior applies.- The remaining fields use Pi's standard compaction behavior.
Pick a model from Pi's model registry. Reload Pi after changing the settings or extension.
npm install --ignore-scripts
npm run check