Memory that never erases
funes is the memory plane for AI agents: the half that remembers, paired with twinkl.ing, the harness that acts. It keeps markdown as the source of truth: full-text, vector and graph retrieval fused into one ranked answer, over files that stay yours.
To think is to forget differences, generalize, make abstractions. In the teeming world of Funes there were only details. Borges, Funes the Memorious
npm i -g @funes-tech/cli@alpha
Alpha, on the alpha dist-tag. ~393 MB installed; the first reindex takes about 70 seconds while the embedding model downloads.
Three arms, one entry
RecallFull text
FTS5, title-weighted and unicode-aware, so non-English notes ride the same arm.
Vector
1800-character chunks with 200 of overlap, so a detail buried deep in a long document is still reachable.
Graph
A bounded walk over the wikilinks and typed frontmatter edges you already write.
Fused by rank, not score (Reciprocal Rank Fusion), then adjusted by trust, by zone, and by an exact-name boost, with near-duplicates collapsed.
The index is disposable
SupersessionSupersession and tombstones live in the markdown frontmatter, not only in the database. Delete the index and rebuild it and you get the same state back. Nothing is destroyed to record a change: the old row is struck, and the new one entered beneath it.
An example entry, not real data:
Three commands
Quickstart-
Point it at a folder of markdown. No config file, no init step.
funes reindex --vault ./notes -
Ask it something.
funes query "what did I decide about the roof" --vault ./notes -
Give an agent access over MCP. Eleven tools.
claude mcp add funes -- funes mcp --vault ./notesAgent writes land in out_memory/<id>.md as ordinary markdown, recorded untrusted. Trust is stamped by the server and never accepted from a tool argument; promoting a memory is a separate human act.
What it measured
Evidence- MRR
- 0.873held-out slice
- hit@5
- 0.952not precision
- Fixture
- 63judged queries, frozen
Read that carefully. hit@5 asks whether the right document appeared anywhere in the top five. It is not precision, and it is a much easier question. Judged precision on the same fixture is lower.
The fixture is one person's vault, so these numbers describe that corpus, not yours. They are published anyway, with the caveat attached, because a benchmark you cannot interrogate is worth nothing.
What is not in the box
Limits- Alpha. Interfaces will move.
- One backend. libSQL. A Postgres tier exists in the source but is not in this build and has never run against a live cluster.
- Bun-first. The CLI is tested on Node ≥ 22, Linux and macOS. Windows is unsupported. No daemon or HTTP serving faces ship in this package.
- npm 11 will ask to approve install scripts for the native dependencies. That is npm's supply-chain default, not something funes requests.