Docs

Com funciona esfis 1.8, del primer projecte a la línia d'ordres. L'app encara és en accés anticipat: aquí hi ha el que fa avui, i res del que farà.

En aquesta pàgina

Què és esfis

esfis és una app de macOS per treballar amb els teus projectes i els agents d'IA que ja fas servir. No és una plataforma on hagis de portar res: funciona sobre les carpetes, els fitxers i les sessions que ja tens a l'ordinador.

Té tres peces:

Projectes
Carpetes teves. Cadascuna té la seva activitat, les seves tasques i el seu espai de context.
Agents
Els CLI de sempre —Claude Code, Codex, Copilot, Grok, Antigravity, Ollama— en terminals reals.
Context
El que el projecte ha de recordar, compartit entre tots els agents per MCP i desat al teu Mac.

La finestra té quatre seccions: Inici (projectes i activitat), Agents (els terminals), Memòria (el context) i Configuració. L'app, la línia d'ordres esfis i el servidor MCP són el mateix binari.

Els primers cinc minuts

  1. Afegeix una carpetaA Inici, «Afegeix una carpeta». Es converteix en projecte i en té l'espai.
  2. Obre un agentA Agents, tria'n un. S'obre a la carpeta, amb el teu PATH i les teves claus.
  3. Connecta el contextA Configuració, copia l'ordre del teu agent i prem Comprova.
  4. Torna demàInici et diu on ho vas deixar i què ha decidit cada agent.

L'ordre per connectar Claude Code, que és la més habitual:

claude mcp add --scope user esfis -- ~/.esfis/bin/esfis --mcp

Projectes

Un projecte és una carpeta. L'afegeixes des de l'app i esfis no la mou ni en canvia l'estructura. Tot el que hi passa —els agents que s'hi obren, les seves sessions, el context que s'hi desa— queda associat a aquella carpeta.

Cada projecte, el seu espai

Afegir la carpeta crea un espai amb el seu nom i el seu camí. Un agent que treballa a dins ja és al projecte: no cal dir-li res. Si un espai ja la conté (per exemple, el d'un client que agrupa diversos projectes) o ja n'hi ha un amb aquell nom, esfis no el toca; només li posa la carpeta si encara no en tenia cap.

Des del terminal és el mateix:

esfis --space-add projecte1 --path ~/Documents/Projecte1

Agents

Cada agent és el seu CLI de sempre en un terminal real dins d'esfis. S'obre a la carpeta del projecte amb un login shell —el mateix PATH i les mateixes claus que el teu terminal— i parla amb el seu proveïdor com ho faria fora d'esfis.

Diversos alhora

Parteix la finestra (⌘D a la dreta, ⇧⌘D a sota), envia el mateix prompt a totes les sessions (⇧⌘B) i canvia de projecte sense aturar els agents dels altres.

Model, sessions i proveïdors

Tasques

Al costat de cada agent hi ha el panell de Tasques del projecte, per apuntar el que no toca fer ara sense perdre el fil.

AccióQuè passa
ClicEnvia la tasca a l'agent i prem Retorn.
⌥-clicLa deixa escrita al terminal, perquè la revisis abans.
CercleLa marca com a feta, o torna a pendent.

Cada tasca recorda a quin agent la vas enviar. La llista és un Markdown dins del projecte, a .esfis/feina.md, amb una línia - [ ] per tasca: es pot editar a mà i arriba a qualsevol Mac que tingui la carpeta.

Activitat

Inici té una fila per projecte, del que has tocat fa menys al que fa més temps que no toques. Serveix per tornar a la feina sense haver de recordar on eres.

Fitxers i últim canvi
de la carpeta
Branca
.git/HEAD
Agents oberts
ara mateix
Context i decisions
de l'espai
Sessions i agents
últims 30 dies
Tasques pendents
.esfis/feina.md
Última decisió i on ho vas deixar
context + sessions

Tot es llegeix del disc, en segon pla i sense subprocessos, dels registres que Claude Code, Codex i Grok ja deixen. Carpetes com node_modules o .build no es compten.

Context

El context d'un projecte són peces curtes: decisions, instruccions, objectius, persones, tecnologies. Cadascuna recorda d'on ve i quan es va desar, i una de nova en pot substituir una de vella en comptes de conviure-hi.

Qui el veu

El context d'un projecte només arriba als agents que treballen en aquell projecte. El personal, com ara en quina llengua vols les respostes, arriba a tot arreu.

Com hi arriben els agents

Hi llegeixen i hi escriuen per MCP. Qui decideix què val la pena desar és l'agent; esfis només desa i recupera, sense cap crida a cap model. Cada peça porta com a origen l'agent que la va desar, i l'agent que la rep l'endemà ho veu: «L'API fa servir PostgreSQL · Claude Code». Com connectar cada agent és a Connectar-hi la teva IA.

Tipus

identity, preference, person, project, goal (objectiu), decision, technology (tecnologia), event, knowledge i instruction. Cada peça porta també qui la va desar, si es va dir explícitament o es va deduir, i pot tenir data de caducitat.

Memòria

La secció Memòria ensenya tot el context i et deixa corregir-lo.

Llista i Text

Llista és una fila per peça, amb el seu tipus, d'on ve i els botons per canviar-ne el tipus o oblidar-la. Text és tot el context com un text seguit:

## Instruccions permanents
[#3] Respon sempre en català.

## Records
[#12] El projecte es desplega a Vercel.

Prova i Conversa

Són dues pestanyes de Configuració, al costat d'Espais. Prova tria una IA i un espai, li fa una pregunta i ensenya què rebria, amb la puntuació de cada peça i el que queda fora. Conversa extreu context d'una conversa enganxada amb l'API d'Anthropic i la teva clau: és l'única funció que surt de la màquina, i amb l'MCP connectat no et cal.

MEMORY.md

~/.esfis/MEMORY.md és la còpia llegible del context personal (el d'un espai no hi va, perquè el llegeixen tots els projectes). Claude Code el pot llegir sense MCP si afegeixes @~/.esfis/MEMORY.md a ~/.claude/CLAUDE.md.

esfis --export            # actualitza ~/.esfis/MEMORY.md
esfis --import-document   # incorpora el que hi hagis editat

Portar-hi el que ja tens

Els .md de memòria que els assistents deixen a ~/.claude/projects/<projecte>/memory/ es poden importar. Tornar-hi a passar no duplica res, i un fitxer editat substitueix la versió vella.

esfis --import                      # ~/.claude/projects
esfis --import ~/notes ~/altra/mem  # o les carpetes que diguis

Espais i polítiques

Els espais separen el context de cada projecte o client. Les polítiques diuen quina IA en veu cadascun. I la traça explica, després, què va rebre cada IA i per què.

Espais

Un record sense espai és personal i va a tot arreu. Un record amb espai només surt dins del seu, i l'espai es mira abans de buscar: una coincidència perfecta d'un altre client no arriba ni a puntuar-se. L'espai d'un agent surt de la carpeta on treballa (el camí més llarg que la conté); ESFIS_SPACE el fixa.

esfis --spaces
esfis --space-add acme --kind client --path ~/Clients/acme
esfis --move 184 acme
esfis --add "Acme paga a 60 dies." --space acme --until 2026-12-31

Polítiques

Guanya la regla més concreta: aquesta IA en aquest espai, aquesta IA a tot arreu, tothom en aquest espai, tothom. Sense regla, es permet. Qui no pot veure un espai tampoc no hi pot escriure ni oblidar-ne res.

A Configuració › Espais tries, per a cada espai i cada IA, «Hi té accés», «No» o el que digui la regla general. Des del terminal és el mateix:

esfis --deny chatgpt acme
esfis --deny '*' acme
esfis --allow claude-code acme
esfis --policy

Per què ho va veure

Cada recall per MCP deixa un lliurament: què hi va entrar, què en va quedar fora i per què. Es guarden identificadors i motius, no el text. Del que un altre espai o una política va deixar fora, s'anomena el que hauria respost la pregunta i la resta es compta. Els lliuraments també són a Configuració › Espais: un clic en un i en surt l'explicació.

esfis --deliveries
esfis --why 212
esfis --preview "quin magatzem fem servir" --as codex --space esfis

CLAUDE.md i AGENTS.md

--compile escriu el context vigent dins d'un bloc marcat (<!-- esfis:begin --> … <!-- esfis:end -->) i no toca res de fora. Tornar a compilar sense canvis no canvia ni un byte.

esfis --compile agents --space esfis
esfis --compile claude --print
esfis --import-instructions CLAUDE.md   # el camí de tornada

esfis i CLAUDE.md

esfis no substitueix el CLAUDE.md ni l'Auto Memory de Claude Code: el CLAUDE.md pot ser una sortida d'esfis, no cal que en sigui la font. La diferència és on viu el context i qui el pot llegir.

CLAUDE.md i Auto MemoryContext a esfis
FormatText en Markdown, per nivells: organització, usuari, projecte i subcarpetesPeces amb tipus, espai i metadades
Qui el llegeixClaude CodeQualsevol agent per MCP, i CLAUDE.md o AGENTS.md compilats
Qui l'escriuTu, i Claude amb Auto MemoryTu i qualsevol agent connectat
OrigenNo queda anotat per a cada afirmacióQui, quan i si es va dir o es va deduir
VigènciaFins que algú l'edita o l'esborraData de caducitat per peça i historial
PermisosSense permisos per peça ni per agentPolítiques per agent i per espai
TraçaEls fitxers que s'han carregatLes peces que va rebre cada agent, i per què

Comparació amb Claude Code a setembre del 2026.

Consum dels agents

La barra de baix de la secció Agents i el seu panell d'ús ensenyen quant ha fet servir cada agent, avui i els últims dies, i com va la màquina: CPU, memòria i els processos que més gasten. Tot es llegeix dels registres que cada CLI ja escriu en local, sense cap crida a cap API.

esfis --usage --days 14     # el panell d'ús, en text
esfis --claude-bridge       # els límits reals de Claude (--remove el treu)

Els costos són una estimació amb preus públics, que es poden ajustar a ~/.config/agent-orchestrator/pricing.json.

Connectar-hi la teva IA

A Configuració › Connecta la teva IA hi ha el que cal copiar per a cada client, i un botó Comprova. esfis no escriu mai la configuració d'un altre programa.

ClientCom
Claude Codeclaude mcp add --scope user esfis -- ~/.esfis/bin/esfis --mcp
Codexcodex mcp add esfis -- ~/.esfis/bin/esfis --mcp
CursorEl bloc JSON de sota, a ~/.cursor/mcp.json
Gemini CLIEl bloc JSON de sota, a ~/.gemini/settings.json
Qualsevol xatUnes instruccions per enganxar, i el context de cada pregunta des de Prova

La forma genèrica, per a qualsevol altre client MCP:

{ "mcpServers": { "esfis": { "command": "/Users/<tu>/.esfis/bin/esfis", "args": ["--mcp"] } } }

Les eines

EinaQuè fa
recallTorna les instruccions permanents i el context rellevant per a una pregunta.
rememberDesa una peça. Accepta type, space, valid_until i supersedes, per substituir-ne una en comptes d'acumular contradiccions.
forgetDesactiva una peça per id. Queda com a història.
memoriesLlista el que l'agent pot veure a l'espai on és.

Ordres de terminal

Tot el que fa l'app es pot fer des del terminal. esfis --help les té totes; surten amb 0 si ha anat bé i amb 1 si no.

OrdreQuè fa
--recall "…"Què sap esfis d'això (--as, --space)
--preview "…" --as codexQuè rebria aquella IA, i què quedaria fora
--why <lliurament>Per què una IA va veure el que va veure
--add "…"Desa context (--type, --space, --until)
--spaces · --space-add · --moveEls espais i els seus records
--policy · --allow · --denyQui veu què
--compile claude|agentsEscriu el context al CLAUDE.md o l'AGENTS.md
--import [carpetes]Porta els .md de memòria dels assistents
--listTots els records, també els oblidats
--usage [--days N]El consum dels agents
--doctorComprova que tot està al seu lloc

esfis --doctor fa una comprovació per línia: la base, l'esquema, els vectors, si el binari és el que diu la configuració MCP, si MEMORY.md està al dia i si hi ha duplicats. El mateix informe és a Configuració.

Dreceres

DreceraQuè fa
⌃⌘1 … ⌃⌘4Inici, Agents, Memòria, Configuració
⌘1 … ⌘9Salta al panell d'agent
⌘D · ⇧⌘DParteix a la dreta · a sota
⌘↩Amplia el panell (i hi torna)
⌥⌘ + fletxesMou el focus entre panells
⇧⌘WTanca el panell
⇧⌘BEnvia el mateix prompt a totes les sessions
⌃⌥⌘← · ⌃⌥⌘→ · ⌃⌥⌘↑Aparca la finestra a un cantó · l'omple
⌃⌘FOcupa la pantalla
⌘SDesa el text de la Memòria
⇧⌘EActualitza MEMORY.md
⌘,Configuració

Dades locals

Tot es desa al teu Mac. El servidor MCP parla per l'entrada estàndard i no obre cap port, i no cal cap compte.

FitxerQuè hi ha
~/.esfis/memory.dbEl context (SQLite): peces, espais, polítiques i historial
~/.esfis/MEMORY.mdLa còpia llegible del context personal
~/.esfis/log.jsonlUna línia per canvi
~/.esfis/mcp.logLa traça de l'MCP, només amb ESFIS_LOG=1
~/.esfis/bin/esfisEl binari que criden els agents
<projecte>/.esfis/feina.mdLes tasques del projecte

Per mostrar l'activitat i el consum, esfis llegeix els fitxers que els CLI ja deixen al disc, com ~/.claude/projects o ~/.codex/sessions, i no els envia enlloc.

Agents compatibles

AgentQuè és
Claude CodeL'agent de terminal d'Anthropic. Llegeix i escriu el context per MCP.
CodexL'agent de terminal d'OpenAI. Llegeix i escriu el context per MCP.
CopilotL'agent de terminal de GitHub.
GrokL'agent de terminal de xAI.
AntigravityL'agent de terminal de Google (agy). Apagat per defecte; s'encén a Configuració › Agents.
OllamaModels locals, que s'executen a la teva màquina.

Qualsevol altre client MCP també pot llegir i escriure el context, com Cursor o Gemini CLI.

En desenvolupament

esfis és en una fase inicial. Algunes funcionalitats poden canviar o desaparèixer, i aquestes pàgines s'actualitzen quan passa. Els canvis publicats són a novetats.