Give Your Coding Agents a Memory You Own
Coding agents start from zero on every new session and machine, losing the reasoning behind past changes. Earlier work argued that agent traces are the missing memory, but raw session logs remain an archive: they lack indexing, retrieval, ranking, and provenance.
Funes is a single binary that parses existing agent traces into a uniform turn-and-block shape, chunks them, embeds them with a pinned local model, and stores them in a local Lance dataset. It requires no ML runtime for its default inference backend, and embedding and reranking happen locally. Installation is via curl, and adding an agent is one command (`funes add claude`, also supporting Codex, pi, and Hermes). Indexing is incremental, with new runs adding turns without re-embedding full history, while older content backfills in bounded steps.
Once installed, the agent can automatically recall relevant memory during a conversation, naming the source session. `recall` returns original text, not summaries, with exact provenance (agent, timestamp, session, turn), and each result includes a `get` command opening the full turn and surrounding context.
Under the hood, queries combine vector and BM25 search, fuse rankings, rerank candidates with a cross-encoder, reweight by recency, and attach neighboring chunks. This gives funes three properties: one memory shared across agents, recall that spans histories from Claude Code, Codex, pi, and Hermes, and ownership of memory data — optionally traveling to a private-by-default Hugging Face dataset.