Episodic Memory plugin
A plugin with memory of past chats: it searches by meaning for decisions and reasons across Claude Code, Codex, Cursor and opencode sessions over MCP
- 492 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Reads the logs of all your sessions in Claude Code, Codex, Cursor and opencode and copies them into an archive, and they can hold secrets and personal data
- For short summaries it sends conversation fragments to a model, by default through your Claude Code auth and through the metered API when `ANTHROPIC_API_KEY` is set
- The hook runs on its own at session start and end, and in Codex works only after you approve it in `/hooks`
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add plugins/episodic-memoryDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Reads the logs of all your sessions in Claude Code, Codex, Cursor and opencode and copies them into an archive, and they can hold secrets and personal data
- For short summaries it sends conversation fragments to a model, by default through your Claude Code auth and through the metered API when `ANTHROPIC_API_KEY` is set
- The hook runs on its own at session start and end, and in Codex works only after you approve it in `/hooks`
This is third-party code. Review the repository files before installing.
What it does
Episodic Memory saves and indexes your conversations with coding agents so an agent can recall on request what was discussed before and why a decision was made. The plugin copies session logs from Claude Code, Codex, Cursor, opencode and Oh My Pi into an archive, builds vector embeddings locally with Transformers.js and stores them in SQLite with the sqlite-vec extension. Search works by meaning and by exact text, so a query «provider catalog» finds a discussion of API patterns even if those words never appeared. In Claude Code the plugin adds the MCP tools `search` and `read`, indexes conversations at the end of a session and installs the `remembering-conversations` skill. The skill requires searching past conversations before answering «I don't know» or guessing. For search it launches a separate `search-conversations` subagent that reads the 2–5 best results and returns a summary with sources, so the main context is not filled with raw records. You can also manage the index from the console: `episodic-memory sync`, `search`, `show`, `stats`, `index` and `doctor` for diagnosing Codex and opencode.
Who it is for. For developers who spend months on one project with Claude Code, Codex or Cursor and do not want to re-explain past decisions to the agent.
Good fit when
- You ask the agent to do something «like last time» and want it to find that discussion and approach itself
- You need to recall why one architecture was chosen over another when the decision and arguments survive only in chat
- An agent is about to repeat an approach you already tried and rejected, and needs to be stopped
- You need an error message, a commit SHA or a file name that flashed by in an old session
- You work across several agents and want one search over their histories, including old Cursor chats after a one-time export
Not a fit when
- You need to learn the structure of the current code: the author advises exploring the codebase through search and file reads first
- The answer is already in the current conversation: there is no point searching past sessions
- You need shared cloud note storage for a team: the index lives on your machine and is built from your sessions
- Your chats contain secrets that must not go to a model for summarizing: turn summaries off with `EPISODIC_MEMORY_SKIP_SUMMARIES=1` or do not install the plugin
Example request
Search past conversations for how we handled authentication in React Router and why we dropped the first option, and give me source pointersLimitations
Codex needs codex-cli 0.130.0 or newer, the `plugin_hooks` feature enabled and a trusted hook in the `/hooks` window: new and modified Codex hooks do not run until you approve them. The README describes the Codex plugin as a local build from the repository. For opencode, install goes through `npm install -g github:obra/episodic-memory` plus a config entry.
Short result summaries are built with model calls: by default Claude Code through your auth (haiku, falling back to sonnet on error), at most 10 calls per sync. If `ANTHROPIC_API_KEY` is set, summaries go through the metered API and a warning appears. Embeddings and search run locally and need no summaries.
Messages larger than 256 KB are dropped at indexing. Old Cursor conversations from before early 2026 live in Cursor's own SQLite store and must be exported once with `episodic-memory import-cursor-history`.
How to disable. Turn off automatic sync with `EPISODIC_MEMORY_DISABLE_AUTO_SYNC=1`: hooks stop indexing new conversations while search over what is already saved keeps working. To remove the plugin entirely, uninstall it through the `/plugin` menu in Claude Code, or run `npm uninstall -g episodic-memory` for an npm install. The archive and index sit in the config directory set by `EPISODIC_MEMORY_CONFIG_DIR` and are deleted by hand.
FAQ
How do I install Episodic Memory in Claude Code?
Run `/plugin install episodic-memory@superpowers-marketplace`. The plugin indexes conversations at the end of every session, wires in the MCP search and read tools and makes history available in natural language. The npm variant is `npm install -g github:obra/episodic-memory`.
How do I run a search by hand from the console?
First `episodic-memory sync` collects and indexes conversations, then `episodic-memory search "React Router authentication"`. `--text` gives an exact phrase and `--after 2025-09-01` a date. Show a whole conversation with `episodic-memory show path.jsonl`, and pick HTML with `--format html`.
Does my data go to the cloud?
Embeddings are computed locally with Transformers.js and search runs over a local SQLite database. A model is called only for short summaries of found conversations: by default through your Claude Code, and with `EPISODIC_MEMORY_SKIP_SUMMARIES=1` there are no summaries at all and search works as before.
How do I connect Codex or opencode?
For Codex build the plugin with `npm run build`, enable `codex features enable plugin_hooks`, add the repository as a local marketplace and trust the hook in `/hooks`. For opencode run `npm install -g github:obra/episodic-memory` and add `episodic-memory` to the config's plugin list. Diagnose with `episodic-memory doctor codex` or `doctor opencode`.
Where does Cursor history come from?
Sync reads agent transcripts from `~/.cursor/projects`, which Cursor writes since early 2026. Older conversations sit in Cursor's global SQLite store; export them once with `episodic-memory import-cursor-history` and then run `episodic-memory sync`.
Discussion
No questions or reviews yet.
Related
PluginsA persistent memory plugin: stores observations from agent sessions and injects relevant context into new ones
The Supermemory plugin for Claude Code: persistent memory across sessions with automatic prompt recall, conversation capture and a codebase index
Knowledge-graph memory for agents: Claude Code and Codex plugins, an MCP server and a Python library
Shared semantic memory for agents: conversations are saved as markdown and recalled by search across Claude Code, Codex and other agents
Long-term memory for agents: a remote MCP server, plugins for Claude Code, Cursor and Codex, and an API for your own apps
Shared local memory for AI agents: Claude Code, Codex, Cursor and others find the agreements of past sessions in it and record new ones
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Episodic Memory (this entry) | no | 492 | ||
| Claude-Mem | no | 102,612 | a persistent-memory plugin that keeps observations from sessions and injects context into new ones | |
| agentmemory | yes | not required | 29,841 | local memory with hooks that record the session and search over MCP |
| Claude Code History Viewer | no | 2,277 | a desktop app for browsing and analyzing history, without semantic search by the agent |
README in short
The README opens with the assistant's own testimonial that searching a shared history changes work on a complex codebase. It then covers install as a plugin for Claude Code, Codex and opencode and as an npm package, a quick start with console commands, Cursor and Oh My Pi support, and configuring model calls for summaries via environment variables and Bedrock. A command reference, the architecture of core, CLI, MCP server and three plugins, and the processing steps of copy, parse, embed, index and search follow.