Session Brain - Persistent Working Memory

VerifiedSafe

Automatically tracks your current goal, plan, decisions, progress, and open questions during coding sessions. Persists context across sessions in `.claude/voyager/` files so you can resume work or answer questions like 'what were we doing?' or 'why did we decide X?' without losing your train of thought.

Sby Skills Guide Bot
ProductivityIntermediate
6/2/2026
Claude Code
#persistent-memory#session-tracking#context-management#decision-log

Recommended for

Automated summary

Provides persistent working memory for coding sessions by automatically tracking goals, decisions, progress, and open questions in per-repo state files.

Strengths

  • Automatically captures session context without manual effort
  • Structured JSON files allow precise queries via jq
  • Maintains a decision log with rationale for future reference
  • Supports resuming work after interruptions with full context

Limitations

  • Only works with Claude Code's hook system
  • Relies on hooks firing correctly (e.g., SessionStart, PreCompact)
  • May add minor overhead on session boundaries
When to use it

Use when working on complex, multi-session projects where maintaining context and rationale is critical.

When not to use it

Avoid for trivial one-off tasks or when privacy concerns require minimal file persistence.

Security analysis

Safe
Quality score88/100

This skill only reads and writes to local files under `.claude/voyager/` for session tracking; no destructive commands, no network access, no exfiltration. Uses jq for safe JSON querying. No instructions to execute arbitrary code or disable safety.

No concerns found

How this analysis is made

Examples

Resume session
resume where we left off
Record a decision
remember this decision: we switched from REST to GraphQL because it reduces over-fetching
Check next steps
what's next?

name: session-brain description: | Persistent working memory for coding sessions. Automatically tracks what you're doing, why you're doing it, decisions made, and what's next.

Trigger phrases:

  • "resume where we left off"
  • "what were we doing?"
  • "recap this repo" / "catch me up"
  • "remember this decision: ..."
  • "why did we decide to ..." / "what was the rationale for ..."
  • "what's next?" / "what should I work on?"
  • "what are the open questions?"
  • "save this as a project rule" allowed-tools:
  • Read
  • Write
  • Grep
  • Glob
  • Bash

Session Brain

Persistent per-repo working memory stored under .claude/voyager/.

State Files

| File | Purpose | |------|---------| | brain.json | Canonical structured state (validated against schema) | | brain.md | Human-readable summary for quick reference | | episodes/ | Per-session summaries for history |

How It Works

Session Brain updates automatically via hooks:

  • SessionStart: Injects current brain context + repo snapshot
  • PreCompact/SessionEnd: Persists changes to brain.json and creates episode

You don't need to manually update the brain—just work normally and it tracks context.

Reading brain.json

When exploring brain.json, use jq to query specific sections instead of reading the whole file:

# Current context (goal, plan, questions)
jq '.working_set' .claude/voyager/brain.json

# Decision history
jq '.decisions' .claude/voyager/brain.json

# Recent progress
jq '.progress' .claude/voyager/brain.json

# Project overview
jq '.project' .claude/voyager/brain.json

For a quick human-readable summary, read .claude/voyager/brain.md instead.

Answering User Questions

When users ask about context, read and interpret the brain files:

"Resume" / "What were we doing?"

  1. Read .claude/voyager/brain.md for quick context
  2. Check brain.json → working_set.current_goal and working_set.current_plan
  3. Summarize: current goal, plan progress, any open questions

"What's next?"

  1. Read brain.json → working_set.current_plan
  2. Check progress.recent_changes to see what's done
  3. Suggest the next uncompleted step from the plan

"Why did we decide X?" / "What was the rationale?"

  1. Read brain.json → decisions array
  2. Find matching decision by keyword
  3. Return the rationale and implications

"What are the open questions?"

  1. Read brain.json → working_set.open_questions
  2. Also check working_set.risks for blockers

Recording Decisions

When the user says "remember this decision: ..." or explicitly wants to record a decision:

  1. Read current .claude/voyager/brain.json
  2. Append to the decisions array:
    {
      "when": "<ISO timestamp>",
      "decision": "<what was decided>",
      "rationale": "<why>",
      "implications": ["<what this affects>"]
    }
    
  3. Write updated brain.json

Note: brain.md will be re-rendered automatically on the next session end or compaction.

Brain Schema Overview

See schemas/brain.schema.json for full schema. Key sections:

  • project: Stable project understanding (summary, stack, key commands)
  • working_set: Current context (goal, plan, open questions, risks)
  • decisions: Append-only decision log with rationale
  • progress: Recent changes and completed milestones
  • signals: Metadata (last session ID, timestamp)

Technical Details

See reference.md for:

  • Full file structure
  • Update flow details
  • Manual operations (reset, view history)
  • Graceful degradation behavior

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/session-brain-persistent-working-memory-mmk3nh3a/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/session-brain-persistent-working-memory-mmk3nh3a' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/session-brain-persistent-working-memory-mmk3nh3a/download' --output '.skill-downloads/session-brain-persistent-working-memory-mmk3nh3a/SKILL.md.part' && mv '.skill-downloads/session-brain-persistent-working-memory-mmk3nh3a/SKILL.md.part' '.skill-downloads/session-brain-persistent-working-memory-mmk3nh3a/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/session-brain-persistent-working-memory-mmk3nh3a/SKILL.md' && test -s '.skill-downloads/session-brain-persistent-working-memory-mmk3nh3a/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/session-brain' && cp -R '.skill-downloads/session-brain-persistent-working-memory-mmk3nh3a' '.claude/skills/session-brain'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/session-brain-persistent-working-memory-mmk3nh3a'

openskills read 'session-brain-persistent-working-memory-mmk3nh3a'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/session-brain-persistent-working-memory-mmk3nh3a/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills