Blog·Learning

OpenCode Memory with the Supermemory Plugin

By Dhravya Shah·7 min read

Persistent memory for OpenCode

OpenCode doesn't remember earlier sessions on its own. It reads the instructions you write in AGENTS.md, and nothing else carries over from one session to the next. The supermemory plugin adds memory that's saved as you work and recalled on every substantive prompt, and one install covers both OpenCode 1 and OpenCode 2: bunx opencode-supermemory@latest install.

Everything below is checked against the plugin's README and our docs as of October 21, 2026.

The two-command install

bunx opencode-supermemory@latest install
bunx opencode-supermemory@latest login

That's it. The installer registers the plugin in ~/.config/opencode/opencode.jsonc for both OpenCode 1 and OpenCode 2, and adds a /supermemory-index command (/supermemory-init is an alias). Restart OpenCode, then check the connection any time with bunx opencode-supermemory@latest status. (GitHub)

If you'd rather use an API key, create one on the API keys page and set it as SUPERMEMORY_API_KEY. Or skip the terminal entirely: paste the README link into OpenCode and let the agent install it for you.

OpenCode 2 support

Since September 26, 2026, the plugin works in OpenCode 2 as well as OpenCode 1, with the same package and the same install (changelog). The installer writes both generations' config keys, so one opencode.jsonc works for both:

{
  "plugin": ["opencode-supermemory@latest"],
  "plugins": ["opencode-supermemory"],
  "permissions": [
    { "action": "supermemory_recall", "resource": "*", "effect": "allow" },
  ],
}

Recall, capture, the supermemory tool and its scopes behave the same on both. Three things differ on OpenCode 2:

  • Recall has its own tool. It runs through a read-only supermemory_recall tool, which the installer allows so it never prompts. Saving and forgetting still go through the normal supermemory permission.
  • OpenCode owns compaction. The plugin adds your project memories to OpenCode's own compaction request and saves the summary, rather than triggering compaction itself.
  • Recalled context stays out of the transcript. It's attached to the request for the current prompt only.

Check that it loaded with opencode plugin list, and update it with opencode plugin update opencode-supermemory.

What you get out of the box

The current plugin README documents these behaviors. They depend on configuration and successful service calls:

  • Context injection. On your first message of a session, the agent silently receives your personal profile and the project's knowledge. Inspect the injected records; a displayed similarity score is not a calibrated probability that a fact is correct.
  • Direct recall. By default, on every substantive prompt, the plugin searches the project's memory and adds up to five strong, fresh matches. Short prompts and commands are skipped, repeats are suppressed within a session, and recall gives up after three seconds so it never blocks the agent. Set recallMode to "advisory" if you'd rather the model decide when to search.
  • Automatic capture. Completed turns are saved when the session ends or OpenCode shuts down. Set captureEveryNTurns to also save them in batches as you go; installs upgraded from an older version save every three turns. A successful capture must still be verified; shutdown failures and unavailable services can interrupt the path.
  • Keyword detection. Say "remember that..." or "don't forget..." and the agent saves it. Add your own trigger phrases in config.
  • Compaction memory. On OpenCode 1, when context hits 80%, the plugin triggers OpenCode's summarization with your project memories in the prompt and saves the summary as a memory. On OpenCode 2 it enriches OpenCode's own compaction the same way. This can preserve useful context but is not lossless capture.
  • /supermemory-index. Point the agent at your codebase and it explores, then memorizes the architecture, patterns, and conventions.

For example, a cross-session exchange might look like this:

You: "add rate limiting to the ingest endpoint"
OpenCode: [recalls the sliding-window Redis limiter you built
for payments-api last month, and that you prefer
middleware over decorators - writes it that way]

Memory scoped to the repository

Here's the thing I actually love about this plugin.

Every supermemory coding-agent plugin (OpenCode, Claude Code, Codex, Cursor and Muse Code) writes to the same shared container for a repository, derived from the repo's normalized git origin remote. Personal memories and project memories stay separate inside it (sm_scope metadata), but the container is one.

With compatible credentials and access to the same records, you can save a project decision in Claude Code and retrieve it in OpenCode. The repository remote identifies the project; your account's permissions determine who can read its memory.

Repositories with the same folder name but different remotes stay isolated. No origin remote? It falls back to the real filesystem path. Working in several worktrees of one repo? Set SUPERMEMORY_ISOLATE_WORKTREES=true to key memory to the worktree path instead. OpenCode also still reads the containers that older versions of the OpenCode, Claude Code, Codex and Cursor plugins wrote, so upgrading needs no migration there. The Claude Code plugin doesn't read those older containers.

The coding agents page has the setup for every agent that shares this memory.

The supermemory tool

The agent gets one tool with six modes, auto-approved where it matters:

Mode What it does
add Store a memory (typed: project-config, architecture, error-solution, preference, learned-pattern, conversation)
search Semantic search across memories
profile View your user profile
list List memories by scope
forget Invoke the plugin’s removal operation for the selected record; verify source and derived-memory effects
help List the available modes

Scopes are user (your personal memories for this project) and project (shared project knowledge, the default).

Knobs worth turning

Everything lives in ~/.config/opencode/supermemory.jsonc, all optional:

{
  // point at a self-hosted instance
  "baseUrl": "https://api.supermemory.ai",

  // retrieval tuning
  "similarityThreshold": 0.55,
  "maxMemories": 5,
  "maxProjectMemories": 10,

  // "direct" (default for new installs), "advisory", or "off"
  "recallMode": "direct",

  // capture cadence: save every N turns (0 = session end only)
  "captureEveryNTurns": 3,

  // OpenCode 1: when compaction kicks in (0-1)
  "compactionThreshold": 0.8,

  // OpenCode 2: enrich native compaction and save the summary
  "compactionEnabled": true,

  // your own "save this" triggers (regex)
  "keywordPatterns": ["log\\s+this", "write\\s+down"],
}

SUPERMEMORY_API_KEY takes precedence over the config file, which keeps keys out of dotfiles if you prefer. Running Oh My OpenCode? Disable its built-in auto-compact hook so supermemory owns compaction: pass --disable-context-recovery to the installer, or add the one line to its config that the README shows.

Privacy and self-hosting

The plugin documents redaction of <private> content from its capture path. That does not remove the same content from the model provider, tool logs, existing history or unrelated integrations. Test the exact capture path with synthetic data and keep credentials in supported secret configuration.

A self-hosted memory endpoint can be configured with baseUrl, and npx supermemory local starts one on your machine (docs). For an offline workflow, the answering model, memory-service model providers and tools must also stay local. Pointing one URL at localhost does not establish that nothing leaves the machine. Review the self-hosting options.

The plugin is free on every plan, including Free, which comes with $5 of credits a month. What it saves and searches draws on those credits (billing docs), and the pricing page has the rates.

Why not just use the supermemory MCP?

The MCP works in OpenCode, but it has one structural limit: we can't control when the agent decides to call the tools. With MCP alone, capture depends on the client or agent invoking the save tool.

The plugin supplies host-specific hooks beyond simply exposing MCP tools:

  • Context injection: your profile arrives on session start, automatically
  • Automatic capture: conversation turns are stored whether or not the agent thinks to do it
  • Compaction integration: saved project context can help the agent resume after the active conversation is summarized

Use both if you want. Check account and scope if both paths are enabled, and avoid duplicate capture. The MCP page covers the server itself.


Start with one explicit save, retrieve it in a new session, then verify correction and removal in the same repository scope. For other agents, see the coding agents page, and for apps you build yourself, start with the quickstart.

Install it with bunx opencode-supermemory@latest install, or read the docs.

Frequently asked questions

Does OpenCode have any native persistent context?

Yes. It reads the instructions in your AGENTS.md files at the start of a session, and /init writes a starter one for the repo (OpenCode docs). Supermemory adds external capture and retrieval alongside those native controls.

Does the plugin work with OpenCode 2?

Yes. Since September 26, 2026, the same package and the same install cover OpenCode 1 and OpenCode 2.

Does the same Git remote give every teammate access to the same memories?

No. Repository identity helps select a container, but compatible credentials and authorization to the stored records are still required.

Do private tags keep content away from every service?

No. The documented redaction applies to the plugin capture path. It does not erase provider inputs, logs or copies in other integrations.

  1. How AI memory actually works. A beginner's guideHow AI apps remember things between chats, why a bigger context window doesn't solve it, and the parts every memory system shares.
  2. We're open sourcing the company brain. Here's how we designed the multiplayer harnessCompany Brain is now open source. A walkthrough of the multiplayer harness behind its Slack experience, from proactivity and memory boundaries to approvals and recovery.
  3. Jev changes a lot in memory & context engineering. Here's exactly how.We tested Jev across reranking, chunking, observation, and harness decisions. Here is where fast decision models help memory systems, where they cost more, and where they still fall short.
  4. I reverse-engineered Instinct's memory. Here's exactly how it worksInstinct keeps its memory as git-tracked markdown files, found with grep rather than vectors. Here is the whole system as far as black-box probing can reconstruct it, and how to rebuild it on supermemory in about 60 lines.
  5. An update to supermemoryWe've discontinued the supermemory company brain and Nova. Everyone who was charged has been refunded, our MCP and plugins continue to run, and we're going all in on the memory engine.
  6. Scaling Conversations: How Adapta Grew Usage Without Losing ContextAdapta added Supermemory as a persistent memory layer so every conversation keeps its context — letting the team scale usage without losing the thread.
  7. How Chatarmin Ditched RAG and Went Memory-Only with SupermemoryChatarmin replaced a heavy RAG pipeline with Supermemory's memory layer — cutting average AI response time from 40s to 12s and token usage by 40–50%.
  8. SMFS: making agentic retrieval 55% cheaper AND more accurateWe launched SMFS.ai (Supermemory Filesystem) a few weeks ago, with a simple bet: We can redesign the filesystem specifically for agents, with special files, structures, and commands that it can use for it's tasks. Today, SMFS is used by hundreds of companies to power their agents.
  9. Introducing Dynamic Dreaming: supermemory now connects the dots, for you.Dreaming is magical. TLDR: We're launching Dynamic Dreaming in supermemory today, which automatically works if you're using supermemory in any way - API, OpenClaw, Hermes agent, etc.
  10. Dear reader, we just made supermemory insanely cheap... the Context CloudWhen I first started building supermemory, I had one goal: To build the best memory system for AI. I would talk to customers, and find out that memory was not the only thing they needed - They were all setting up 7-8 different vendors at the same time.
  11. Introducing @supermemory/tools v2.0.0Today we're releasing v2.0.0. This release unifies the API across all agents sdk integrations from AI SDK to Mastra, makes conversation identity a first-class concept, and ships with memory saving on by default.
  12. Solving the Precision-Recall Tradeoff: Search Result AggregationWhen you're building memory for AI, search is your foundational layer. The way search generally works is straightforward: the user defines a query, and then sets a limit (top-K) on how many search results they want returned. Usually, this is set to 10 or 20.
  13. OpenClaw Memory Problems: Why It Forgets and How to Fix It (2026)OpenClaw remembers by writing Markdown files in its workspace, so it forgets anything the agent didn't save. Why that breaks down, how the supermemory plugin recalls and saves on every turn instead, and how to install it, free on every plan.
  14. Stateful Coding Agents with Memory: Build Long-Running Agents (2026)We built a plugin for Claude Code and OpenCode that gives your coding agent persistent memory. It remembers your preferences, learns your codebase, and never loses context mid-conversation. The result is an agent you can run for months without starting over.
  15. Clawd / Molt bot's memory SUCKS. We gave it supermemory.I'm the founder of supermemory. Clawd/Molt bot is blowing up right now, with many, many use cases. I set it up, too, and have been using it through telegram. TLDR: just go to https://supermemory.ai/docs/integrations/clawdbot to set up supermemory for your clawd bot.
  16. Catch up with our UNFORGETTABLE Launch WeekOver the last year, one belief has guided almost everything we’ve built at Supermemory AI becomes meaningfully useful only when it remembers. Memory shouldn’t be something developers rebuild from scratch. It shouldn’t be fragile, expensive, or trapped inside a single tool.
  17. Empowering the Next Generation of Founders: Supermemory Startup ProgramIf there’s one thing we’ve learned while building Supermemory, it’s that most startups don’t fail because they didn't build features; they fail when infrastructure slows them down, or they built too slow.
  18. Building code-chunk: AST Aware Code ChunkingAt Supermemory, we're building context engineering infrastructure for AI. A huge part of that is dealing with code: ingesting repos, understanding structure, and making it searchable. The problem is that most code chunking solutions are terrible. We built code-chunk to fix this.
  19. Supermemory raises $3 million with the best memory engine for LLMsToday, I am excited to announce our first funding round to accelerate our mission of building an interoperable, scalable and reliable memory for LLMs and agents. Memory is one of the hardest challenges in AI right now.
  20. Mem0 vs Supermemory: Why Scira SwitchedScira AI moved its production memory layer from Mem0 to Supermemory. This is what failed, what improved, and how the team evaluated the two systems.
  21. Never Record Again: How Montra Uses Supermemory to Rethink Video CreationCampbell Baron, the founder of Montra, has been making videos since he was twelve. By thirteen, he was already doing brand work. Today, he’s betting on a very different future for creators: a world where recording is the exception, and most videos are generated from scratch.
  22. Unified Memory That Works Where You Work: Your Second Brain With SupermemoryHi everyone, I’m Dhravya, the founder of Supermemory. I want to start with a little story behind why this product means so much to me. You can also skip straight to what it is and how it works below.
  23. Supermemory just got faster on PlanetScaleWhat is Supermemory? Supermemory completes the missing part of the LLM puzzle: memory. Just as memory is crucial for human intelligence, it's essential for truly intelligent AI systems.
  24. Faster, smarter, reliable infinite chat: Supermemory IS context engineering.People are obsessed with prompts and prompt engineering. Sure, what you say is important, but what the model knows when you say it is the difference between a stateless text generator and an intelligent AI system. In short, context is the most crucial component.
  25. We solved AI API interoperabilityOne API to rule them all, One spec to find them, One library to bring them all and in the TypeScript, bind them. When we were building the Infinite Chat API, initially, we only supported the OpenAI format. This was fine, until a lot of our customers started asking for more.
  26. The Wow Factor of Memory - How Flow Used Supermemory To Build Smarter, Stickier ProductsOverview: Flow is a note-taking app built around a bold vision: to create a more personal, context-aware writing experience powered by AI. At the heart of this mission is memory.
  27. The UX and technicalities of awesome MCPsLast month, we launched the Supermemory MCP, mostly to test our own infrastructure and get some initial traction. It blew up. To my absolute surprise, the initial launch itself got half a million impressions (!!!). Then, we launched and got #2 on ProductHunt too.
  28. Architecting a memory engine inspired by the human brainLanguage is at the heart of intelligence, but what truly powers meaningful interaction is memory — the ability to accumulate, recall, and contextualize information over time. Large Language Models (LLMs) have mastered language, but memory remains their Achilles’ heel.
YOUR PRIVACY

Change or withdraw any time via Cookie settings in the footer. Read our cookie notice.