Skip to content
Mithrandir

Mithrandir

Code remembers what. Mithrandir remembers why.

The decisions behind your code live in Slack threads, meetings, and tickets, and vanish when people leave. Mithrandir permanently connects every piece of code to the reasoning that explains it.

mithrandir mcp · simulated session

you

agent · director clearance

vs intern · adds the incident thread and the decision to ship the workaround

  1. The outage traced back to a timezone conversion that assumed a fixed UTC offset.

  2. The original incident thread shows the team debated a full refactor vs. a cache-layer workaround.

  3. They chose the workaround: a major customer launch was 48 hours out, and the proper fix touched 3 services.

  4. The follow-up ticket to remove the workaround was deprioritized two quarters in a row. That context is why it resurfaced.

tool calls

search_decisions"DST bug" scheduling

trace_rationalepayments/cache_workaround.ts:12

get_contextclearance: director

  • 4 records assembled · full rationale · one hop from code

Simulated session over a fictional codebase. Pick a question, flip the clearance, and click any citation to open the record behind it. Or skip the recording: the live demo runs the same agent over a real codebase, no signup.

Your tools know what changed. None of them know why.

The workaround and the reason it exists live in different worlds. One is versioned forever. The other was archived with the channel.

payments/cache_workaround.ts

git blame

a41f9e3 maya 2023-03-14 if (tz === FIXED_OFFSET) {

a41f9e3 maya 2023-03-14 return cachedWindow(ts); // workaround

9c02b1d tomas 2023-03-14 }

7e55d20 priya 2022-11-02 const window = schedule(ts);

A diff, a name, a date. Not one word of reasoning.

#incident-payments

archived · aug 2023

maya · 14:02

“The proper fix touches three services. We don't have 48 hours.”

tomas · 14:04

“Ship the cache workaround. We'll document it after launch.”

The entire rationale. Gone when the channel was archived.

Six months later, someone new “cleans up” the workaround, and reintroduces the exact incident it was protecting against. The knowledge wasn't lost in the code. It was lost in an archived channel, a meeting nobody transcribed, a ticket nobody linked.

Every company is quietly forgetting why it made its most important decisions.

Two brains, one memory

Structure on one side, reasoning on the other, and a bridge that keeps them permanently in sync.

Understands your codebase the way a senior engineer does: files, classes, functions, and how they depend on each other. The structural spine of your company.

CALLED BY · 4

A CHANGE HEREarrow/arrow.py · Arrow.replace

DEPENDS ON · 3

WHAT CALLS THIS · WHAT BREAKS IF IT CHANGES · FROM THE LIVE DEMO GRAPH

Security your CISO can verify, not hope for

The uncomfortable truth about most enterprise AI: it filters answers, not access. Mithrandir is built the other way around.

Not a rule the AI follows

Others retrieve everything and then ask the model to be discreet. Prompt-level rules can be argued with. Mithrandir's access control isn't an instruction. It defines what the AI can reach.

Never in the context at all

Restricted information is never assembled into the model's context in the first place. No clever prompt, jailbreak, or paraphrase can extract what was never there.

Complete for each clearance

An intern and a director asking the identical question each get an answer that is complete for their access level, not an error, not a redaction, and never a leak.

INTERN VIEWREACHES 58 OF 80 SHOWN22 NODESDIRECTOR VIEWREACHES 77 OF 80 SHOWN3 NODESWITHIN CLEARANCENEVER ASSEMBLED

80 OF THE LIVE DEMO GRAPH'S 177 NODES · REACH COMPUTED, NOT DRAWN

A knowledge layer, not another chat window

Mithrandir isn't a destination your team has to visit. It ships as its own MCP server, a layer any AI tool can query mid-task: your everyday tools ask while they work, and get back institutional context that is semantically relevant and access-controlled for the person driving.

  • Claude
  • Cursor
  • ChatGPT
  • Gemini
  • Your internal agents

One integration point. Every agent your company runs gets a memory.

claude · mid-task

“Why does this retry cap exist?”

Capped at three since the June pilot. Finance flagged duplicate invoices. The full thread is available at your clearance.

answered · scoped to the asker

Save time and compute

Retrieval tools fetch everything and hope the model ignores the noise. Mithrandir instead treats depth as a dial. A shallow query stays among an anchor's structural neighbors in the Left Brain; go one Bridge deeper and the answer picks up the rationale, the decision that explains the code. You only pay for the reach you ask for, so the “why” is there when you want it and never a tax when you don't.

Structural questions stay in the Left Brain

“What calls this? What breaks if I change it?” are answered purely in code, a few cheap hops from the anchor. Nothing from the Right Brain is dragged in, because none of it is needed yet.

The reasoning is one crossing away

Ask why the code is the way it is, and the traversal crosses a Bridge into the permanent decision record. Linking code to the decision behind it is the thing document search can't do, and it's exactly one hop.

You pay for how far, not how big

A 200-person company and a 20,000-person one cost the same at the same depth. You pay for how far the answer reaches, a fact or the reasoning behind it, never the size of the graph.

Answer depth

code rationale- - bridge1 of 80 touched

Pick a depth and watch a real traversal sweep outward from its anchor across the live demo graph. Dim nodes were not touched at that depth. That's the compute you never paid for.

Fewer tokens. Better answers.

Same model. Same five questions. Mithrandir reached the answer with less than half the total token budget. It improved judged quality every time, too.

2.3 times
fewer tokensMedian across five code-reasoning questions
52.7 percent
less token usage75,595 tokens vs. 159,902 in aggregate
100 percent
of answers judged better5 of 5 beat the full-context baseline
75.6 thousand
Mithrandir tokensDown from 159.9k with the full-context baseline
14.28 out of 15
mean answer qualityCompared with 12.38 for the baseline
approximately 1.5 seconds
retrieval overheadUnoptimized PoC steady-state latency

PoC run · 29 July 2026 · claude-haiku-4-5 · ~32k-token corpus · blind LLM judge, mean of 3 runs · embedding and ingestion excluded

measured, not estimated

A different architecture, not a better index

Understands code structure (not just text search)

MITHRANDIR
Built on a structural model of the codebase
GLEAN
Document search
MICROSOFT COPILOT
Code-aware in IDE, no org-wide structural graph
NOTION AI
Not code-focused

Permanent decision record

MITHRANDIR
Immutable by design: nothing deleted or overwritten
GLEAN
Indexes live sources; not designed as a permanent record
MICROSOFT COPILOT
Bound to M365 retention
NOTION AI
Editable workspace pages: built for collaboration, not as a permanent record

Links code to the decision behind it

MITHRANDIR
Core function (the Bridge)
GLEAN
Not a design goal
MICROSOFT COPILOT
Not a design goal
NOTION AI
Not a design goal

Access control model

MITHRANDIR
Structural: restricted context is never assembled
GLEAN
Permission-aware search results
MICROSOFT COPILOT
Permission-trimmed retrieval
NOTION AI
Page-level sharing

Serves other AI tools mid-task (MCP)

MITHRANDIR
Native distribution model
GLEAN
Emerging connectors
MICROSOFT COPILOT
Oriented to Microsoft's own surfaces
NOTION AI
Locked to Notion

Based on each product's publicly documented architecture as of 2026. This table is about design choices, not marketing, and we're happy to be corrected.

The questions we'd ask too.

Something we didn't answer? Ask a founder directly →

Backed by ongoing research
at Carnegie Mellon University,
School of Computer Science,
Language Technologies Institute,
on the limits of determinism
and rule-following in LLMs.

Remember why.

Mithrandir is being built with a small group of teams, around the real workflows where their context keeps getting lost. Bring one of yours and shape v0 directly with the founders.

Not ready to partner? Join the waitlist for product updates and early-access invitations. No account, and no inbox noise.

By joining, you agree to our Terms and Privacy Policy.