Blog · 8 September 2026 · 2 min read

Introducing esfis

A local memory, shared by every assistant you use. Why we built it, what it does today and what we have decided not to do.

Every assistant you use keeps a private notebook about you. Claude has one. ChatGPT has another. Cursor has a different one for each project. They do not talk to each other, none of them is yours, and all of them forget the day the vendor decides they should.

We think that is backwards. Memory is part of who you are. It should live with you, on your machine, and every assistant should look in the same place.

What esfis is

A small engine that runs on your machine. The assistant you already have open writes to it directly: it reads the conversation, decides what is worth remembering and stores it. When you ask it something else later on, esfis hands back only what is related.

  • Local. A SQLite file in ~/.esfis, vectors computed on the device itself, and no account.
  • With a memory for time. Every fact carries a date. When your life changes, the old fact is superseded, not lost.
  • Transparent. Every change is a line in a log.jsonl sitting next to the database. You can grep it.

What it is not

It is not a chat, it is not a notes app and it does not want to replace your assistant. It is the layer underneath all of them.

We also decided early on that there would be no cloud-only version. If a feature can only exist with our servers in the middle, we ask ourselves whether it should exist. Sync will come, because some people have two laptops, and it will be end-to-end encrypted because we do not want to be able to read it.

Where we are

Today esfis is a macOS app, a command line and an MCP server, and all three are the same binary. We have not yet measured it against any long-conversation benchmark, and until we do you will not find a single number on this site claiming it beats anything.

./build-app.sh
claude mcp add --scope user esfis -- ~/.esfis/bin/esfis --mcp

That is the whole installation. Tell one assistant something about yourself, open another one and ask it. It already knows.

What comes next

An index, because right now the ranking walks the whole database on every question. A way of knowing when nothing should be retrieved at all. And Linux and Windows, which are not possible yet because the vectors come from the models macOS ships with. We will write it all up in the changelog; or write to us — we read everything.

Update, 14 September: this post introduced esfis as a memory for every assistant. A week later we define it as the context layer that is yours, with spaces, per-assistant policies and a compiled CLAUDE.md. We explain why in Context, not memory.