In development. Early access

Your projects.Your context.Your agents.

Claude Code, Codex, Cursor or any other agent that speaks MCP work from the same decisions, instructions and project knowledge. Each one gets exactly the part that concerns it.

Works with

  • Claude Code
  • Codex
  • Cursor
  • Copilot
  • Grok
  • Ollama

The problem

Every agent starts from nothing.

esfis decides which context each agent gets, and keeps a record of where it came from.

What it looks like

One decision in Claude. Codex already knows.

Claude picks PostgreSQL for the API. esfis stores it with a date and a source, and the next day Codex has it.

  1. 1Claude decides

    Claude Codeopus
    › Postgres or Supabase for the API?
    ● weighing the options…
      PostgreSQL: it is already in production
      and the migrations are yours.
    ◆ esfis · save the decision
  2. 2esfis stores it

    esfisdecision

    The API runs on PostgreSQL. Supabase ruled out.

    space
    project1
    source
    Claude Code
    date
    14 Sep 2026
    status
    current
  3. 3Codex receives it

    Codexnext day
    › build the users model
    ◆ context · decision
      The API runs on PostgreSQL
      Claude Code · 14 Sep
    ✓ db/migrations/001_users.sql

How it works

Exactly the context that belongs there.

With a source, an expiry and permissions. Nothing from another project.

  1. 1
    Agents write to it

    When Claude makes a decision, or you give it an instruction, it saves it to esfis over MCP. Nobody has to open a file.

  2. 2
    esfis keeps it in order

    Each item carries a type, a space, a source, a date and an expiry. When it stops being true, it stops being delivered.

  3. 3
    Each agent gets its own

    Codex works in project1, so it gets the context of project1 and your personal context. Nothing from project2 ever reaches it, however much that project also talks about databases.

  4. 4
    You can see why

    Every delivery is recorded. esfis --why tells you what went in, what stayed out and the reason.

Context, not memory

More than memory. Context.

esfis does not try to remember everything: it gives each agent what it needs to work on this project.

A preference of yours holds everywhere. A client's decision never leaves that client's space.

Already have a CLAUDE.md or an AGENTS.md? They still work: esfis can write them for you with --compile.

Memory

“I prefer TypeScript.”

True for you, anywhere.

Project context

  • technologyNext.js and PostgreSQL
  • decisionSupabase ruled out: the migrations are ours
  • instructionEndpoints follow /api/v1/resource

True inside project1. Decided by Claude Code yesterday.

The app

A macOS app to run it all.

Projects, agents, terminals and tasks, all around the same context.

What the app gives you

Local by default

Your context is yours.

It is stored in ~/.esfis, on your disk. The MCP server opens no ports.

You decide which agent sees which space, and afterwards you can check what each one received. No account needed.

No agent should ever start from nothing again.

The esfis app is still in development.