Esfis

Memory that infers,
updates and forgets.

You hand Esfis what your assistant sees: conversations, files, URLs, notes. It turns them into facts, connects the facts to each other and to time, and gives them back as a profile, a search result, or a file the agent can grep.

What a memory is

Documents are what you send. Memories are what Esfis keeps.

DocumentsMemories
WhatThe raw input you sendThe facts Esfis extracts
ExamplesA chat log, a PDF, a meeting note, a URL“Alex is a PM at Stripe”
RoleSource of truth for retrievalPersonal and entity state over time
LifecycleYou add, update and deleteThe graph updates, extends, supersedes and forgets

One input becomes many memories. Each is atomic, carries enough context to stand alone, and is linked to what the graph already knew about that person, that project, that place. You define no schema and draw no edges.

ONE MESSAGE IN
Had a great call with Alex. He's enjoying the new PM role at Stripe,
though the payments work is intense. He moved to Seattle for the job,
Capitol Hill. Wants dinner next time I'm in town.

FOUR MEMORIES OUT
Alex works at Stripe as a PM                    · since 2026-08
Alex finds the payments work intense            · 2026-09-04
Alex lives in Capitol Hill, Seattle             · supersedes: Alex lives in Austin
Alex wants dinner when I'm next in Seattle      · open intent

Infers, updates, forgets

Infer

Facts are extracted with the surrounding context and a timestamp. Implicit information counts: “moved for the job” becomes a location fact and a career fact.

Update

When a new fact contradicts an old one, the old one is superseded, not overwritten. The history stays, so you can ask what you knew as of any date.

Forget

Facts decay by relevance and can be pinned or deleted by hand. Deletion is a commit too: audited, reversible until you purge.

Memory blocks

Some things should never depend on retrieval. Blocks are named, evergreen documents injected ahead of recall on every request: who you are, how you like to be answered, what you are working on this quarter.

~/.esfis/blocks/
├── persona.md      # how you want assistants to talk to you
├── facts.md        # stable facts: name, city, timezone, employer
├── projects.md     # what you're working on, updated by the observer
└── team.md         # who's who, shared with your Team space

Edit them from the app, from any editor, or let your assistant maintain them for you. Blocks are versioned like everything else.

Recall

Recall runs in four deterministic stages. Every stage is inspectable, and the whole cascade completes in under 50 ms on a laptop.

  1. Keyword

    Full-text search over facts and documents. Exact names, dates and identifiers win here.

  2. Meaning

    Local embeddings over the same set. Catches paraphrase and intent.

  3. Graph

    Expand one hop through linked entities and time. “Dinner in Seattle” pulls in Alex, and Alex pulls in Stripe.

  4. Rerank

    A small cross-encoder orders the candidates and trims to a token budget you set.

GET /recall?q=what+should+I+cook+for+Friday&budget=800

200 OK
[
  { "fact": "Dinner with Laura & Dani, Friday 9pm", "score": 0.94, "as_of": "2026-09-08" },
  { "fact": "Laura went gluten-free this spring", "score": 0.81, "as_of": "2026-04-12" },
  { "fact": "Dani doesn't eat shellfish",          "score": 0.77, "as_of": "2025-11-30" }
]

Try it

A sample store of twelve memories, the real cascade, running in your browser. Ask it something.

Keyword3 ms
Meaning12 ms
Graph8 ms
Rerank20 ms

    What feeds it

    Assistants

    Claude, ChatGPT, Cursor, Perplexity and any MCP client, through the observer.

    Files

    Markdown, PDF, plain text, email exports. Drop a folder, it stays watched.

    URLs

    Articles and docs you save. Readable text only, images ignored.

    API

    POST anything your own agents see. Same pipeline, same store.

    Where it runs

    SurfaceWhat you getStatus
    macOS appMenubar engine, memory browser, block editor, audit timelineStable
    MCP serverLocal stdio or remote HTTP with OAuth 2.1Stable
    CLIesfis recall, esfis log, esfis diffStable
    Browser pluginsChatGPT and Perplexity injectionBeta
    Linux / WindowsEngine and CLI, no app yetBeta
    iOSRead and pin memories on the goComing

    Our products