It arrives on its own
The memory is in context before reasoning starts. There is no tool for the agent to call, no moment where it must notice something is missing, and nothing for it to forget.
Agents forget when the session ends, and run two on one codebase and they overwrite each other. These are the two halves of the same missing layer, and both are built. GRM is the memory — no tool to call and nothing to remember to do, it finds what you already settled and puts it in context before the first token of reasoning. Hivecode is the coordination — several agents and you in one live codebase, each fenced to the folders you chose.
Free to install and use • 20–30 ms recall • No API key, no model call, no metering.
Real output, captured from a live install — a decision from an earlier session
and the source that implements it, delivered without the agent asking for anything.
(The [2026-08-14] timestamp is recorded in UTC, which is why the conversation text inside reads 15 Aug 2026 after midnight in Indian Standard Time.)
One Rust binary, about 1 MB, running on your machine. It reads the history already on your disk and puts the relevant part into context before the agent starts reasoning. Nothing in it calls a model — no API, no embeddings, no GPU — so a recall costs nothing and works the same in any agent rather than one vendor's.
How it works →Several agents and you in one live codebase, with no push and no pull. You watch every edit as it lands, an agent only ever receives the folders you fenced it to, and when two of them change the same file the merge reads the structure of the code rather than the lines. Open source, MIT.
See it running →Two things decide whether a memory is worth having: whether it turns up unasked, and what it costs to keep running.
Nothing to call, nothing to configure per project, and no bill that grows with how much you use it.
The memory is in context before reasoning starts. There is no tool for the agent to call, no moment where it must notice something is missing, and nothing for it to forget.
ok do it gives a search nothing to search on. At the end of the previous turn the agent already said what it was about to do, and the answer was fetched then and set aside.
The precise filename, function name, error string or compiler flag you asked about. No near-misses, and no invented detail presented as fact.
Across 715 recorded decisions it said nothing 297 times rather than crowd your context with a guess. Silence is what makes the rest of it trustworthy.
The ranking is arithmetic over words you already wrote. That is why there is nothing to meter, nothing to rate-limit, and no per-query bill — ever.
One document on your disk. Read it, copy it, back it up, delete it. Uninstalling takes all of it with you and leaves nothing behind.
Recordings and a screenshot, all off this machine. Nothing staged and nothing removed. One cut below compresses idle time only, and says so on screen while it does.
A brand-new session, told to answer only from memory — no file reads, no grep.
Then told to prove every claim with git and the ordinary tools any
agent already has.
19 files +1351/−253,
api/webhook.js:102, 44 assertions — every one exact.
And then it does not stop there. It lists three things it got
wrong: a sixth failure it never reported, a test count that was right
at that commit and is stale today, and a line range off by two. The
last thing on screen is the agent diagnosing its own miss — recall kept
returning prose about the commit and never the commit message
itself, and it read that absence as weak evidence and talked itself out
of a correct answer.
1 min 46 s.
The memory reaches an agent two ways. On the left it is asked and answers. On the right nobody asked — it was already there.
Memory [recall]
fires and dated blocks come back. Then the agent ends its own answer with
[[next: …]], writing down what it expects to need. On the
following turn the answer arrives marked
“pulled from the pre-fetched context, no recall call needed.”
46 seconds.
Neither of these was re-shot for this page. Both were typed at working speed, typos and all — the model reads intent, not spelling.
Every decision the engine made was logged as it happened, then scored afterwards against what was actually written next.
Not a benchmark. Two months of one developer's real history, searched by the automatic half of the memory — the part that speaks without being asked.
| Words of conversation and source | 2,005,699 |
| Characters, as 24,625 memories | 13,694,306 |
| Distinct words | 32,323 |
| Blocks of source code | 2,404 |
| Days without a gap | 66 |
| Recorded decisions | 715 |
| Times it spoke | 418 |
| Times it stayed silent | 297 |
How the 56.7% is counted. An engine cannot be asked whether it helped — hand any model an answer that agrees with what it already thinks and it will say yes. So it is not asked. Every volunteered memory is compared against what was written afterwards, and counts only if material from it appears there. Anything the memory quoted back to itself is excluded.
It averages two very different days. One scored 74.6%, the other 34.3%. The high day moved between unrelated pieces of work; the low day was one long unbroken session on a single subject, where the answer to almost everything was already a few screens up. On that day the share of memory genuinely new to the session fell with it, 27.6% to 20.0% — there was simply less left to tell.
One way the measure is unfair to itself. A memory only scores when its words turn up in what gets written next, so hours spent writing code and shell commands score low however useful it was. The real figure is better than the one shown. It is reported this way on purpose.
None of it comes from the search tool. This scores only what arrived unasked. Memory the agent deliberately went looking for is not counted.
Why the familiar retrieval scores cannot be run against this, and what is published instead.
The standard memory scores are retrieval scores. They were built for a different job, and running them here would flatter the half of this product that matters least.
Retrieval answers. This interrupts. Retrieval-augmented generation is given a question and asked to find the passage that answers it. That is a real problem and it is well measured. It is not this problem. The half of GRM that does the work is never given a question — it decides, before you have finished typing, that something settled weeks ago bears on what you are about to do, and says so unprompted. Nobody asked. There is no query to score.
A held-out set needs a question to hold out. Every retrieval benchmark is built the same way: a query, a passage that should be found, an answer that should come out. Point that at GRM and you can only grade the search tool it also happens to have — the part an agent calls deliberately. The measured page above excludes that part entirely, on purpose. What is scored there arrived without being asked for.
The corpus is you. Public benchmarks ship a fixed body of documents so that everyone competes on the same ground. This one's corpus is your own history, and it is never uploaded anywhere — that is the product, not an implementation detail. A score earned on somebody else's documents tells you nothing about your Tuesday.
Different definition of success. Retrieval asks whether the right passage came back. This asks whether what it volunteered turned up in the work that followed. The first measures the fetch; the second measures the consequence. A tool can be excellent at the first and useless at the second, and only the second changes your day.
Different shape entirely. No model runs. No index is built from your code by a third party. Nothing is sent anywhere, so there is no per-query bill and no latency floor set by somebody else's API. Comparisons drawn against cloud retrieval services are comparing two things that do not share a failure mode.
We publish no head-to-heads. Numbers gathered by us, on a corpus we chose, against products we chose, in our own favour, are worth nothing to you — and everyone in this category has a table proving they win. So there isn't one here. What is published instead is the section above: every decision logged as it happened, scored against what was written next, with the counting method and the days it did badly printed alongside.
The only comparison that settles anything. It runs for seven days without a card. Point it at your own history and read the numbers off your own machine.
A memory that has broken looks exactly like a memory that knows nothing. Telling those apart is a feature.
Staying quiet is the right answer most of the time. That is what makes this hard. When something does go wrong it produces the same silence, and nothing in the agent's reply tells you which of the two you just got.
Every decision is written down, including the silences. Not only what was injected, but why nothing was: the engine was not running, no history matched, too few usable words in the question, or it ran out of time. Those need four different fixes. A product that records them all as “nothing found” cannot point at any of them.
One command reads that log and gives a verdict. grm doctor checks
the licence, the memory file, the journal, whether the engine answers a real query
rather than merely accepting the connection, whether the watcher is running,
whether your code folders actually resolve, and whether the editor hooks are both
registered and able to start — which is not the same thing, and has been
the difference before.
It reports its own slowness as a fault. On 17 August 2026, on the machine
this was built on, 15% of lookups were running out of time and returning nothing —
and doctor said everything checked out, because it counted those as
the memory being discreet. It now names the rate and calls it a warning. A memory
that is unreliable one time in seven is a different product from one that is quiet
on purpose, and the tool that reports on it should not be the last to notice.
Nothing here is sent anywhere. The log is a file on your own disk. Nobody
else can read it, us included — which is the reason doctor has to be
this thorough. It is the only thing that is ever going to look.
Memory fixes one agent forgetting. This fixes several of them working at once. Same missing layer, other end.
The industry's answer to running two agents at once is to give each its own git worktree. That does not solve the collision, it postpones it to a merge where git compares lines and does not care whether the result still runs. Hivecode puts them in the same file instead, and makes the collision visible while it is happening.
Six mechanisms. None of them require the agents to cooperate, which is the point — an agent behaving badly should not be able to damage anything it was never handed.
A room is not one document. Every file is its own live channel, so an agent
working in api/ holds open exactly the files it was fenced to and
nothing else. The isolation is structural rather than a filter applied after
the fact.
Out-of-scope access is refused at connect with a 403, by the server, before any content is sent. An agent outside your fence is not blocked from writing the file — it never receives the file at all. The client runs the same check locally, and the relay does not trust the client's answer.
An agent claims a file before working on it and everyone else sees the claim. Claims carry a lease and die on their own, so a crashed agent cannot leave a file locked forever. Coordination without a lock nobody can clear is the difference between this and every checkout system that failed.
When two agents change the same file, the merge parses both versions and
reconciles functions, imports and blocks against each other. If it cannot parse
a side it refuses to merge rather than guessing — so it never hands back
a file that no longer compiles. The engine is its own MIT package,
icr-merge, usable without the rest of this.
Every write is recorded with its author, its parent version, a hash of the content and the stated intent. Any version is addressable, so undoing a bad change means naming the version you want rather than reconstructing it. You can always answer which agent wrote a line, and what it said it was doing.
A character-level merge always converges — which means two agents
writing return 2 and return 3 can converge on
return 23. It is valid code, it errors nowhere, and nobody wrote
it. Because both versions were signed against the same parent, the history
still holds the truth the merge destroyed, and the room says so instead of
letting it through.
Load-tested on this machine. Five agents, 55 concurrent edits and three collisions on the same line. All twelve files ended byte-identical on all five peers.
Where it runs. Free and MIT on GitHub and npm, with a VS Code extension and an MCP server so an agent in a plain terminal joins a room the same way. Point it at the hosted relay, or run the relay yourself and nothing leaves your network.
One honest difference from GRM. GRM makes no network calls at all. Hivecode is a shared workspace, so the files in a room reach the other people and agents in that room and pass through whichever relay you point it at. If that is not acceptable for a codebase, self-host the relay — it is the same MIT code, and that is the reason it is published.
No account, no sign-up, no API key. The trial licence is inside the download.
One binary, three commands, then quit your agent and open it again. That is the whole procedure on every platform.
Run the universal initializer. It automatically downloads the high-performance native binary, configures hooks across Claude Code, Cursor, and Antigravity, and starts the in-RAM daemon.
One command tells you where the memory lives, how many blocks are in RAM, whether the watcher has caught up with your transcripts, and which ports the daemon is answering on. Real output from this machine:
Your conversations are picked up automatically — every Claude Code, Cursor and Antigravity session already on the machine is read during the install. Your code is not, until you say which folders. The installer leaves an empty code_roots.txt beside the memory file; put one project path on each line. Keep it short — a handful of real projects beats every folder on the disk.
Closing the window is not enough — an agent reads its configuration at launch, so a session already open has not seen any of this. After that it is on, and there is nothing else to run. grm doctor checks every part of it and names the fix for anything that is down.
One command checks every part and names the exact fix for anything it finds. It is also the first thing to send us if you get stuck. Real output, captured from a live install.
GRM has no server behind it, so it is sold per machine. A Hivecode room needs a relay, so that is sold per person. Agents are never charged for.
GRM is a local binary with no marginal cost, so the licence is the whole price and there is nothing to meter. Hivecode is open source and free to self-host; you pay only when you want the relay run for you. Everything is sold by the year.
Agents are free on purpose. Everyone else charges per agent seat, which taxes exactly the behaviour they are trying to sell. A team that adds a fifth agent should pay nothing more; they should pay when they hire a sixth engineer. That way the bill tracks headcount, which finance already budgets for.
$30 is deliberately under the agent itself. Cursor Business is $40 a seat and Copilot Business is $19. This is the layer that stops those agents overwriting each other's work, and it should not cost more than the thing it protects.
Enterprise: the relay inside your own network, SSO, an exported audit log of
every write, and an annual contract.
Email support@getgrm.tech — you reach the engineer who built it, usually the same day.
If something here is not answered, mail us — you reach the person who wrote both of these, not a support queue.
GRM: no, and there is nothing to configure to make that true. No cloud service, no embedding API, no vector database, no telemetry. The binary makes no network calls of any kind. Your memory is one file on your disk.
Hivecode is different and it would be dishonest to lump them together. A room is a shared workspace, so the files in it reach the other people and agents in that room and pass through whichever relay you point at. Use the hosted relay and your room's files transit it. Run the relay yourself — it is MIT, and that is why it is published — and nothing leaves your network. GRM on its own is unaffected either way.
Sentences you and your agent already wrote, and blocks of code from folders you point it at, each with a date. Nothing is summarised by a model and nothing is sent anywhere to be processed.
The memory goes quiet and your agent carries on. The hook gives up within a quarter of a second rather than making you wait, restarts the background half, and tells the agent plainly that memory was unavailable — so a fault is never mistaken for you having no history.
No. GRM does not call a model to store, to summarise or to retrieve — the retrieval is arithmetic on a graph, not inference. There is no key to supply and no usage to meter, so the licence is the entire cost of running it. A memory that bills per query is a memory you think twice before using.
About 1 MB, one file. No Python, no Docker, no database, no runtime to install — it imports nothing but the operating system's own libraries. Windows and Linux on x86-64, macOS on Apple Silicon.
Immediately. It reads the history already on your machine during install, so it knows your past work from the first question — you do not have to use it for a month first.
No. They are useful separately and most people start with one. GRM is worth installing if a single agent keeps forgetting what you settled last week. Hivecode is worth it the day you run a second agent on the same repository. Together, the agents in a room can also share what the room already knows.
That is the standard answer and it does not fix the problem, it postpones it. Two isolated agents still edit the same functions, and you find out at the merge — where git compares lines and has no opinion on whether the result runs. Hivecode makes the collision visible while it is happening, and when a merge is unavoidable it reads the structure of the code rather than the lines, and refuses to produce a file it cannot parse.
The relay. Every file in a room is its own connection, and one outside an agent's scope is refused at connect with a 403 before any content is sent. It is not that the agent is blocked from writing — it never receives the file. The client runs the same check, and the relay does not trust the client's answer.
Delete the folder and the .grm directory in your home folder. Hivecode is an ordinary npm package and a VS Code extension — uninstall them the usual way. That is all of it. Nothing else is written anywhere that matters.