Install
openclaw skills install session-continuityUse when a session is about to end with unfinished work, after context loss or compaction, after a crash, or when the user wants to resume a multi-step task. Saves a named checkpoint of current task state, progress, blockers, and next action so the next session starts from the exact resume point — not from scratch. Checkpoints survive session death and can stack (deep resume) for multi-day workflows. Builds on the WAL Protocol from proactive-agent: WAL captures per-message decisions; checkpoints capture task-level resume state. Activate automatically on close signals, high context, or user explicitly requests save/resume.
openclaw skills install session-continuitySave your place. Resume exactly where you left off — even days later.
Most agents lose all state when sessions die. This skill treats checkpoints as first-class artifacts: written proactively before context is at risk, read automatically on session start, consumed to restore full working context.
This is not "note-taking." A checkpoint is a machine-readable resume signal. If it can't restore the exact next action with enough context to execute it, the checkpoint is incomplete.
/checkpoint save <name>Save current task state to a named checkpoint file. Use before closing any session with unfinished work, before manual reset, approaching context limits, or when the task spans multiple sessions.
Trigger when:
Do not use for: trivial one-shot tasks that complete in a single reply.
/checkpoint save meeting-prep
/checkpoint save build-login-page --task "Build login page with OAuth fallback"
/checkpoint save analyze-q1-data
What gets saved:
Output: Confirmation with checkpoint name and file path.
/checkpoint listList all available checkpoints in the workspace.
Use when:
Output: Table of checkpoints with name, created time, task summary, and age (how long since last saved).
/checkpoint resume <name>Read a checkpoint and restore the session to that resume point.
Trigger when:
<summary> tag or compaction recovery signalsBehavior:
Output: "Resuming: [task name]. Last progress: [summary]. Next action: [action]. Ready to continue? (yes/no)"
/checkpoint delete <name>Delete a named checkpoint. Use when a task is fully complete and the checkpoint is no longer needed.
Do not use for: archiving — delete only when the task is truly done.
/checkpoint save <name>Before writing, gather context:
SESSION-STATE.md — this is the WAL source; it contains active task state, decisions, current goalls memory/checkpoints/; if missing, create itmemory/checkpoints/<name>.mdNaming rules (strict):
kebab-case: build-login-page, q1-data-analysistask, work, save, untitled, backupIf SESSION-STATE.md is empty: derive checkpoint content entirely from the conversation. Do not skip the checkpoint just because SESSION-STATE.md is empty.
/checkpoint resume <name>memory/checkpoints/<name>.md📌 Resume: <task name>
Saved: <date> (<age>)
✅ Progress:
- <item 1>
- <item 2>
🔜 Next action: <exact command or step>
⚠️ Stale warnings (if any): <files that no longer exist>
/checkpoint auto Protocol (internal)Not a user-invokable mode. The agent scans every message for these trigger signals and acts autonomously:
Trigger signals (scan in priority order):
session_status; if usedTokens/contextWindow > 0.70, triggerWhen triggered:
memory/checkpoints/autosave.md (overwrite previous autosave)memory/checkpoints/autosave-log.mdAutosave never overwrites named checkpoints. Named checkpoints are preserved indefinitely until explicitly deleted.
task, work, save, untitled, backup)A checkpoint is complete when:
A checkpoint is incomplete if you have to ask "what were we doing?" after reading it.
| Aspect | Good | Bad |
|---|---|---|
| Progress | "Wrote src/auth.py lines 45-120, login flow complete" | "Worked on auth" |
| Next action | "Run pytest tests/auth_test.py to verify login" | "Continue testing" |
| Blockers | "Git conflict in src/main.py lines 80-95" | "Need to fix some conflicts" |
| Context | "User prefers verbose error messages" | nothing |
| Naming | build-login-page, q1-financial-analysis | task, work, save, backup |
| State source | Read SESSION-STATE.md first, then conversation | Guessed from memory alone |
| Staleness | Verified file paths exist before presenting | Presented as if still current |
# Checkpoint: <name>
**Created:** YYYY-MM-DD HH:MM GMT+8
**Task:** <one-line task summary>
## Progress
<!-- What was completed — be specific -->
## Next Action
<!-- Exact next step: file, command, decision -->
## Blockers
<!-- Concrete obstacles: errors, conflicts, pending decisions -->
## Key Decisions
<!-- Reasoning that led to current state, not just facts -->
## Relevant Context
<!-- Files, paths, preferences, anything needed to continue -->
**Age:** Derived from file mtime at resume time (shown automatically by `/checkpoint list` script)
memory/
└── checkpoints/
├── <name>.md # Named checkpoints (user-created)
└── autosave.md # Auto-created before risky close events
SESSION-STATE.md # Active working memory (existing WAL target)
memory/working-buffer.md # Danger zone log (existing compaction recovery)
Relationship to existing files:
SESSION-STATE.md — active task state, written per WAL Protocol. Primary source when saving a checkpoint — read it first.memory/working-buffer.md — danger zone exchanges, consumed on recovery. Check this when checkpoint content is thin.memory/checkpoints/ — durable resume artifacts, survive session death. Named checkpoints never expire unless explicitly deleted.How WAL and checkpoints differ:
The checkpoint system does not replace WAL; it amplifies it for multi-session durability.
references/checkpoint-format.md — full checkpoint template with examplesreferences/resume-flow.md — step-by-step resume decision treereferences/auto-checkpoint-signals.md — trigger signals for auto-checkpoint protocol (internal)