Save this session
save_sessionSaves a structured session summary so the next session can resume without re-asking, capturing accomplishments, key decisions, open loops, and durable facts.
Instructions
Saves a structured summary of the current session so the next session can resume without re-asking. Use at the end of every meaningful session -- even if the user doesn't ask: 'summary', 'wrap-up', 'end of session', 'recap', 'we're done', 'see you next time', 'close out', or whenever significant work was completed, decisions were made, or open loops exist that need carrying forward. Also trigger at natural checkpoints mid-session when a major phase completes. Include: what was accomplished, key decisions made, open loops or next steps. Do NOT trigger after trivial exchanges (single Q&A, quick lookups) with nothing worth carrying forward. Do NOT trigger if the session has already been saved with no new work done since. ALSO extract durable facts here: pass facts:[{text, kind}] with the atomic facts this session surfaced (preferences, decisions, corrections, durable project details) so memory forms in the same call even when no save_fact calls were made along the way.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| facts | No | Atomic durable facts learned this session (max 20). One clause each; skip transient status. Each lands as a normal memory fact via the write gate, linked to this session. | |
| topics | No | Topic tags for searchability | |
| summary | Yes | Narrative of what happened: decisions, work completed, problems solved | |
| platform | No | Platform this session ran on | claude-code |
| decisions | No | Key decisions made during the session | |
| open_loops | No | Unfinished tasks or questions to carry forward | |
| session_id | Yes | Unique session identifier (timestamp or UUID) | |
| duration_minutes | No | Approximate session duration |