remembering-conversations — Claude Code skill: what it does & setup
Forces the assistant to search past conversations before claiming ignorance or guessing. It reads relevant snippets instead of entire transcripts, saving context window space.
npx skills add obra/episodic-memory --skill remembering-conversations -a claude-codeWhat remembering-conversations does
The skill enforces a strict rule: the assistant must search historical memory before admitting ignorance or guessing. In Claude Code, it triggers the Task tool with the search-conversations subagent. When running under Codex or OpenCode, the skill calls episodic-memory MCP tools directly.
Instead of dumping entire transcripts into context, the agent inspects the top 2-5 search results. It synthesizes findings into 200 to 1000 words while citing source conversations. This saves 50-100x context compared to loading raw logs. Trusting an LLM's raw memory is risky. The model easily invents reasons for past decisions.
The setup requires the episodic-memory MCP tools (search and read). The instructions explicitly forbid searching past conversations when exploring current codebase structure, where Grep or Read must run first.
What it helps with
- recall past architectural decisions and reasoning
- retrieve debugging steps for recurring errors
- restore project context from hints like 'as discussed before'
- avoid reinventing workflows that already have established patterns
Example prompts for the agent
- Why did we choose this auth approach last time?
- Do you remember how we fixed the build error earlier?
- What did we decide about the database migration process before?
How to install remembering-conversations
1Skills CLI (Vercel)
npx skills add obra/episodic-memory --skill remembering-conversations -a claude-code2Manually: put the files in place
~/.claude/skills/remembering-conversations/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/remembering-conversations/
1Skills CLI (Vercel)
npx skills add obra/episodic-memory --skill remembering-conversations -a codex2Manually: put the files in place
.agents/skills/remembering-conversations/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add obra/episodic-memory --skill remembering-conversations -a cursor2Manually: put the files in place
.cursor/skills/remembering-conversations/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install obra/episodic-memory remembering-conversations2Manually: put the files in place
.github/skills/remembering-conversations/SKILL.md1Skills CLI (Vercel)
npx skills add obra/episodic-memory --skill remembering-conversations -a gemini-cli2Platform CLI
gemini skills install https://github.com/obra/episodic-memory --path skills/remembering-conversationsManually: put the files in place
.devin/skills/remembering-conversations/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add obra/episodic-memory --skill remembering-conversations -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Similar
Questions about remembering-conversations
How do I install remembering-conversations in Claude Code?
Run npx skills add obra/episodic-memory --skill remembering-conversations -a claude-code. The skill file is placed at ~/.claude/skills/remembering-conversations/SKILL.md.
What does remembering-conversations do?
It forces the assistant to query historical conversations via the search-conversations subagent or MCP tools before answering. The agent reads the top 2-5 results and synthesizes findings into 200 to 1000 words with source links.
When should the agent avoid searching past conversations?
The skill instructs the agent not to search history when exploring current codebase structure, where Grep or Read tools come first. It is also skipped if the current conversation already provides the answer.
Source text
SKILL.md · MIT
--- name: remembering-conversations description: You MUST invoke this skill before saying "I don't know," guessing, or treating any topic as new, no matter how trivial the question seems. It supplements other memory systems, which only hold partial records. Searching past conversations is the only way to recover what was actually said. --- # Remembering Conversations **Core principle:** Search before reinventing. Searching costs nothing; reinventing or repeating mistakes costs everything. ## Mandatory: Search Historical Memory **YOU MUST search historical memory for any historical search.** Announce: "Searching past conversations for [topic]." ### Claude Code Use the Task tool with `subagent_type: "search-conversations"`: ``` Task tool: description: "Search past conversations for [topic]" prompt: "Search for [specific query or topic]. Focus on [what you're looking for - e.g., decisions, patterns, gotchas, code examples]." subagent_type: "search-conversations" ``` ### Codex If a `search-conversations` agent is available, dispatch it with the same prompt. If not, use the MCP tools directly: 1. Search with the episodic-memory `search` tool 2. Read the top 2-5 results with the episodic-memory `read` tool 3. Synthesize findings in your response 4. Include source pointers so the user can inspect the original conversations The search workflow will: 1. Search with the `search` tool 2. Read top 2-5 results with the `read` tool 3. Synthesize findings (200-1000 words) 4. Return actionable insights + sources **Saves 50-100x context vs. loading raw conversations.** ### opencode Use the MCP tools directly unless a local search agent is available: 1. Search with the episodic-memory `search` tool 2. Read the top 2-5 results with the episodic-memory `read` tool 3. Synthesize findings in your response 4. Include source pointers so the user can inspect the original conversations ## When to Use Use this whenever the current task would benefit from information you may have learned before, even if the user did not explicitly ask you to search. **When past experience may help:** - You need to recall decisions, rationale, patterns, solutions, pitfalls, or project context from earlier work - A task resembles something you've solved, debugged, reviewed, released, or planned before - You need to repeat a workflow or process that may have prior gotchas or established steps **When you're stuck:** - You've investigated a problem and can't find the solution - Facing a complex problem without obvious solution in current code - Need to follow an unfamiliar workflow or process **When historical signals are present:** - User says "last time", "before", "we discussed", "you implemented" - User asks "why did we...", "what was the reason..." - User says "do you remember...", "what do we know about..." **Before answering from uncertainty:** - Before guessing from memory or saying "I don't know" about something that may have been learned in a past conversation, search memory unless the current conversation already answers it **Don't search first:** - For current codebase structure (use Grep/Read to explore first) - For info in current conversation - Before understanding what you're being asked to do ## Direct MCP Tool Access Use these directly when a search agent is unavailable or the current harness does not support agent dispatch: - `mcp__plugin_episodic-memory_episodic-memory__search` - `mcp__plugin_episodic-memory_episodic-memory__read` When using MCP tools directly, keep context small: search first, then read only the top 2-5 relevant conversations or line ranges. See MCP-TOOLS.md for complete API reference if needed for advanced usage.
© obra · MIT · obra/episodic-memory