<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Thomas Jumper</title>
    <description>The latest articles on DEV Community by Thomas Jumper (@thomasjumper).</description>
    <link>https://dev.to/thomasjumper</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3853462%2F2c834026-0981-459d-8517-0523a587eb2a.jpg</url>
      <title>DEV Community: Thomas Jumper</title>
      <link>https://dev.to/thomasjumper</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thomasjumper"/>
    <language>en</language>
    <item>
      <title>Your CLAUDE.md is not your agent's memory</title>
      <dc:creator>Thomas Jumper</dc:creator>
      <pubDate>Tue, 14 Jul 2026 14:30:00 +0000</pubDate>
      <link>https://dev.to/thomasjumper/your-claudemd-is-not-your-agents-memory-423k</link>
      <guid>https://dev.to/thomasjumper/your-claudemd-is-not-your-agents-memory-423k</guid>
      <description>&lt;p&gt;I like &lt;code&gt;CLAUDE.md&lt;/code&gt;. I also think people are asking it to do a job it cannot do.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;, and &lt;code&gt;.cursor/rules&lt;/code&gt; are where you put the rules you want an agent to follow: how to run tests, which folders are sensitive, what style the team uses, and when to ask before deploying. That is written context. It belongs in git.&lt;/p&gt;

&lt;p&gt;But a coding agent also learns things while it works.&lt;/p&gt;

&lt;p&gt;It discovers that a particular test is flaky under one flag. It learns why an apparently odd abstraction exists. It finds the deployment step that is not in the runbook yet. Those are not stable enough to hard-code into an instruction file, and they are too useful to lose when the session ends.&lt;/p&gt;

&lt;p&gt;That is the distinction I use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instructions are what your team writes down before the work.&lt;/li&gt;
&lt;li&gt;Memory is what your connected agents learn during the work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The practical move is not to replace instruction files. Keep them. Add a small memory protocol beside them:&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>productivity</category>
      <category>claudecode</category>
    </item>
    <item>
      <title>How to give Claude Code, Cursor, and Codex shared memory over MCP</title>
      <dc:creator>Thomas Jumper</dc:creator>
      <pubDate>Tue, 31 Mar 2026 12:44:08 +0000</pubDate>
      <link>https://dev.to/thomasjumper/how-we-built-a-4-strategy-hybrid-memory-search-for-ai-agents-5aop</link>
      <guid>https://dev.to/thomasjumper/how-we-built-a-4-strategy-hybrid-memory-search-for-ai-agents-5aop</guid>
      <description>&lt;p&gt;I use more than one coding agent in a normal week: Claude Code for most work, Cursor when I'm living in the editor, Codex CLI for scripted runs. They're all good. They also share nothing.&lt;/p&gt;

&lt;p&gt;A lesson learned in one session ("staging DB resets Sunday nights", "that test is flaky, ignore it", "we chose pgvector on purpose, stop suggesting alternatives") is gone in the next session, and was never visible to the other tools at all.&lt;/p&gt;

&lt;p&gt;The built-in memory options don't cross that gap, and their docs say so: Claude Code's auto memory is per-repository and machine-local; Codex's memories are stored locally and off by default; Cursor's documented persistence layer is Rules, which are files you write yourself.&lt;/p&gt;

&lt;p&gt;Instruction files like &lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;, and &lt;code&gt;.cursor/rules&lt;/code&gt; are genuinely useful for the context you write. Keep them. What they don't hold is the context your agents learn while working.&lt;/p&gt;

&lt;p&gt;The fix is a shared memory layer over MCP: one server that any MCP client can connect to, so a memory stored by one connected agent can be recalled by another.&lt;/p&gt;

&lt;p&gt;Here's the full setup with StremAI. Full disclosure: I'm the founder. There are also open-source options like OpenMemory, agentmemory, Memorix, and others if you'd rather self-host, and the verification steps below work with any shared-memory MCP server.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Claude Code
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http stremai https://stremai.com/api/mcp &lt;span class="nt"&gt;--scope&lt;/span&gt; user
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it, then approve the browser sign-in. No API key to paste. &lt;code&gt;--scope user&lt;/code&gt; makes the connection available in every project, not just the current directory.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Cursor
&lt;/h2&gt;

&lt;p&gt;Add one server entry to &lt;code&gt;~/.cursor/mcp.json&lt;/code&gt; for global use, or &lt;code&gt;.cursor/mcp.json&lt;/code&gt; for one project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"stremai"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://stremai.com/api/mcp"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cursor should prompt a browser sign-in. Honest note: OAuth verification for Cursor is still in progress on our side. If the prompt doesn't appear in your build, use an API key fallback:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"stremai"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://stremai.com/api/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer ab_live_YOUR_KEY"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Existing &lt;code&gt;"agentbay"&lt;/code&gt; entries keep working; use &lt;code&gt;"stremai"&lt;/code&gt; for new installs so docs and troubleshooting match.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Codex CLI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sSL&lt;/span&gt; https://stremai.com/install-codex.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or manually in &lt;code&gt;~/.codex/config.toml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[mcp_servers.stremai]&lt;/span&gt;
&lt;span class="py"&gt;url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://stremai.com/api/mcp"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Verify it actually works
&lt;/h2&gt;

&lt;p&gt;Most setup guides skip the proof step. Don't.&lt;/p&gt;

&lt;p&gt;In any connected agent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;store a test memory titled "setup check" with content "shared memory is wired up"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then open a different tool, or a fresh session, and ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;recall the test memory called "setup check"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the second agent returns it without you repeating anything, you have working shared memory. That's the whole product in one round trip: what one connected agent learns, another connected agent can recall.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Make it useful
&lt;/h2&gt;

&lt;p&gt;First, tell your agents when to use memory. Put a few lines in your existing &lt;code&gt;CLAUDE.md&lt;/code&gt; or &lt;code&gt;AGENTS.md&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Before answering questions about this codebase, recall relevant project memory.
- After completing a real change, store durable lessons: decisions, pitfalls, gotchas.
- Don't store secrets or raw code; those belong in git.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Second, seed it. Store the five things you're most tired of re-explaining: deploy quirks, flaky tests, architecture decisions, setup gotchas, or the rule everyone keeps rediscovering.&lt;/p&gt;

&lt;p&gt;Recall quality is ranked, so the relevant entry surfaces when it matters instead of everything flooding the context window.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to expect
&lt;/h2&gt;

&lt;p&gt;Memory is user-controlled. Entries are human-readable, attributed to the agent that stored them, and you can export, archive, or erase them from the dashboard.&lt;/p&gt;

&lt;p&gt;On teams, one engineer's agent's lesson can be recalled by teammates' connected agents, which is the part that changes onboarding. The point is not that agents magically know everything. The point is that useful working context stops dying inside one tool's session.&lt;/p&gt;

&lt;p&gt;StremAI is free to start with no credit card. It is verified with Claude Code and Claude Desktop today, with Cursor, Codex, Windsurf, and OpenClaw supported or in active verification.&lt;/p&gt;

&lt;p&gt;Docs: &lt;a href="https://stremai.com/docs/mcp-memory" rel="noopener noreferrer"&gt;stremai.com/docs/mcp-memory&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try a real recall without an account: &lt;a href="https://stremai.com/playground" rel="noopener noreferrer"&gt;stremai.com/playground&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Questions or a setup that didn't work? Comment. I read all of them, and broken-setup reports are worth more to me than praise.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>productivity</category>
      <category>claudecode</category>
    </item>
  </channel>
</rss>
