Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Time Machine for Your AI's Brain — version control for agent context files. Use when the user asks about changes in SOUL.md, AGENTS.md, MEMORY.md, or other agent context files; when they want to undo, rollback, or compare versions; or when they need a checkpoint before risky edits.
.claude/skills/mindkeeper/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-21 | ✗→✓ | ▲ Improved | — | — |
| case-20 | ✗→✓ | ▲ Improved | — | — |
| case-17 | ✗→✓ | ▲ Improved | — | — |
| case-22 | ✗→✓ | ▲ Improved | — | — |
Use mindkeeper tools when the user asks about changes, history, or versions of their agent context files (AGENTS.md, SOUL.md, USER.md, IDENTITY.md, TOOLS.md, MEMORY.md, memory/, skills/).
When the user enables mindkeeper or asks for mindkeeper capability, first try mind_status. If it fails (tool not found or similar):
openclaw plugins install mindkeeper-openclaw and restart the Gateway. May I proceed?" Do not install or restart until the user explicitly confirms.bash openclaw plugins install mindkeeper-openclaw
gateway tool with action: "restart" and note: "Restarting to load mindkeeper plugin". If gateway restart is disabled or fails, tell the user: "Plugin installed. Restart your Gateway manually to apply."openclaw plugins install mindkeeper-openclaw in your terminal, then restart your Gateway. After that, mindkeeper will be ready."If mind_status succeeds, the plugin is already installed; skip the bootstrap and proceed with the user's request.
| Tool | Purpose | |------|---------| | mind_status | Show what files are tracked and whether there are unsaved changes | | mind_history | Browse the change log for one file or all files | | mind_diff | Compare any two versions of a file side-by-side | | mind_rollback | Restore a file to a previous version (always preview first) | | mind_snapshot | Save a named checkpoint before making significant changes |
| User says… | Action | |-----------|--------| | "What changed in SOUL.md?" | mind_history with file: "SOUL.md" | | "Show me the diff from last week" | mind_history to find the commit, then mind_diff | | "Undo that change" / "Roll back AGENTS.md" | Full rollback procedure (see below) | | "Save a checkpoint before I experiment" | mind_snapshot with a descriptive name | | "Is mindkeeper tracking my files?" | mind_status | | "What does my history look like?" | mind_history without a file filter |
Call this first if you're unsure whether mindkeeper is initialized or what files are being tracked.
mind_status → { initialized, workDir, pendingChanges, snapshots }Returns a list of commits with short hash, date, and message.
file (optional): filter to a specific file path, e.g. "SOUL.md"limit (optional): number of entries to return (default 10, increase for longer searches)mind_history({ file: "SOUL.md", limit: 20 })
→ { count, entries: [{ oid, date, message }] }Compares two versions of a file. from and to are short or full commit hashes from mind_history.
to to compare from against the current version (HEAD).mind_diff({ file: "SOUL.md", from: "a1b2c3d4" })
→ { file, from, to, additions, deletions, unified }Creates a named checkpoint of the current state of all tracked files. Use before risky changes.
name: short identifier, e.g. "stable-v2" or "before-experiment"message (optional): longer descriptionmind_snapshot({ name: "stable-v2", message: "Personality tuned, rules finalized" })
→ { success, snapshot, commit: { oid, message } }Always use the two-step procedure. Never skip the preview.
Step 1 — Preview:
mind_rollback({ file: "SOUL.md", to: "a1b2c3d4", preview: true })
→ { preview: true, diff: { unified, additions, deletions }, instruction }Show the diff to the user and ask for confirmation.
Step 2 — Execute (only after user confirms):
mind_rollback({ file: "SOUL.md", to: "a1b2c3d4", preview: false })
→ { preview: false, success: true, commit: { oid, message } }After success, tell the user: "Run /new to apply the changes to your current session."
mind_status to check.oid field from mind_history results. Short 8-character hashes are fine.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-25 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-24 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-23 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 12 counted toward the lift figure. The other 13 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +28 percentage points is the difference between those two pass rates over the 12 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.