The Memory Is the Moat
By Randy Armknecht
GPT-6 Astra shipped on September 4 and I read enough to want a real run at it. Working with Claude Code since it was first released had left that side of the house knowing my projects, my preferences, and my habits. ChatGPT knew none of it. The model was clearly powerful. The harness had never met me, and each session started from zero. That was the moment the memory each vendor keeps stopped looking like a convenience and started looking like a moat, dug one work session at a time with my own effort. One that I happily dug without even realizing it, as Claude and I moved the needle on hobby project after hobby project.
Vendor Memory Is a Moat I Dug Myself
Each vendor learns me through the work I do with it and stores that learning behind its own login. The learning is real value, and I want it. It is also the exact thing that makes a fair comparison impossible. I want to evaluate multiple models, harnesses, and ecosystems, sort out which one I prefer for which task, and learn the gotchas inside each. Comparing a harness that knows me against one that has never met me tells me nothing about the harness. It tells me where I have been spending my time.
The first time I fired up Astra within ChatGPT it didn't know that I prefer Python over TypeScript, that I prefer uv vs a venv + pip combo, or that every project I work on gets a private GitHub repo by default. It also didn't know my background, the topics that matter to me, or that I refuse to accept code without a companion testing harness. Claude knows to test and validate with data any conclusion it offers. It also knows that static code scans, privacy, and security are foundational, non-optional components of any effort. Script? Web API? Mobile App? Doesn't matter. They all get the full treatment.
A Weekend Bought a Memory No Vendor Holds
Leveling the field meant owning the memory. Threadmark is a small self-hosted service (Python and SQLite) that holds decisions, facts, tasks, work logs, and session handoffs per project and exposes them over MCP to Claude Code, claude.ai, ChatGPT, and Codex. Each AI reads the project's context before it starts, records what it decided and shipped, and writes a handoff for whoever picks the work up next, competitor's model included.
It took a weekend and then some evenings. The bumps were instructive. Hosted ChatGPT connects over OAuth, so a single-user tool grew a full authorization server. The MCP server instructions turned out to be the only guidance layer that reaches every client, so the routing rules live there and the per-client runbooks mirror them. Search runs on local embeddings, and a weekly job rolls up what each project actually did and files review suggestions against it. On Sunday night's run it flagged Threadmark as an article candidate. The system nominated itself. This was an unexpected result, but one I clearly agreed with.
It is versioned 0.3 for a reason, and it is already doing the job. I hop between platforms during the week and the work stays relevant, because the context came with me. Plenty more bumps to take this from "personal software" that I can live with to an open-source project I'm willing to publicly publish. Though the work in doing so is enjoyable.
The Same Problem Is Sitting Inside the Model Router
I can see CIOs/CTOs wanting this capability, and the personal use case is the least of it. Organizations are standing up model routers that send a call to one provider or another depending on cost, context, and data classification. Route a request to a second provider and the accumulated context stays with the first, unless the memory sits outside both.
The departmental version interests me more. A team running a critical platform could keep one shared memory: what was decided, why, what is open, and what each session shipped. Onboarding gets a real history instead of a wiki last accurate 2 hires ago. Threadmark's records are already written as a side effect of the work; nobody has to remember to write them. Documentation generated from those records by the weekly job would inherit that property, and current documentation has been the classic hard problem for as long as I have been in this field. Imagine that... the developers and product team can focus on shipping features, squashing bugs, and keeping their end-users happy. The memory system can keep the documentation current based on what really happened. And each team member doesn't need to use the same harness either; they simply each need to be connected to the memory tool.
It is early days. A few more bumps to work out and it goes to GitHub. Until then the memory is mine, it lives on hardware I own, and no subscription can take it back.
🤖 AIL LEVELS: This content's AI Influence Levels are AIL2 for the writing, and AIL4 for the images. AI Influence Level (AIL) framework