memo
Memoria a largo plazo local para agentes de codificación — embeddings en proceso (MLX/CPU), búsqueda híbrida vectorial+BM25, markdown como fuente de verdad. Sin nube, sin claves.
Documentación
memo
Tu agente de codificación comienza cada sesión con amnesia. memo lo soluciona — 100% en tu propia máquina.
Memoria persistente y buscable para Claude Code, Codex, Cursor, Cline, Devin y OpenCode. Sin nube, sin claves de API, sin Ollama, sin base de datos vectorial que ejecutar. Y gasta menos tokens, no más.

Instalación
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.11.3/install.sh | bash
¿Prefieres un gestor de paquetes? uv tool install mlx-memo · pipx install mlx-memo · brew tap jagoff/memo && brew install mlx-memo
Luego:
memo doctor # self-check
memo save 'we use Postgres, not Mongo' # save a decision
memo search 'what database did we pick?' # search by meaning
Eso es todo. Tus agentes lo detectan automáticamente a través de MCP — el instalador conecta cada cliente que encuentra.
¿Instalando en otra Mac o delegando la configuración a un agente?
Nueva Mac:
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.11.3/install.sh | bash
memo sync bootstrap git@github.com:yourname/memo-sync.git
Configuración gestionada por agente:
curl -fsSL https://raw.githubusercontent.com/jagoff/memo/v4.11.3/install.sh | bash
memo doctor --strict-runtime
¿En Linux o solo quieres echar un vistazo primero?
docker run --rm ghcr.io/jagoff/memo:latest memo doctor
Por qué esto te ahorra dinero
La mayoría de los servidores de memoria añaden contexto. memo está diseñado para eliminarlo.
| Perfil | Herramientas | Tokens de esquema |
|---|---|---|
agent (predeterminado) | 41 | ~9.4k |
core / slim | 58 | ~12.9k |
full / default | 164 | ~30.4k |
La superficie MCP predeterminada es de 41 herramientas, no 164 — un 75% menos de herramientas y aproximadamente un 69% menos de contexto de esquema: 41 herramientas / ~9.4k tokens de esquema frente a 164 herramientas / ~30.4k tokens en la superficie completa — un costo que se paga en cada sesión, en cada cliente.
El recuerdo ambiental inyecta un recuerdo relevante antes de que el modelo responda. El hook de Claude Code incluido limita esa inyección a ~160 tokens. memo roi lee los registros reales de fundamentación y de re-preguntas, y luego estima los ahorros acumulados con valores predeterminados divulgados (350 tokens por recuerdo fundamentado y 900 por re-pregunta evitada).
memo roi # value from grounded recalls and avoided re-asks
memo tokens # usage-savings ledger
Tres cosas que nadie más hace
🕰️ Máquina del tiempo — consulta tu conocimiento tal como era
memo as-of ask "what was the deploy strategy?" --date 2026-02-01
memo diff --from 2026-01-01 --to 2026-03-01
Reconstrucción histórica completa mediante la reproducción inversa de history.db. Útil cuando necesitas saber por qué tu yo del pasado tomó una decisión, no solo qué decidió tu yo del pasado.
⚡ Radar de contradicciones — memoria que nota cuando cambias de opinión
memo contradict scan # find conflicting facts corpus-wide
memo contradict triage # resolve: fuse / newer-wins / dismiss
Cambia una decisión y memo marca la versión ahora obsoleta, para que el agente deje de reintroducir lo que ya descartaste.
🔮 Dream — se optimiza solo mientras duermes
memo dream run
Un pipeline nocturno de 7 fases: inventario → extraer señales → resolver conflictos → podar lo obsoleto → sintetizar conocimientos entre clústeres → optimizar → precalentar los 100 mejores embeddings de consulta para que el recuerdo de mañana se mantenga por debajo de 200 ms. Cada ejecución escribe un recibo que puedes auditar. Cero intervención.
Cómo funciona
Recuperación híbrida. Una rama vectorial (MLX en Apple Silicon, sentence-transformers en CPU) y una rama BM25 (FTS5, con plegado de diacríticos para español) se ejecutan en paralelo, se fusionan mediante Reciprocal Rank Fusion y luego pasan por un re-ranker opcional con cross-encoder MLX.
Markdown es la fuente de verdad. Cada recuerdo es un archivo .md plano que puedes leer, buscar con grep y versionar. SQLite es un índice derivado que se reconstruye desde los archivos en cualquier momento — edita a mano en Obsidian y tu edición gana en el próximo memo reindex. Nada queda encerrado en una base de datos que no puedas abrir.
Los prompts y los recuerdos permanecen en tu máquina. El embedder, el re-ranker y el LLM se ejecutan todos en proceso. Sin telemetría. La memoria solo viaja si tú apuntas memo sync a un remoto git que poseas. El inicio normal es completamente offline; las comprobaciones de actualización remota y la auto-actualización requieren una aceptación explícita. → Política de privacidad y red
También incluido: memo resume entre agentes (reabre cualquier sesión desde cualquier agente), sincronización git entre Macs, un grafo de conocimiento con aristas de símbolos de codegraph opcionales, almacenamiento cifrado de secretos, ingesta de OCR/audio, paquetes de evidencia, aprendizaje de resultados, federación firmada y una interfaz de chat local sobre tu memoria (memo chat serve). → Referencia completa de funciones
Cómo se compara
Verificado en julio de 2026 contra la documentación de cada proyecto. Las correcciones son bienvenidas — abre un issue y corregiré la tabla.
| memo | mem0 | letta | cognee | basic-memory | cipher | |
|---|---|---|---|---|---|---|
| 100% local, sin API en la nube | ✅ | ⚠️ | ⚠️ | ⚠️ | ✅ | ⚠️ |
| Máquina del tiempo (rebobinar a cualquier fecha) | ✅ | ❌ | ⚠️ | ❌ | ⚠️ | ⚠️ |
| Detección y resolución de contradicciones | ✅ | ⚠️ | ⚠️ | ❌ | ❌ | ❌ |
| Mantenimiento nocturno autónomo | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Perfiles MCP de economía de tokens | ✅ | ❌ | ❌ | ⚠️ | ✅ | ❌ |
| Markdown / Obsidian como fuente de verdad | ✅ | ❌ | ⚠️ | ❌ | ✅ | ❌ |
✅ de primera clase · ⚠️ parcial, limitado por configuración o complemento · ❌ ausente
Los comparadores más cercanos son basic-memory (local-first + Obsidian + MCP — misma tesis) y cipher (memoria para agentes de codificación).
Requisitos
| Soporte | |
|---|---|
| macOS, Apple Silicon (M1–M4) | Completo — embedder MLX + re-ranker + ask/synthesize/dream |
| Linux / Ubuntu | Backend de CPU independiente — búsqueda, recuerdo, guardado. pipx install "mlx-memo[cpu]" · docs/ubuntu.md |
| Intel Mac | No compatible — las versiones actuales de PyTorch no incluyen wheels de Python 3.13 para esta plataforma |
| Docker | Multiplataforma, backend de CPU · docs/docker.md |
Python ≥ 3.13 (el instalador lo gestiona mediante uv si no lo tienes). La primera instalación descarga ~8 GB de modelos, de 5 a 15 minutos. Opcional: un vault de Obsidian — sin uno, memo usa ~/Documents/memo/.
Documentación
| Detalle de instalación, opciones del instalador, migración a Mac nueva | reference.md › Instalación |
| Configuración MCP por cliente (Claude Desktop, Cursor, Cline, Continue) | reference.md › Configuración MCP |
| Recuerdo ambiental, captura y ajuste | reference.md › Memoria ambiental |
Referencia completa de CLI (144 comandos) + memo tui | reference.md › CLI |
Todas las banderas de MEMO_* y perfiles de modelo | reference.md › Configuración |
| Notas de arquitectura y diseño | reference.md › Diseño |
| Política de privacidad y red | PRIVACY.md |
Los 144 comandos CLI de nivel superior
Inventario completo de comandos (mantenido aquí para que CI detecte desviaciones entre CLI y documentación)
Núcleo: save search ask get edit rename delete list
Recuerdo y Hooks: recall recall-hook context briefing continuity prewarm capture-tick capture-stop interject ask-gaps guard digest
Sesión e Historial: history as-of diff record-history session chat-session resume reflect mine-history episodes chronicle
Mantenimiento: reindex maintain review dream consolidate synthesize dedupe cross-dedup retier contradict coordinate terminal invalidate temporal compress-context ops
Análisis y Calidad: health stats doctor journey-check lint drift analytics eval roi tokens token-savings usefulness gaps outcome profile confidence graduation hype definitive evidence
Grafo de Conocimiento: graph entities entity extract-entities links version related
Búsqueda Avanzada: embed rerank contextual retrieve context-pack chat chat-ask repo
Importar / Exportar / Sincronizar: import export backup restore sync ingest federation
Visualización: tui dashboard map logs hook-log
Configuración y Ajustes: init setup config install-mcp install-watcher uninstall-watcher install-slash install-statusline install-recall-hook install-shell-wrapper install-shims startup-banner migrate migrate-vault migrate-independence update upgrade self-update watch release onboard
Daemons: daemons recall-daemon ingest-daemon maint-daemon embed-daemon idle-daemon
Otros: backend-native collaborative events feedback query mandate drift sleep-cycle operational ocr-image provenance secret verbatim mcp-command codex-badge debug-recall http-api mine-git token-gate fix undo code-facts code-nudge code-health
Contribuciones
git clone https://github.com/jagoff/memo && cd memo
uv pip install -e '.[dev]'
Los issues y PRs son bienvenidos — consulta CONTRIBUTING.md. Si memo te resulta útil, una ⭐ realmente ayuda a que otras personas lo encuentren.
Licencia MIT. Construido sobre Apple MLX, sqlite-vec y codegraph.
