
Remembering Conversations
Search past Claude Code and Codex conversations before guessing or treating a topic as new.
Install
npx skills add https://github.com/obra/episodic-memory --skill remembering-conversationsWhat is this skill?
- Semantic, text, and combined search over archived JSONL conversations.
- Multi-concept AND queries and date-bounded filters.
- Mandatory before 'I don't know' or repeating past mistakes.
Adoption & trust: 8.5k installs on skills.sh; 409 GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Microsoft Foundrymicrosoft/azure-skills
Azure Aimicrosoft/azure-skills
Azure Hosted Copilot Sdkmicrosoft/azure-skills
Lark Eventlarksuite/cli
Running Claude Code Via Litellm Copilotxixu-me/skills
Setup Matt Pocock Skillsmattpocock/skills
Journey fit
Common Questions / FAQ
Is Remembering Conversations safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Remembering Conversations
# Episodic Memory MCP Tools Reference The episodic-memory plugin exposes two MCP tools for searching and displaying past Claude Code and Codex conversations. ## search Search your episodic memory of past Claude Code and Codex conversations using semantic or text search. **Tool name:** `mcp__plugin_episodic-memory_episodic-memory__search` ### Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | `string` or `string[]` | Yes | Search query. String for single-concept search, array of 2-5 strings for multi-concept AND search | | `mode` | `"vector"` \| `"text"` \| `"both"` | No | Search mode (default: `"both"`). Only used for single-concept searches | | `limit` | `number` | No | Maximum results to return, 1-50 (default: 10) | | `after` | `string` | No | Only return conversations after this date (YYYY-MM-DD) | | `before` | `string` | No | Only return conversations before this date (YYYY-MM-DD) | | `response_format` | `"markdown"` \| `"json"` | No | Output format (default: `"markdown"`) | ### Search Modes - **`vector`** - Semantic similarity search using embeddings - **`text`** - Exact text matching (case-insensitive) - **`both`** - Combined semantic + text search (default, recommended) ### Single-Concept Search ```typescript { query: "React Router authentication errors", mode: "both", limit: 10 } ``` ### Multi-Concept Search (AND) Search for conversations containing ALL concepts: ```typescript { query: ["authentication", "React Router", "error handling"], limit: 10 } ``` Note: `mode` is ignored for multi-concept searches (always uses vector similarity). ### Date Filtering ```typescript { query: "refactoring patterns", after: "2025-09-01", before: "2025-10-01" } ``` ### Response Format #### Markdown (default) Human-readable format with: - Project name and date - Conversation summary - Matched exchange snippet - Similarity score - File path and line numbers #### JSON Machine-readable format: ```json { "results": [...], "count": 5, "mode": "both" } ``` ## read Display a full conversation from episodic memory as markdown. **Tool name:** `mcp__plugin_episodic-memory_episodic-memory__read` ### Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `path` | `string` | Yes | Absolute path to the JSONL conversation file | | `startLine` | `number` | No | Starting line number (1-indexed, inclusive) | | `endLine` | `number` | No | Ending line number (1-indexed, inclusive) | ### Usage **Read entire conversation:** ```typescript { path: "/Users/name/.config/superpowers/conversation-archive/project/uuid.jsonl" } ``` **Read specific range:** ```typescript { path: "/Users/name/.config/superpowers/conversation-archive/project/uuid.jsonl", startLine: 100, endLine: 200 } ``` ### Response Format Markdown-formatted conversation with: - Message roles (user/assistant) - Content (including tool uses and results) - Line numbers for reference ## Error Handling Both tools return errors as text content with `isError: true`: - Invalid parameters (validation errors) - File not found - Date parsing errors - Search failures ## Performance Notes - **Search** is fast (< 100ms typically) - **Read** can be slow for large conversations - Use `startLine`/`endLine` to paginate - Conversations can be 1000+ lines - Vector search uses sqlite-vec with cached embeddings - Text search uses SQLite FTS5 full-text index --- 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 everyth