decay # Decay Decay keeps long Pi conversations useful after compaction by preserving goals, decisions, current state, and important evidence as structured memory. Use it when a task spans enough conversation that Pi needs to compact context. ![decay demo: /compact classifies the conversation into goal, decision, state atoms; the structured memory replaces prose](assets/demo.gif) ## Start here Nothing needs invoking beyond Pi's normal compaction. Run `/compact` when you want to compact now, or keep working until Pi compacts for context space. Decay replaces the usual compaction with a summary designed to retain what matters for continuing the task. During interactive compaction, Pi shows Decay's progress above the editor. If Decay cannot complete its compaction, Pi uses its normal compactor instead. This also happens when the complete summary and file lists exceed the estimated output budget; protected facts are not truncated to force a fit. Fact extraction sees a bounded selection of prior memory, and successful compaction does not prove that every important fact survived. ## Optional model choice By default, Decay uses your current Pi model for both extracting important facts and writing the summary. Set `decay.model` to choose a different model for fact extraction. Set `decay.summarizerModel` only when the summary should use a different model. Set `decay.thinking` to apply the same Pi thinking level to extraction and summarization: `off`, `minimal`, `low`, `medium`, `high`, `xhigh`, or `max`. Pi clamps unsupported levels to each model's capabilities. Non-thinking models ignore this setting. When omitted, thinking defaults to `low`, except GPT-6 Luna extraction, which requests no thinking level. ```json { "decay": { "model": "provider/classifier-model", "summarizerModel": "provider/summarizer-model", "thinking": "high" } } ``` Omit `decay.model`, or set it to `null`, to use Pi's current model. Omit `decay.summarizerModel`, or set it to `null`, to reuse the fact-extraction model. Settings may come from trusted project `.pi/settings.json` or user settings. Trusted project values take precedence per key; untrusted project settings are ignored. Invalid values produce a warning and use Pi's normal compactor rather than falling through to lower-priority settings. See [Installation](../../README.md#install). ## Reference ### Setting names | Setting | | --- | | `decay.model` | | `decay.summarizerModel` | | `decay.thinking` |