ITJuly 18, 2026

We Open-Sourced the Memory Our AI Coding Agents Never Had

By Andrea Borghi
We Open-Sourced the Memory Our AI Coding Agents Never Had

We Open-Sourced the Memory Our AI Coding Agents Never Had

Picture a yoga teacher with amnesia. Every class, they watch you fold into a forward bend and cue "soften your knees." Next class, same body, same habit of locking the knees — and they cue "micro-bend at the joint" instead, having forgotten they ever said it the first way. Neither cue is wrong. But now you are holding two instructions for one habit, and no one in the room can tell you they are the same thing.

That is what an AI coding agent does to your codebase, every single session.

The problem nobody diffs for

Claude, Kilo, Cursor, Copilot — none of them remember what they named things last time. Ask an agent to add a retry limit on Monday and it writes MAX_RETRIES. Ask a different session to do something adjacent on Wednesday and, having no memory of Monday, it just as reasonably writes RETRY_LIMIT. Both are fine names. Together they are a bug waiting for someone to edit one and forget the other.

This is not a hunch. GitClear's "The Maintainability Gap" tracked 623 million changed lines from 2023 to 2026 and found duplicate code blocks up 81%, while the share of commits that actually refactor collapsed from 21% to under 4%. CodeRabbit's review of 470 pull requests found AI-authored PRs carry 1.7x more issues than human ones, with naming inconsistencies showing up roughly twice as often. Agents write. Nobody consolidates. And it never shows up in a normal diff review, because each individual commit looks completely reasonable in isolation — the inconsistency only exists across sessions, which is exactly where nobody is looking.

What VarAlign actually does

VarAlign is a hook that watches every variable an AI agent writes, keeps a per-repo registry that survives across sessions, and reconciles it against what the repo actually holds — catching drift, deletions, and duplicate concepts under different names. It is deterministic: no LLM in the loop, no tokens spent, nothing leaves your machine. The registry lives as plain files inside your own repo, so it is diffable in git and readable by any tool, not locked behind a database.

Detection is language-aware, which matters more than it sounds. Go's capitalized names mean something different than Python's CONST_CASE; PowerShell identifiers are case-insensitive; a shared prefix with a different final word (HTTP_GET / HTTP_POST) is a deliberate family, not a duplicate. Get that wrong and the tool cries wolf until nobody reads its reports anymore — which is its own kind of amnesia.

Continuity is the whole practice

Here is the part that will sound familiar to anyone who teaches or takes a regular class: a practice only compounds if something carries forward. A teacher who remembers your stiff right hip can build three months of small corrections into real change. A teacher who starts fresh every time can only ever repeat themselves, sometimes in slightly different words, and the student is left reconciling which version to trust.

AI coding agents are, by default, the amnesiac teacher. VarAlign is the notebook the teacher should have been keeping. It does not make the agent smarter. It just makes sure the third session knows what the first session already decided, so the codebase accumulates one vocabulary instead of three.

What shipped today

As of today, VarAlign is v1.0.0, and the engine plus a Claude Code plugin are open source on GitHub under Apache-2.0. Installing it takes two commands and no local clone:

/plugin marketplace add greenyogainc/varalign
/plugin install varalign

Because detection is file-based, it catches duplicate and drifted variables no matter which tool wrote them — Claude Code, Kilo, Cursor, Copilot, or a human typing directly. The VS Code extension, which adds a color-coded duplicate list with one-click override and notes, ships separately and stays free on the Marketplace and Open VSX.

What dogfooding actually looks like

We do not ship claims we have not tested on ourselves. Right now VarAlign is watching more than 36,000 variable assignments live across 15 of our own repos, with 1,390 duplicate and drift suspects triaged so far through its own review workflow. In the twenty-four hours around this release alone, it caught three real issues before they shipped further: a computation quietly duplicated inside a dashboard, a severity constant redefined instead of imported from its shared source, and configuration values scattered across scripts that should have been reading from one place. None of those would have shown up in a normal code review — each change looked correct on its own.

The VS Code extension's first real release went out three days ago and has already passed 2,300 downloads.

One move for this week

If you run Claude Code, Kilo, Cursor, or Copilot against a repo of any real size, you already have this problem — you just have not seen the report yet. Install the plugin, let it scan, and read what it flags before you dismiss anything. Most of what surfaces will be an easy, five-minute rename. The value is not in any single fix. It is in the codebase settling on one name per concept instead of accumulating a new dialect every sprint.

That is the same thing a good practice does over months on a mat: not one dramatic breakthrough, but one vocabulary that keeps building on itself instead of starting over.


VarAlign's engine and Claude Code plugin are open source at github.com/greenyogainc/varalign. The VS Code extension is free on the Marketplace and Open VSX. If you want help rolling it out across a larger org, reach out.