Blog·Engineering

Stateful Coding Agents with Memory: Build Long-Running Agents (2026)

By Shoubhit·5 min read

Supermemory header reading "Coding agents carry context from one session to the next" — A continuous paper tape carries through changing pools of light beside a terminal

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.

Here's how it works, in the order you'll experience it.

Teaching the agent your codebase

The first thing you do after installing the plugin is run /supermemory-init. This kicks off a deep research session where the agent explores your project: reading package files, scanning directory structure, checking commit history, understanding conventions.

The command doesn't just dump files into context. It teaches the agent what to look for: implicit style rules that never made it to a linter config, architecture patterns that only show up in the diff history, pain points revealed by bug fix frequency. The research takes fifty or more tool calls, but it only happens once. Everything learned gets saved to project memory.

After initialization, the agent knows your codebase the way a teammate who's been around for six months does.

Starting a session

Every time you open a new terminal and start chatting, the plugin injects relevant context before your first message reaches the model. Three things get pulled in parallel:

  1. User profile: cross-project preferences stored under your git email. Things like "prefers functional components" or "uses pnpm, not npm" follow you everywhere.
  2. Project memories: everything the agent learned during init, plus anything it's picked up since. Tech stack, build commands, architecture decisions, past bugs and their fixes.
  3. Semantic search results: memories that match what you're asking about, ranked by similarity. If you open with "fix the auth bug," it surfaces previous auth-related work.

The injection happens invisibly. You type your message, the plugin fetches context, prepends it, and forwards the enriched prompt. The model sees a conversation that starts with knowledge instead of starting from scratch.

Remembering things as you work

As you work, the agent can save new information. This happens two ways.

Automatic capture

The plugin watches for natural language triggers: "remember this," "don't forget," "note that," "keep in mind." When it detects one, it nudges the agent to save the information with the appropriate type and scope.

The pattern list is configurable. If your team says "log this" instead of "remember this," add it to your config. The regex runs on every message, so capture happens without changing how you talk to the agent.

The supermemory tool

Sometimes you want to save something specific, or search for something you saved before. The plugin exposes a tool the agent can call directly:

  • add: store a memory with a type (architecture, error-solution, preference, etc.) and scope (user or project)
  • search: find memories matching a query
  • list: browse recent memories
  • forget: delete something that's no longer true
  • profile: view or query your cross-project preferences

Memory types matter for retrieval. An error-solution memory surfaces when the agent hits a similar error. A project-config memory gets injected when discussing build setup. The taxonomy isn't just for organization; it shapes what context appears when.

User vs project scope

Not all knowledge belongs everywhere. Your preference for tabs over spaces should follow you. The fact that this repo uses a weird monorepo structure should not.

Memories are tagged with cryptographic hashes: one derived from your git email, one from the working directory. User-scoped memories attach to your email hash and appear in every project. Project-scoped memories attach to the directory hash and stay local.

The scoping is automatic. When the agent saves a coding style preference, it goes to user scope. When it saves a build command, it goes to project scope. You can override this, but the defaults are right most of the time.

When context fills up

You've been working for an hour. The conversation is long. Context usage is climbing toward the limit.

Most tools wait until you hit context_length_exceeded, then squeeze the thread into a summary. This is reactive compaction, and it's broken. By the time the error arrives, the model is already degraded: truncating system prompts, garbling tool outputs, hallucinating constraints you never stated. The summary gets generated from that corrupted state, so what survives is whatever the model happens to remember under pressure. Usually the what, rarely the why not.

Preemptive compaction

The plugin compacts earlier. At 80% context usage (configurable), it generates a summary while the model still has breathing room. We inject a system message that structures what to preserve:

You are about to be summarized. Retain:
- The user's literal request (do not paraphrase)
- The end goal
- Files touched, tests added, commits made
- Work remaining: next steps, blockers
- Negative constraints: things explicitly forbidden or that failed

Negative constraints matter more than achievements. A refactor that must not pull Redux into the bundle is useless if the summary only records "discussed state management." The structured prompt forces the model to preserve vetoes verbatim.

Once the summary returns, we push it into Supermemory under a project-scoped tag, truncate the conversation to the last exchange, and append an automatic "continue" so the session keeps flowing. Even though compaction is lossy, it rarely feels so when using the plugin.

Coming back tomorrow

You close the terminal. Come back the next day. Run opencode --continue.

The new session starts with yesterday's summary already in context, plus your profile, plus project memories, plus anything semantically relevant to what you're working on. There's no manual checkpoint. No copying notes to a doc. No re-explaining what you were doing.

Because every compaction summary gets saved to Supermemory, the agent can also search past sessions. "What did we decide about the auth flow last week?" just works.

Privacy

Some things shouldn't leave your machine. Wrap content in <private> tags and the plugin redacts it before storage. API keys, credentials, personal notes: anything marked private gets replaced with [REDACTED] in the memory system.

The redaction happens transparently. You can tell the agent "remember that the API key is in .env" without the actual key ever hitting Supermemory's servers. The memory stores the location, not the secret.

Configuration

Defaults work for most setups, but everything can be tuned in ~/.config/opencode/supermemory.jsonc:

{
  "compactionThreshold": 0.80,    // when to compact (0-1)
  "similarityThreshold": 0.6,     // minimum relevance for search results
  "maxMemories": 5,               // memories per semantic search
  "maxProjectMemories": 10,       // project memories injected at start
  "maxProfileItems": 5,           // profile facts injected at start
  "injectProfile": true,          // include cross-project preferences
  "keywordPatterns": []           // additional trigger patterns
}

Lower the compaction threshold if you want more aggressive summarization. Raise the similarity threshold if irrelevant memories keep appearing. Add keyword patterns if your team uses non-standard phrases for saving information.

The result

This is what we mean by infinitely running. Not that the context window is infinite, but that the limits stop mattering.

The agent learns your codebase once and remembers it forever. Your preferences follow you across projects. Context gets compacted before it degrades. Summaries become searchable history. Sessions pick up where they left off.

The conversation can run for months if you want it to. This is the power of the supermemory plugin in opencode.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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%.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. OpenClaw Memory Problems: Why It Forgets and How to Fix It (2026)TLDR: Today, we are releasing a new version of our openclaw plugin - https://github.com/supermemoryai/openclaw-supermemory. This post is going to be a bit technical, so bear with me (or bookmark for later!) In this post, I will talk about what we do about OpenClaw memory, and how we fix it.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. 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.
  24. 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.
  25. 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.
  26. 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.