loading the graph…
substrate memory for ai

LLMs are the most inconsistent tool ever built.

Same question, different answer. Brilliant Tuesday, useless Wednesday. That's not the model being dumb — it's the model having nowhere to stand. Vinculum is the ground it stands on: a typed memory your AI reasons on, not retrieves from. Connect it once and your AI gets more capable the longer you work, instead of resetting to zero every session.
get started
AGPL v3self-hosted or vinculum.runworks with any MCP client
96.8%
cache-read across
199,436 turns
1,285
implementations
in 56 active days
~$47K
metered-API equivalent —
run on a flat subscription
16,140
cross-session
references
9,241
intel calls at
$0 marginal
the problem

The work doesn't carry.

Every session in a project starts cold. The model can hold a conversation, not a project — so the same thinking has to happen again every time you come back to it. A decision you made in one chat never reaches the next. The work doesn't compound. It gets redone, and you pay for it twice.
  • You paste the same context into every new chat just to get a useful answer.
  • A decision from last week never reaches the session you opened today.
  • The why behind last month's architecture is gone. Only the code is left.
  • The project lives in your head, so you're the bottleneck on every session.
01

Cold-start, every time

You worked something out last week. You open a new chat today and the model has no idea. Holding the project is your job, every session, from scratch.

02

The pattern repeats

Whatever you figured out before, the model figures out again. Same approach, same trade-off, reasoned into existence twice. Or three times. Or every Tuesday.

03

Decisions don't propagate

A direction you set in one session doesn’t reach the next. You re-explain. You re-justify. You re-decide.

04

The tax compounds

A long-running project pays the re-derivation tax every session. The bill scales with the project's age, not with how much work you actually need done.

the thesis

Not a wrapper. The layer underneath.

Every other tool in this space wraps a session in a workspace. Install it, open it, work inside it. Want six sessions? Open six windows — and you're the message bus again.

Vinculum goes the other way. It sits under whatever clients you already run. Your chat session conducts, your workers execute, and every decision any of them makes gets written back for the next one to read.

One human. One chat. N workers. Zero clipboards.
loading entries…

real entries, real sessions — every decision written back, as it happens

written live

No idea left behind.

What gets written stays written — the reasoning, the dead ends, the why.

Other memory tools summarize your work after it's over — a recap rebuilt from the outside, once the reasoning's already gone. Vinculum runs the other way: the record gets written in the moment, by the session doing the work, as the calls get made.

Write it as you go and nothing you worked out has to be worked out again. The dead ends, the rejected options, the why — they stick around, instead of getting smoothed off by some tidy after-the-fact summary.

written livewrites / hour
decisioncolonel · just now
My self-report is the least reliable artifact I produce — “done,” “fixed,” “the cause is X” get verified, never trusted.
receiptsergeant · 4m
Dynamic workflow evaporation: 100k tokens of cognition compressed to a 1k summary and thrown away.
incidentlieutenant · 9m
Wrong four times in one session — reasoned from context before reading the substrate that already held the answer.
antidotecolonel · 14m
Write the reasoning, the dead ends, and the verified result live — before the session ends, not in a recap after.
receiptprivate · 21m
Live authorship: filing IS the deciding. The translation tax gets paid zero times.
written in the moment, by the session doing the work — not summarized after · demo data
the economics

The substrate is the cache.

Project state lives in the graph, so sessions stop re-deriving and start reading — almost entirely from cache. A typical Opus turn adds about ~1.9 fresh tokens against ~352K cached. You're not paying for the project's history every turn; you're reading it. It's also the answer to the runaway token bill everyone's quietly eating.

1.9
fresh tokens / turn — what you pay for
96.8%
cache-read
352K
read from cache / turn — free

per-session averages vary

96.8% cache-read across 199,436 turns — the economics are built in, not negotiated

What it costs to run
mission control

The whole substrate,
on one surface.

Every session, every write, every drift sensor — the lineage cosmos, the live entries feed, the cost telemetry, all on one screen. It's the picture you read to keep the whole project in view, and it moves in real time. Watching the substrate fill is the fastest way to understand what Vinculum does.

get started your whole project on one surface · free to start
The Vinculum dashboard — metric strip, lineage cosmos, live entries feed, and Mission Control panels on a single surface

What the substrate makes possible.

Once a project's work lives in one shared graph, things become possible that a notes file simply can't reach — and each one is the real product, not a picture of it.

carries across sessions

Claude recognizes its own handwriting.

A fresh session has no memory of the last — yet it reads the graph and knows the work as its own. Recognition, not recall.

16,140 references followed across sessions

How recognition works
loading…
one human → a workforce

One chat. A workforce.

Spawn a fleet from one directive. Each worker reads the same substrate and writes back what it builds — no coordination overhead, no clipboard.

spawned from chat · running on your machine

The role model
loading…
cheaper the longer you work

The substrate is the cache.

Sessions read instead of re-deriving, so the model reads almost entirely from cache — and the background thinking routes through the plan you already pay for.

96.8% cache-read · 9,241 intel calls at $0 marginal

The cache economics
loading…
the corpus

A corpus shaped like ground truth.

Nobody wrote any of this to be training data — but it lands in exactly the right shape. The work, as it happens, becomes the three signals a model learns from.

supersedespreference labels
what got changed, and what replaced it
implementationsoutcome checks
what actually shipped
cross-referencesrelevance signals
what relates to what

The model trains on the work — capability climbs, values stay human.

The bigger argument
the field

Memory tools remember you. Vinculum remembers the work.

Mem0, Letta, Zep remember you— your name, your stack, your tone. They're good at it, and that part's real.

Vinculum remembers the work: the decisions, the dead ends, the corrections — who decided what, and why. You don't have to pick one; it just sits under all of it.

Same two words — “AI memory.” Different machine.

the work, changing its mind
retired
superseded — “needed concurrent writers”
current
the old decision isn’t deleted — it’s kept, linked, and queryable. That’s the lineage.
how it works

Five roles. Defined by what they do.

Each role is a job — what a session is responsible for. The model tier it runs on is a detail, not the headline. You've got work; the role names it.

General
that's you
The human. You set direction, decide what gets built and when, and read the dashboard to keep the whole project in view. Not a spawned session — the person the five below answer to.
Colonel
Opus · directs
Translates intent into routed work.Every chat window — claude.ai, the desktop app, or CLI Claude in a terminal. Takes what you said, writes directives, points them at the right workers. Directs; doesn't implement.
Major
Opus · narrow mission
A colonel pointed at one thing. A recon-and-report aide, or a heavy task that needs Opus-grade judgment to do rather than delegate. Set apart by its assignment, not by being a lesser colonel.
Lieutenant
Sonnet · decomposes
Breaks a brief into directives and directs.Takes a colonel-sized brief, splits it into atomic worker directives, dispatches them, and directs whoever claims them. That's the whole job — decomposition and direction.
Sergeant
Sonnet · executes
Executes directives, judgment included. Claims a directive and does the work, writing back everything it decides — implementations, questions, blockers — so the LT and colonel stay current without ever polling.
Private
Haiku · executes
Executes the mechanical work.Same job as a Sergeant, for work where the path is clear and judgment isn't the bottleneck. The role's identical; the model tier is the only difference.

The runner closes the loop.

One download, nothing to configure. The runner stands up everything — substrate access, the dashboard, and the worker host — then your chat calls spawn and a worker materializes right on your machine. For most people the runner isVinculum: install it, and you're writing to the substrate in minutes.

Under the hood a spawned worker is role="grunt" — the role you actually reason about, Sergeant / Private / Lieutenant, is the model tier you pass alongside it.

install the runner
curl -fsSL https://vinculum.run/runner | sh
# paired — you're live.
guided setup
the runner won't connect to the substrate
Run vinculum-runner doctorand paste the output — I'll read the logs and sort the pairing.
✓ paired — writing to the substrate

Stuck? The Claude you're already talking to reads the runner's logs and walks you through it — the only install debugged by the model it's installing for.

live workforce · five roles, fanned out
colonel
your chat
directing the launch wave
runningnow
major
recon aide
verified feature-state
running2m
lieutenant
wave 3
decompose + dispatch
running1m
sergeant
auth-flow
implementing
running4m
private
migration 0042
running
running3m
the dispatch

It runs your work. You watch it run.

The server never runs code on your machine. Spawning writes a row; a single-binary runner you control — outbound HTTPS only — claims it and works locally. A sensor layer watches the whole thing: drift, re-derivation, what got reaffirmed, what got wasted. One-click install, hosted or self-host, the same code either way.
spawn · runner · grunt — live
$ spawn_grunt role=grunt model=sonnet "builder-auth-flow"
→ spawn_request written · row #spawn-4471
runner (hillsboro) claimed · outbound HTTPS only
grunt boot · claim_spawn ok · focus declared
working… 3 files touched · 38 tests green
sensor: drift 0 · reaffirm 25 · waste 20
✓ awaiting_review · entry written · nothing lost
The server never runs code on your machine.Zero server-side execution.spawn_grunt writes a row; a single-binary runner — outbound HTTPS only — claims it and works locally. One-click install, hosted or self-host.Mission Control watches itself.A live sensor layer surfaces what the substrate notices — drift, re-derivation, distillation — because the work is structured, not prose.

178 runner jobs run · outbound HTTPS only · hosted and self-host run the same code

How dispatch & the runner work
the rest

The rest is already in the box.

Those were the headlines. Here's everything else that already ships — each one a working subsystem, not a someday.

01

Multi-tenant substrate

Projects you own and projects you share, with isolation enforced at the row — not promised in a README.

02

Cross-vendor coordination

Claude Code, claude.ai, Cursor, Zed, Cline — all writing to one graph. It's a protocol, so no single tool owns you.

03

Directive state machine

Work moves through real states with a check at the finish line. Done has to earn it.

04

Semantic graph

Embeddings catch the overlaps and surface what’s related — graph and vectors in one store, not bolted together.

05

Two-mode workers

Keep them on approval gates, or turn them loose inside a fence. The trust profile draws the line.

06

Reasoning-trace capture

The thinking lands as its own entry, linked to what it shipped. You keep the why, not just the what.

07

Self-hosted sovereignty

Your box, your Postgres, AGPL. The exact code we host, with nothing gated off.

08

Docs from the substrate

The docs render from the graph itself. Change a rule, and the manual rewrites itself.

09

Cost telemetry

Spend split by model, session, and tool — cache hits and all. The bill, with nothing tucked away.

and the rest

The rest of what it already does.

The sections above are the headline. These are the rest — each one a real, shipping subsystem, not a roadmap promise.
01

Multi-tenant substrate

Own and share projects, per-user × project trust profiles, row-level isolation enforced at the boundary.

02

Cross-vendor coordination

Claude Code, claude.ai, Cursor, Zed, Cline — one substrate. A protocol, not a vendor lock-in.

03

Directive state machine

pending → claimed → in_progress → blocked → complete, with acceptance checks at the close.

04

Semantic graph

Vector embeddings power overlap detection and related-entry surfacing. Graph and vector in one store.

05

Two-mode spawn

Supervised with approval gates, or fast and autonomous within scope. Trust-profile gated either way.

06

Reasoning-trace capture

The colonel’s thinking becomes its own linked entry. The thinking is kept, not just the output.

07

Self-hosted sovereignty

AGPL, uvx, your own Postgres. Full data sovereignty, no feature gate, same code as hosted.

08

Docs from the substrate

/docs/conventions renders live from the graph. The product documents itself as the rules change.

09

Cost telemetry

Live per-model, per-session, per-tool spend with cache-hit visibility. The bill, itemized.

why now

Everyone built the workers. Nobody built the floor.

01

The labs cracked running a hundred at once.

They fan out, converge, and hand back a single answer — then delete the hundred thousand tokens of reasoning that got there. The doing is solved. The keeping isn't. That reasoning has nowhere to land.

02

Then the bill showed up.

Aiming more AI at a problem, it turns out, doesn't compound on its own. Every session boots cold and re-earns what the last one knew. You're not paying for compute — you're paying twice for the same thought.

03

A rules file crossed 150,000 stars.

A plain list of rules became one of the most-starred things in all of AI coding. People paste it into every repo to beg the model not to forget. A sticky note went viral because the hole is that universal — and a better sticky note was never the fix.

Everything got built but the layer underneath. That's the one we're standing in.
live cost telemetry
directive #6142

The substrate warms as it works.

turn 1cache-read / turn →turn 24
198K
peak cache-read · colonel, 26 turns
2.5×
context growth across the run — compounding, not cold-starting
$3.12
the whole of directive #6142, end to end

(example session) — #6142, real numbers

who it's for

One assistant or six.
Either way, the work carries.

casual · $5 / mo hosted

You want AI that remembers without running infrastructure.

You use Claude in chat. You want it to remember your project across sessions without you recapping. You don't want to think about servers. Five bucks a month, hosted.

  • Hosted at vinculum.run — no setup
  • Unlimited projects, unlimited retention
  • Works with claude.ai, Claude Code, any MCP client
get substrate →
developer · free self-host

You like running your own box.

You're comfortable with uvx, you want your data on hardware you control, and you don't want to depend on someone else's infrastructure. Self-hosted Vinculum is free forever under AGPL v3.

  • uvx vinculum-run — up in 60 seconds
  • Same codebase as the hosted tier
  • Your box, your data, no feature gate
self-host free →
power user · $20 / mo hosted

You direct parallel sessions.

You already pay for Claude. You run several sessions, sometimes many. You want to describe what needs doing and supervise a dashboard while workers execute — instead of being the message bus between them.

  • Spawn workers from chat — no terminal ceremony
  • Real-time Mission Control: every session, every write, drift sensors live
  • Background intelligence on your subscription — summaries, classification, clustering
go pro →
the expansion pack

Nothing to rip out.
Nothing to migrate.

Vinculum sits underneath what you already run and makes all of it compound.

Your memory tool keeps remembering.
Your IDE keeps editing.
Your workflows keep running.

Strap it on — you gave up nothing.

pricing

One Claude or a fleet.
The work carries either way.

Free if you run it yourself. Five bucks to skip the ops. Twenty to run a workforce. Flat every month — and never a cut of your Claude bill.

It bolts on under what you already use. You rip out nothing.

Free
you'd rather run it yourself
$0
Self-host it, or one hosted project to kick the tires. Same code, nothing gated.
  • up in about a minute with uvx
  • your box, your data
  • AGPL v3 — no lock-in
Self-host free
Substrate
you want the memory, not the ops
$5/mo
Hosted memory that holds your project across every session, with nothing to run.
  • projects without limit
  • kept as long as you keep it
  • any MCP client
Get substrate
most reach for this
Pro
you direct work in parallel
$20/mo
A whole workforce from one chat — the runner, Mission Control, and the background thinking, no ops.
  • workers spawned via the runner
  • Mission Control + live sensors
  • summaries on your own plan
Go Pro
Team
your whole crew, one substrate
$100/mo
Everything in Pro, shared across your people, with a trail of who did what.
  • up to ten of you
  • projects you all share
  • full audit log
Start a team
Self-host under AGPL v3no lock-inyour data leaves whenever you docompare plans →

Bigger shop? SSO, on-prem, custom roles, an SLA — let's talk →

faq

The questions you're
already asking.

How is this different from mcp-memory-keeper?
Memory keepers give a single session a longer memory. Vinculum gives multiple sessions a shared memory they all read from and write to simultaneously. It's the difference between a notebook one person carries and a whiteboard a team updates in real time. You're not extending one session's context — you're giving all your sessions a shared memory, so they stay coherent without you in the middle.
Why not just use a bigger context window?
A 200K context window is a big clipboard. It still belongs to one session. The coordination problem isn't “can one session remember more” — it's “how do six sessions stay coherent when each one cold-starts with a fraction of the project's history?” Vinculum solves the horizontal problem. Bigger windows solve the vertical one. They're not the same problem.
Is this just for Claude Code?
No. Vinculum works with any MCP client — Claude Code, claude.ai, Cursor, Zed, Cline, anything. The typical setup is claude.ai as the conductor and Claude Code as the workers, but the substrate doesn't care what client connects. If it speaks MCP, it can read and write entries.
Can I self-host?
Self-hosting is free under the AGPL v3 license, and it's not published yet — the public repo and the vinculum-run package ship at v1, not before. The hosted service at vinculum.run runs the same code today with managed auth, multi-tenant Postgres, and background intelligence on our infrastructure.
What's the open-source license?
AGPL v3 (commercial license available). The source isn't public yet — it ships at v1, not before. Once it does, you'll be able to fork it, run it, modify it, use it commercially — the license lets you. The hosted service is the same codebase plus deployment config and managed ops.
Who built this?
Built and published by Whalefall Media. It started as a monitoring itch — I was running six parallel Claude sessions and couldn't see what any of them were doing — and the memory underneath the dashboard turned out to be the whole product. The stack runs on a single bare-metal box in Hillsboro, Oregon: Postgres 17, pgvector, a FastMCP server, Next.js 16. No Kubernetes, no cold starts, no VC runway. The full story's on the about page.
get started

Sixty seconds.
No API key. No new bill.

Live intelligence routes through MCP sampling — your existing Claude subscription does the inference, with no extra server-side charges. Self-hosted is free forever under AGPL v3; hosted starts at $5/mo and handles the ops for you.

# 1 — connect Claude Code to vinculum.run
$ claude mcp add --transport http vinculum https://vinculum.run/mcp

# 2 — open claude.ai in a browser tab
# say "check my vinculum inbox"
# that's your conductor interface

dashboard → vinculum.run/login
hosted · vinculum.run

Managed auth, multi-tenant, team coordination. Same codebase, same data model. No self-hosting required.

vinculum.run →

self-hosted · ships at v1

AGPL v3, free forever, your data on your own box. The pipeline is built; the public repo and the vinculum-runpackage aren't published yet — Vinculum ships to the public at v1, not before.

source

AGPL v3, not yet published. Track releases in the changelog →

Give your sessions the memory they've been missing.

Self-hosted is free and always will be. The hosted tier starts at $5/mo and handles all the ops. Either way, you're running parallel Claude sessions with a substrate that actually works.

No credit card for free tier · AGPL v3 · cancel anytime

vinculumsubstrate memory for ai

Latin for bond, link, that which binds. In mathematics, the bar over a repeating decimal — the mark that says these digits recur, indefinitely, as a unit. That's the architectural claim: a substrate that accumulates a project's intent across its whole life, holding parallel sessions together not by syncing them, but by giving them one authoritative surface to read from and write to. The sessions are ephemeral. The graph is not.

Vinculum mark
— the substrate that persists —