Neomonic
External context memory for AI agents

Memory outside the context window.

An agent's window is a lens, not the store. Neomonic is the store: typed memos under topics under contexts, recalled by the keyphrases the agent already holds.

Wire it into an agent See how recall works neomonic.net · neumonic.net
context caroline3 topics · 7 memos
# moving
mv-denverPLACE moved to Denver in March, sister Priya helped
mv-leaseTIME lease starts 1 April, two bedrooms
# work
wk-promoACTION promoted to lead designer, announced at the Friday standup
wk-teamPERSON reports to Marcus now, team of four
# hobbies
hb-guitarTHING started guitar lessons, Tuesdays
> who helped Caroline move?
recall via keys mv-denver · sister Priya · PERSON

Three verbs, and the window stays small.

Every memo is one typed fact with a key. The agent keeps the keys hot in its window and pulls the payload only when a question needs it. That is the whole discipline, and it is what keeps a long-running agent from forgetting.

Add

One fact per memo, typed by what it is: a person, a place, a time, an action, a thing. Payloads go to the store, not the prompt.

memory.add caroline, moving, mv-denver, moved to Denver in March

Hold the keys

Loading a context loads its keyphrase cache: a few hundred bytes the agent carries between turns instead of the memos themselves.

memory.cachekeys caroline

Recall

A question is matched against the keys first, the full-text index second. The hit comes back as the memo, with its type and its time.

memory.modelkeywords caroline, who helped with the move

What a store holds.

Built as the memory module of the 0verload tool federation: one C++ binary, no runtime, no cloud, the on-disk store yours to copy, version and inspect.

Contexts, topics, memos

A context is one person, project or agent. Topics are its chapters. Memos are the facts, each with a key, a type and a timestamp.

The temporal web

Every memo anchors to the most specific date it carries, so "last spring" and "before the promotion" are questions the store can answer.

Load-bearing words

A trained word net reads each memo and keeps the words that carry it: names, places, times, actions, things. Those words, paired, are the keys the index runs on.

Trains where the hardware is

The word net trains on any OpenCL GPU, NVIDIA, AMD or Apple silicon, with nothing to install, and serves on a plain CPU anywhere. One model file either way.

Automatic version control

Every save of every enrolled file is a version. Memory that can be rolled back is memory you can let an agent write to.

Speaks MCP

Every verb is a tool over the Model Context Protocol, so Claude Code, Cursor or any MCP client gets persistent memory in one config line.

Measured, not promised.

Numbers from the benchmark lanes the product is developed against, on a desktop with a GTX 1660. Each is reproducible from the repository's own tools.

1.9 ms
to tag a memo for its load-bearing words
one CPU thread, the wide net
0.29 ms
the same memo through the GPU lane
per call, dispatch included
0.2 s
one training epoch on the GPU
30k tokens; 3.3 s on 8 CPU threads
4.5e-8
GPU vs CPU forward disagreement
checked before every training run

Watch it think.

The memory monitor traces one question through the store: every memo scored, the winners stepped token by token, and the decision written out line by line. Nothing in the answer is hidden behind a model call.

The Neomonic memory monitor answering a multi-hop question: four memos ranked above the threshold, their spans joined into the answer, with the token trace and the decision log
What books has Ingrid read? A multi-hop question over 241 memos. Four memos from four different days clear the gate, their spans are joined, and the answer matches the gold in under two seconds on a plain CPU. The decision log on the left is the whole argument: rank, threshold, join, answer.

For agents, from the first turn.

Register the server once. The agent then recalls before it assumes it is starting fresh, and saves durable facts as it works, so they outlive the window.

  • memory_addremember one typed fact under a context and topic
  • memory_cachekeysload a context's keyphrase cache into the window
  • memory_keywordsrecall by keyword when the keys do not hit
  • memory_temporalask by time: before, after, around a date
  • memory_w5who, what, where, when, why over a context
  • memory_recentresume where the last session stopped
// claude_desktop_config.json / .mcp.json
{
  "mcpServers": {
    "neomonic": {
      "command": "0neo",
      "args": ["mcp"]
    }
  }
}

// or over HTTP, served by the resident
"url": "http://127.0.0.1:9966/mcp"