Deterministic memory for Claude Code & Obsidian

Connects the dots.
The same way, every time.

The only agent memory that connects the dots across your [[links]]deterministically. Same note-chain every time, fully auditable, ~99% fewer tokens than pasting your whole vault. No GPU, no vector DB, no LLM in the loop.

Get started See the comparison
−99%
tokens vs. pasting the whole vault
~5k vs ~482k · real 356-note vault
100%
multi-hop / link-only answers reached
flat search (BM25 & dense) scores 0%
0/0/0
in the retrieval loop
GPUs · vector DBs · LLM calls
re: Karpathy's LLM Wiki

You know Karpathy's LLM Wiki — markdown [[wikilinks]], no vector DB? WikiMoth is the deterministic retrieval layer for that pattern: it walks those links in code — no LLM in the loop — returns the same note-chain every time, and shows you exactly which notes fed an answer.

How it works

Retrieve, compact, read — then capture back.

No index to build, no model to call. Your [[wikilink]] notes are the memory.

01Retrieve

Follows your authored [[links]] hop by hop to the notes flat search can't reach.

02Compact

Returns just the relevant note-chain — about 5k tokens instead of 482k for the whole vault.

03Read

Hands the agent plain markdown plus the exact note-chain behind it — auditable, same result every time.

↻ capture loop

Deterministic, API-free auto-capture writes new notes back as markdown and links them in — no LLM in the loop, nothing to re-index.

Comparison

It matches the basics. The edge is the combination.

Nobody else checks every box at once — connect-the-dots and determinism and audit and plain markdown.

Capability matrix WikiMoth vs. flat search vs. RAG vs. LLM-curated memory
yes no ~partial / n.m.
Capability
WikiMoth
BM25
Vector RAG
claude-mem
LLM WikiKarpathy
Connects the dotsmulti-hop over authored [[links]]
*
Deterministic retrievalsame query → same result
No LLM call to retrieve
~
Auditable note-chain
~
~
Direct-lookup recall@8real vault
1.00
1.00
1.00
~
~
No GPU / no vector DB / no index
~
Plain-markdown storeopen in any editor
~
Token-minimal vs dumping the vault
−99%
−99%
−99%
~
Deterministic, API-free auto-capture

* LLM Wiki follows links, but the LLM does the navigating — agentic, non-deterministic, one LLM call per retrieval.

WikiMoth uniquely combines connect-the-dots + determinism + audit + plain-markdown. It matches flat search on the basics — the edge is the combination, not higher recall. Complementary to Karpathy's LLM Wiki: richer curated pages there, deterministic retrieval here.

By the numbers

Measured across real vaults — not synthetic data.

−99%
tokens vs. pasting the whole vault
~5k vs. ~482k tokens on a real 356-note vault — same answers.
0% 100%
multi-hop / link-only answers
Flat search — BM25 and dense — scores 0% on these. WikiMoth follows the links to reach them.
5 1
distinct result across k=5 runs
Five repeated runs collapse to one identical result. LLM-based memory varies run to run.
1.00
recall@8 on direct lookups
On the basics it's a tie — 1.00 = 1.00, on par with the best flat retriever. The edge is the combination, not the recall.
0 / 0 / 0
in the retrieval loop
GPUs · vector DBs · LLM calls. None — retrieval is pure deterministic link-walking.

Two lines and you're running.

Point it at an existing Obsidian vault or your Claude Code notes. No services to provision, no embeddings to compute.

terminal
$ pip install wikimoth
$ wikimoth install