Your coding agent shouldn’t start every session as a stranger.

Reverie is memory for coding agents. It keeps the conclusions your agent reaches — reviewed by you, grounded in your code — so the next session builds on them.

conclusionreviewed

Cache invalidation must follow token refresh; clearing the cache first serves stale authentication tokens.

type
invariant
scope
repo:myapp > module:auth
confidence
0.67
grounding
auth/token_manager.rs
auth/cache.rs @ d64d0e0

Verify against current code before acting.

One reviewed conclusion and its links.Example

A reviewed conclusion about cache invalidation and token refresh, shown with the conclusions it links to: one it supports, one it depends on, and an older one it replaced. Further linked conclusions fade into the distance.

The bottleneck isn’t intelligence. It’s continuity.

The hard part isn’t storing more. It’s knowing what’s worth remembering.

session endsMondayTuesdayWednesdaywhy users get logged outwhy users get logged outwhy users get logged outsession endsMondayTuesdayWednesdaywhy users get logged outwhy users get logged outwhy users get logged out
Each new session works it out again, from zero.

Three days, Monday to Wednesday. Each day the agent reasons its way to the same conclusion, why users get logged out, and the conclusion is lost when the session ends.

How it works

From one session to the next — and you decide what’s kept.

session endsnext session1Your agent worksConclusions are extracted as it goes.2You reviewKeep what’s right. Drop the rest.3Memory builds upGrounded in your code.4Your agent asksAfter reading the code, not before.

1Your agent works

Conclusions are extracted as it goes.

session ends

2You review

Keep what’s right. Drop the rest.

3Memory builds up

Grounded in your code.

next session

4Your agent asks

After reading the code, not before.

Fig. 1Dashed: not yet reviewed. Solid, with a blue edge: reviewed by you.

Four steps across two session boundaries. Your agent works and extracts conclusions. The session ends. You review and keep what is right. Memory builds up, grounded in your code. In the next session, your agent asks for relevant conclusions after reading the code, not before.

The full mechanism

The same agent, with and without Reverie.

One recording compares both runs.

DemonstrationA recorded demonstration, not a benchmark result.Benchmark results Open in Google Drive ↗

Memory that can change its mind.

Conclusions behave like beliefs: evidence strengthens them, contradictions challenge them, and disuse lets them fade.

cache reads wait for refreshtokens refresh at expirybuild cache per lockfilecache cleared too earlycache cleared too earlynew · awaiting reviewadded after reviewstrengthenedtokens refresh before expirychallengedreplacessuperseded · keptfading · unusedcache reads wait for refreshtokens refresh at expirybuild cache per lockfilecache cleared too earlycache cleared too earlynew · awaiting reviewadded after reviewstrengthenedtokens refresh before expirychallengedreplacessuperseded · keptfading · unused
  1. A new conclusion arrives from a session and waits, dashed, for your review.
  2. After review it joins long-term memory and strengthens a related conclusion.
  3. A newer conclusion disagrees with an older one, which is marked challenged.
  4. You prefer the newer conclusion: it replaces the older one, which is kept, struck through.
  5. A conclusion that is never used fades.

One conclusion, up close

  1. Step 1 of 6.
    cache invalidation follows token refresh
    unreviewed

    Extracted in a session.

  2. Step 2 of 6.
    cache invalidation follows token refresh
    reviewed

    You accept it.

  3. Step 3 of 6.
    cache invalidation follows token refresh
    reviewed

    Supported and used.

  4. Step 4 of 6.
    cache invalidation follows token refresh
    challenged

    A new conclusion disagrees.

  5. Step 5 of 6.
    cache invalidation follows token refresh
    open question

    The conflict persists.

  6. Step 6 of 6.
    cache invalidation follows token refresh
    superseded

    You prefer the newer one. This one is kept.

If the code it cites is deleted, a conclusion like this is retired automatically.

Fig. 2Example values, computed with Reverie’s update rules.

How conclusions change

Your memory, not your agent’s.

Switch models today, and agents soon: what you’ve built up stays with you, on your machine.

MCPMCPYour memory~/.ec/ec.dbon your machine · reviewed by youOpenCodeClaude CodeCursorCodexAny MCP agent
Your memory~/.ec/ec.dbon your machine · reviewed by you
OpenCodeClaude CodeCursorCodexAny MCP agent
Fig. 3Solid: works today. Dashed: coming soon.

One memory file on your machine, shared over MCP by every connected agent. OpenCode works today; Claude Code, Cursor, Codex and other MCP agents are coming soon.

  • Stored on your machine.One SQLite file. No Reverie account.
  • You approve what’s kept.Every extracted conclusion passes your review.
  • Your choice of model.Extraction runs hosted, or locally with Ollama.

Data, setup and limits

Built by measuring what didn’t work.

Our first version loaded memory into the agent before it started. On our benchmark, that made it worse — it trusted memory over the code. So Reverie keeps reviewed conclusions, and lets the agent ask.

We publish results either way.

All research

Read the code.

The source, the extraction prompt, the benchmark harness and setup instructions are in the repository.