free · local · open source · no account

Your agent keeps re-proposing the thing your team killed.

lema redirects it — mid-session, with the decision and the why — so settled questions stay settled. Ten minutes, one command, your repo.

claude· lema-mcp attached
working
settled stays settled

how it works

Three commands stand between your agent and a settled mistake.

Nothing hidden. lema writes plain files into your repo, your agent asks before it acts, and you record as you correct.

1init
$ npx lema-mcp init

Writes the wiring, in the open.

One command, no account. Every file it touches is listed and yours to read.

+.mcp.jsonserver entry
+AGENTS.mdask-first rules
+.lema/hooks/PreToolUse gate
2ask
check_decidedsearch_decisions

Your agent asks before it acts.

Served as 240-char claims with pointers — not documents dumped into the context window.

⊘ mem0 — ruled out. memory belongs to the decision graph. → d_3a6bc0 · drew · 06-02
3record
one-tap capture

You record as you correct.

The moment you fix the agent, the decision is captured — chosen is what you did, rejected is what it proposed.

chosen◆ native fetch
rejected⊘ node-fetch

The ask isn't a line in a prompt file the model can ignore — it's a PreToolUse hook that fires before the edit lands. Instructions are advisory; hooks are enforcement. And the why is read from your ADRs, PR threads, commits, and issues — not just the rare repo that kept ADRs.

why this is different

The why-not is written down nowhere.

Code records what you kept — never what you tried and killed, or why. lema captures rejected alternatives at the moment of deliberation, then enforces them on every agent. And when someone hits a closed decision, it routes them to whoever owns it — supersede on purpose, not by accident.

“What breaks if we delete this — and why did we build it?” No search tool can answer that. A captured decision graph can.
the gap information leaves behind

smarter context, not blunt caps

The memory layer we had to build anyway.

To serve verdicts at decision time, lema had to become a context memory — atomized claims, pointers instead of copies, retrieval inside the session. That substrate is the second product: everyone else hands your AI a filing cabinet; lema hands it the verdicts — and the map to the cabinet, opened only on demand.

judgment — the identity

What you decided, killed, and why.

Decisions, ruled-outs, supersession, the guard — served back to every agent and every engineer at the moment of the next decision.

runs on
context memory — the substrate

Claims ≤240 chars. Pointers, never copies.

Content-agnostic by construction: decisions today — docs, repos, PRs, and connected sources next. Your corpus stays where it lives, under your permissions.

one build, two layers — judgment keeps the memory accurate; memory makes judgment affordable to serve.

Doomed arcs

shipping today
an hour of tokens down a road the team closed in March — explore, build, get caught, unwind.
redirected at the first tool call. the most expensive waste in agentic work, cut at its cheapest point.

Cold starts

shipping today
every fresh session re-reads the repo to re-learn constraints it was told last week.
settled constraints arrive as claims — hundreds of tokens, not tens of thousands.

The flat tax

shipping today
a 2,000-line CLAUDE.md pasted into every request, just in case any of it matters.
standing judgment moves from push to pull — paid only when it’s relevant.
measured, not marketed

The savings claim ships from the harness — or it doesn’t ship.

In our adversarial research sweep, 21 of 25 vendor savings claims failed verification. The 90-percents died. The research direction stands — bounded memory beats transcript replay (arXiv:2601.11653, preprint) — but the only number we’ll print is ours: tokens-per-completed-task from the open enforcement-lift harness, with and without the graph attached, method public.

tokens-per-task — lands in the public benchmark

the whole product

Launching small. Built whole.

The wedge ships today — the redirect, free and local. Every other surface below is the same graph, growing.

shipping today early access upcoming
MCP Tool CallAgent surface
JOE
Joe
Can we switch the analytics store to MongoDB? Postgres feels slow for the time-series queries we're running on the renewal dashboard.
C
Claude
search_decisionsquery: "mongodb analytics database"
1 result from lema
ADR-0012Analytics Database Strategy● accepted
MongoDB evaluated Oct 2023, ruled out due to EU data residency requirements — analytics data must remain in EU, and our Atlas tier doesn't support region-pinning at the required tier. TimescaleDB on Postgres is the accepted path.
MongoDB has already been evaluated and ruled out for the analytics store — ADR-0012, Oct 2023. The hard constraint is EU data residency: your Atlas tier can't guarantee region pinning. If the query performance issue is real, look at TimescaleDB hypertable configuration before switching databases.

The redirect

shipping today

Never-reopen, live in the session — the wedge, working right now over MCP.

app.lema.dev/decisions/0007
ADR-0007● accepted

Event-sourced deliberation model

Store decisions as an append-only event stream — proposals, concerns, and resolutions — so we can replay how we got here, with the rejected options kept first-class.

Ruled out: a flat audit log — it captures the diff, not the why, and the agent kept re-proposing the killed option.

Deliberation4 events
no open concerns
Andrew proposed4d
Dana concern4d
Why not a simple audit log, or a diff on the doc?
Jordan resolved3d
We need the rejected options first-class — a diff won’t do.
Andrew accepted3d
Comment, or type / for actions…

The decision record

early access

Argue it out once — the why, and what you ruled out, stay permanent.

“We are drowning in information, while starving for wisdom.”

— E. O. Wilson, Consilience (1998)

engineering first. the schema is industry-neutral by architecture.
MIT

lema-mcp is open source — the graph is yours.

Runs local, no account, no lock-in. Works with any MCP client.

Claude CodeCursorCopilotgithub.com/lemahq

pricing

Start local and free. Paste a key when you want recall.

The redirect works the same at every tier. The paid line adds hosted memory and a pooled graph — it never takes anything away.

Personal
free
Local, one repo, forever. No account, no card.
  • capture + redirect, fully local
  • one repo, the graph on disk
  • any MCP client
  • no account, no telemetry
most engineers
Personal Pro
$12/ mo
The same UI, one pasted key — hosted recall and history that follows you.
  • everything in Personal
  • hosted recall + full history
  • sync across machines
  • the same UI, one pasted key
paste a key →
Team
early access
A pooled graph — redirects fire across every member's agents.
  • everything in Pro
  • pooled graph across the team
  • redirects across every member’s agents
  • governance: who may supersede
join the design-partner list
nothing local is ever crippled.