Save session context for compaction recovery or handoffs.
Guardrails
- Write only what the brief contains. The subagent expands the brief into a file; it does not research, re-derive, or infer. Every fact, number, SHA, path, and identifier in the stash comes from the brief verbatim — never invent, never round, never fill a gap with a plausible guess. Missing detail stays missing.
- Escalate, never assume. Anything the subagent cannot do, cannot verify, or that this spec does not cover → report it back to the orchestrator (the main session) rather than improvising. Never widen scope beyond writing the file and counting the backlog.
- Explicitly select your tool's mid tier. State the tier on the spawn — do not omit it and rely on a default. An omitted tier inherits the parent's tier, which is not the same thing as the balanced one. Pick the judgment-capable tier that is cheaper and faster than your top reasoning tier. Not the cheapest/fastest tier: on judgment work it measurably degrades (misclassification rates several times higher). Choose by tier, not by a vendor model name copied from this file — names drift, and this command ships to several tools.
- Background dispatch where supported. Run the write-up subagent in the background (non-blocking) so the session isn't held up waiting on formatting/file I/O. Fall back to writing inline (today's behavior) if your tool has no subagent or background-dispatch mechanism.
What it does
Drafts a compact brief of current conversation context, key decisions, active work in progress, and findings/insights — done inline, since only the running session holds full conversation context
Hands the brief to a subagent on the mid-tier model (see Guardrails) to expand into the full stash file at
.amp/stash/<name>.md, dispatched in the background where the tool supports it. Falls back to writing inline if subagent/background dispatch isn't availableEnables context restoration after compaction
Consolidation nudge — whichever actor wrote the file (the subagent, or the session itself on the inline fallback) counts the unprocessed backlog after saving:
unprocessed = (files in .amp/stash/*.md) − (entries in .amp/remember/.processed)(a missing.processedmanifest means 0 processed). Ifunprocessed >= 5, end with one line:📝 N stashes since last consolidation — run
/rememberto fold them into memory.No counter is stored — the count is derived each time, and running
/rememberupdates.processed, so the backlog drops on its own. Just emit the nudge; never run/rememberautomatically.
When to use
- Before long-running tasks that may trigger compaction
- When handing off work to another agent or session
- After completing major investigation or analysis
- Before taking a break from complex multi-step work
Commands
# Stash with auto-generated name
/stash
# Stash with custom name
/stash "feature-auth-investigation"
# List available stashes
ls .amp/stash/
# Restore from stash
cat .amp/stash/<name>.md
Reference
- Stashes stored in
.amp/stash/(project-local) - Automatically includes: timestamp, active plan, recent decisions
- Maximum context retention with minimal token usage
- When dispatched in the background, the "Stashed to X" confirmation and consolidation nudge arrive as the subagent's completion notification rather than inline in the same turn