Varven

Coding projects that outlive the context window.

The tenth time you explain why you dropped Redis is not engineering. It is overhead — and it compounds with every session you start.

Three separate assistant sessions ending, while the decisions they produced accumulate as permanent layers underneath, readable by the next session session · monday > single writer, so we take SQLite over Postgres context ends here session · wednesday > rate limit is 100/min, per key not per user context ends here session · friday > why not Postgres here? Decided Monday: single writer → SQLite. recall deposit THE RECORD · SCOPE: ATLAS decision · single writer → SQLite over Postgres mon · trusted fact · rate limit 100/min per key wed · trusted Postgres for the API — superseded, kept for history
Sessions end. The record underneath them does not — and the next session starts by reading it.

The problem, precisely

Every conversation with an assistant starts from nothing. So the start of every working session is the same recital: the stack, the constraints, the decision you made in March and the reason you made it. Skip the recital and the assistant cheerfully suggests the thing you already rejected — reopening settled questions is what a blank context does best.

Most people cope by pasting a living document into every session. That document is memory, managed by hand, going stale in the exact ways nobody notices until it bites.

What Varven does with a decision

When something worth keeping happens in a session — a decision and its reasoning, a constraint discovered the hard way, a correction you made when the assistant got it wrong — it is laid down as a layer in your vault: plain Markdown, on your machine, with its origin and date intact.

---
type: decision
scope: atlas
trust: trusted
created: 2026-03-14
---
SQLite over Postgres for the API. One writer by design,
and litestream covers replication. Revisit only if a
second writer ever actually exists.

Six months later, “why not Postgres?” gets answered from the record — with the date, the reasoning, and the condition under which the decision should be reopened. That last part is the difference between memory and dogma.

Corrections stick

The highest-value memory in a coding project is the correction: we tried that, it broke, here is what broke. Corrections never go stale in Varven — they are true by virtue of having been said — so the assistant stops re-suggesting the migration strategy that took down staging.

One project or twelve

Each project is a scope. A search can stay inside one, so your side project's conventions never bleed into work answers. Preferences that hold everywhere — diffs not whole files, explain the why — live in a global scope every project inherits. When something replaces something older, the old layer is superseded rather than deleted: still queryable, so “when did we change this?” has an answer.

What it looks like in practice

You connect your assistant once, over MCP. At the start of a session it pulls a briefing: pinned constraints, standing preferences, recent corrections. Mid-session it searches when a question touches the past, and reads the timeline when you ask what changed since Tuesday. You keep working; the record accretes underneath.

Which plan this needs

Local · $0Sync adds the replica

Everything on this page runs on the free plan: unlimited memory, one machine, desktop AI clients. Add Sync if you want the record readable with the PC off, or from a second machine.

Questions

Does it work with coding assistants like Cursor or Claude?

Yes. Varven speaks the Model Context Protocol, so the same memory is readable by Claude, Cursor, VS Code, ChatGPT and Gemini. See the docs for the connector setup.

I work on several projects. Do they share one memory?

They share a vault and stay separate inside it — that is what scopes are for. Global preferences are the deliberate exception.

Do I have to write the notes myself?

No. Your assistant writes memory as you work, and a small local model does the sorting on your own hardware. Because the result is plain Markdown, you can also open any note and edit it by hand — your edit wins.

Request early access All use cases