| Otros idiomas: English | Deutsch | Português do Brasil | 中文 | 日本語 |
Memoria MCP portable, auditable y local-first para agentes de IA y flujos de coding compatibles con MCP.
codex-agent-mem conserva memoria duradera fuera del runtime del modelo, comprime continuidad en packs mas chicos, y arrastra estado operativo para que agentes de IA compatibles con MCP retomen con menos repeticion, menos cierres falsos y mas control sobre lo que entra en contexto.
Todo se guarda y procesa localmente en este MCP: base SQLite, indice FTS, snapshots, metadata de telemetria y UI opcional de inspeccion. codex-agent-mem no envia tu memoria, datos del proyecto, prompts ni telemetria a ningun servidor externo. Los clientes MCP pueden exponer resultados de herramientas al modelo o servicio que configures, asi que trata la memoria recuperada como salida local de herramienta entregada a ese cliente.
Nacido para Codex y flujos GPT, codex-agent-mem crecio hasta convertirse en una capa portable de memoria MCP para runtimes compatibles con MCP, incluidos Codex CLI/Desktop, Claude Code, Google Gemini CLI, flujos Qwen Code usando modelos Ollama y otros stacks locales o de terceros para agentes CLI. La validacion se registra por cliente/runtime y nivel de evidencia. Los detalles especificos por modelo quedan en los docs de validacion para que este README describa la superficie publica sin sobredimensionar ningun runtime.
codex-agent-mem vive en local, mantiene la memoria auditable y bajo demanda, y no envia tu memoria almacenada a ningun servicio externo.
Baseline publica. Construida en slices chicos y verificables, todavia en evolucion, pero ya pensada para uso real.
codex-agent-mem dentro de AGENTS.md podia confundirse con el scope activo del proyecto en hosts MCP o clientes de agentes. Tambien permite que las notas manuales inicialicen un registro local de proyecto faltante y conserva la metadata root_path existente ante actualizaciones conflictivas.idle-timeout entre el daemon local y el bridge stdio que podia aparecer como falso incidente Transport closed cuando se usa --daemon-url./mcp, /health sanitizado y reenvio de token desde el bridge stdio.structuredContent use raices objeto como {items, count} en vez de arrays raiz, mejorando compatibilidad con clientes estrictos como Claude Code.mem_session_list lista sesiones recientes, mem_scope_resolve prioriza lanes persistidos desde hints explicitos, mem_bootstrap_context evita packs project-wide de inicio cuando hay contenedores ambiguos, y session_id opcional filtra tools de recuperacion para que proyectos amplios no mezclen chats o agentes. Los packs project-wide que cruzan varias sesiones o sub-scopes inferidos emiten una advertencia visible y recomiendan narrowing antes de tratar el pack como contexto activo. No es conciencia live del turno actual.v1.0.1 mantiene las instalaciones normales de continuidad en modo writable; --read-only es un modo explicito de auditoria/debug/retrieval-only, no el modo operativo por defecto.
minimal, standard y full--read-only explicito de auditoria/debug para bloquear tools mutantes y evitar escrituras lateralesstructuredContentknown_pack_hash / not_modified para no reenviar packs de continuidad sin cambios| Releases visibles: v1.0.2 Identity + Scope Patch | v1.0.1 Transport + Local Security Hotfix | v1.0.0 Low-Impact Runtime |
| Escenario | Perfil | Tokens fuente | Tokens pack | Ahorro | not_modified |
Tools | Lazy init | Read-only |
|---|---|---|---|---|---|---|---|---|
| Small project continuity | minimal |
1,841 | 253 | 86.26% | true | 4 | false->true | true |
| Medium agent workflow | minimal |
4,855 | 270 | 94.44% | true | 4 | false->true | true |
| Large repeated audit | minimal |
9,731 | 269 | 97.24% | true | 4 | false->true | true |
| Sub-agent handoff example | minimal |
6,523 | 276 | 95.77% | true | 4 | false->true | true |
En estos fixtures reproducibles, el contexto operativo repetido se redujo de ~22,950 tokens fuente a ~1,068 tokens de pack, una reduccion aproximada de 95.35%. No es una garantia universal; muestra el efecto cuando el agente normalmente reenviaria la misma continuidad del proyecto.
Tools=4 corresponde al perfil minimal previo a session-aware usado en estos fixtures. En v1.0.1, minimal tambien incluye mem_session_list, mem_scope_resolve y mem_bootstrap_context, y el perfil standard expone 20 tools para recuperacion, gobernanza y auditoria mas amplias.
| Runtime | Configuracion | Metricas observadas | Resultado |
|---|---|---|---|
| Default MCP writable | Puentes locales Codex/Gemini/Claude, read_only=false; full cuando se requieren tools writable |
mem_note_create escribio notas manuales indexadas y mem_search / mem_context_pack las recuperaron; mem_snapshot_create(project_key, label, session_id) registro proveniencia de alta confianza |
Smokes writable de notas manuales y snapshot provenance aprobados |
| Codex Desktop | Codex Desktop, MCP stdio, fixture retrieval-only v1.0 con minimal, read-only, compact |
~22,950 tokens fuente -> ~1,068 tokens de pack, ~95.35% menos contexto repetido, not_modified=true en packs repetidos |
Validacion MCP de lectura mas verificacion publica reproducible; la continuidad writable se cubre en la fila anterior |
Codex CLI / codex exec |
Ruta MCP stdio de Codex CLI, ejecucion corta / efimera | mismo servidor MCP local y estilo de config que Desktop; el lifecycle corto de CLI fue validado por separado del comportamiento del host largo-vivo de Desktop | Ruta Codex CLI validada |
| Google Gemini CLI | MCP stdio codex-agent-mem, validacion retrieval-only explicita con standard, read-only; compact si el payload estructurado es visible, si no verbose |
proceso estable, contador de requests subio como se esperaba, payloads con raiz objeto verificados donde fueron visibles | Validacion MCP de lectura con caveat de exposicion del cliente |
| Claude Code | Claude Opus 4.7, solo MCP stdio codex-agent-mem, validacion retrieval-only explicita con standard, read-only, compact |
requests 3 -> 8, lazy init false -> true, same_db_process_count=2 con un host Claude Code activo, spawn_storm_warning=false, mem_search count=2 |
Validacion MCP de lectura aprobada |
| Qwen Code | Qwen Code 0.15.0, Ollama local, qwen3.6:latest, validacion retrieval-only explicita con standard, read-only, compact |
llamadas MCP reales a mem_context_pack, mem_search, mem_open_work, mem_completion_check, mem_health_runtime; requests 8, lazy init true, spawn_storm_warning=false, not_modified=true |
Validacion MCP local de lectura aprobada |
| Smokes de modelos Qwen locales | Qwen Code 0.15.0 con modelos Ollama qwen3.6:35b-a3b-q8_0 y qwen3.5:9b |
ambos modelos respondieron smoke CLI e invocaron mem_health_runtime via MCP stdio; retrieval-only read_only=true, cierres limpios por stdin_eof |
Smokes live locales de lectura aprobados |
| DeepSeek-V3.2 | Qwen Code 0.15.0, deepseek-v3.2:cloud via Ollama Cloud, validacion retrieval-only explicita con standard, read-only, compact |
llamadas MCP reales a mem_context_pack, mem_search, mem_health_runtime; requests 6, spawn_storm_warning=false, not_modified=true |
Validacion MCP cloud-backed de lectura aprobada |
| Minimax M2.5 | Qwen Code 0.15.0, minimax-m2.5:cloud via Ollama Cloud, validacion retrieval-only explicita con standard, read-only, compact |
llamadas MCP reales a mem_context_pack, mem_search, mem_health_runtime; requests 6, not_modified=true |
Validacion MCP cloud-backed de lectura aprobada |
| Kimi Code CLI | Kimi Code CLI 1.38.0, MCP stdio codex-agent-mem, validacion retrieval-only explicita con standard, read-only, compact |
kimi mcp test codex-agent-mem conecto y listo las tools esperadas del perfil standard; la validacion completa con tool-calls de Kimi K2.5 / Kimi K2.6 sigue en evaluacion continua |
Conexion MCP de lectura validada; no se afirma validacion del modelo |
| Grok / xAI | Nota de compatibilidad a nivel protocolo | comportamiento MCP stdio / JSON-RPC revisado a nivel protocolo | Nota de protocolo |
Grok / xAI aparece como nota de compatibilidad a nivel protocolo, no como validacion live de tool-calls del modelo. Las filas validadas live son los pares cliente/modelo MCP medidos directamente: Codex Desktop/CLI, Google Gemini CLI, Claude Code, Qwen Code, smokes de modelos Qwen locales, DeepSeek-V3.2 via Ollama Cloud, Minimax M2.5 via Ollama Cloud y validacion de conexion de Kimi Code CLI. En general, codex-agent-mem es agnostico al modelo en la capa MCP; se agregan nuevos pares cuando sus mediciones live quedan capturadas.
codex-agent-mem incluye un sandbox reproducible de verificacion y un export publico de evidencia para v1.0.0. El uso de fixtures reproducibles es intencional: el MCP busca optimizar el manejo repetible del contexto operativo, por eso la evidencia publica mantiene controlado ese contexto repetido en vez de convertir cada corrida en una conversacion distinta.
La evidencia publica v1.0.x combina fixtures reproducibles de verificacion con validacion MCP live en los runtimes listados arriba. Mide compresion de contexto, evitacion de reenvio con known_pack_hash, inicializacion lazy, perfil minimo de tools, seguridad del modo read-only explicito, response diet, telemetria local, control de cierre y un ejemplo con sub-agentes.
Ver: Verification Evidence y v1.0.0 Results.
codex-agent-mem funciona en Claude Code como servidor MCP stdio estandar. No instala hooks de inicio de sesion, hooks de cierre ni resumen automatico post-turno. La memoria se recupera bajo demanda con tools MCP como mem_context_pack, mem_search, mem_open_work y mem_completion_check.
Si ya usas claude-mem, ambas herramientas pueden coexistir tecnicamente. Para flujos de menor overhead y menor latencia, conviene usar una sola capa de memoria activa a la vez. En validacion local con un host Claude Code activo, codex-agent-mem solo mantuvo el runtime compacto (same_db_process_count=2, spawn_storm_warning=false). Al correrlo junto a claude-mem, la superficie visible subio a 61 tools, se agrego un bloque de inicio de sesion de unos 6,995 tokens y aparecieron demoras post-turno por stop hooks. Esto no rompe codex-agent-mem, pero hace mas dificil comparar resultados y puede aumentar overhead y latencia.
Usa codex-agent-mem si prefieres memoria local-first, auditable, pull-based, con recuperacion explicita y cierre determinista. Usa plugins de memoria adicionales solo cuando busques intencionalmente su comportamiento automatico basado en hooks.
Para flujos Claude Code sensibles a tokens, codex-agent-mem esta pensado para operar con bajo overhead por defecto: sin inyeccion al inicio de sesion, sin resumen por stop hook, respuestas compactas, presupuestos explicitos y atajo pack_hash / not_modified cuando el pack no cambio.
codex-agent-mem v1.0.1 y clean-process-ended (GitHub) v0.7.2 funcionan de forma independiente, pero resuelven problemas vecinos en flujos locales con agentes.
codex-agent-mem preserva continuidad: memoria de proyecto, packs de contexto acotados, notas manuales, snapshots, trabajo abierto, blockers y chequeos deterministas de cierre.clean-process-ended cubre higiene de procesos locales: diagnostico ownership-first, chequeos de cierre en dry-run y recibos compactos de janitor.Juntos mejoran los cierres de tarea: recuperar contexto, terminar el trabajo, revisar estado local de procesos y guardar evidencia compacta de cierre sin convertir ninguno de los dos MCP en dependencia obligatoria del otro.
AGENTS.md solo cuando realmente convienenotify de Codex y la sincronizacion opcional de AGENTS.md siguen disponibles cuando aportan valormem_open_work y mem_completion_check hacen que el trabajo abierto pese mas que un viejo “done”/ui permite navegar cambios recientes, scope guard, provenance, health, snapshots, estado de gobernanza y memoria almacenada sin abrir la base SQLite a mano/health sanitizado y jerarquia de instrucciones del contexto generado; no es una proteccion completa contra prompt injection, y la base SQLite publica 1.0.x sigue en texto plano por defecto y no debe usarse como vault de secretos| Docs clave: AGENTS.md | Quickstart | Integracion Codex | Nota Codex Desktop | Support Matrix | Design Decisions |
Sirve para auditorias largas, continuidad de proyectos complejos y sesiones donde el problema no es solo recordar decisiones, sino no perder alcance ni dar por terminado algo que sigue abierto.
1.0.2 es la release actual de mantenimiento 1.0.x. 1.0.0 sigue siendo la base publica de verificacion para las metricas reproducibles de abajo.
Hoy funciona:
notify de Codex sobre agent-turn-completesession_summary, decision, objective, constraint, pending_item, completed_item, blocker y completion_claimproject_dod, mission_dod y session_dodmicro, normal y fullAGENTS.md con --sync-project-doc cuando el pack es realmente mas chico que el contexto fuentemem_open_work y mem_completion_checkmem_recent_changesmem_scope_guardbudget=automem_provenancemem_healthmem_health_runtimemem_note_create, indexadas para mem_search y elegibles para mem_context_packmem_snapshot_create, mem_snapshot_list y mem_snapshot_restoremem_policy_validate, mem_policy_add, mem_policy_list y mem_policy_removemem_inheritance_add, mem_inheritance_list y mem_inheritance_removemem_repair_propose y mem_repair_apply--profile minimal|standard|full--read-onlystructuredContent completoknown_pack_hash / not_modified--telemetry-mode off|summary|debugcodex-agent-mem-daemon y modo bridge stdio con --daemon-url/ui, incluyendo cambios recientes, scope guard, provenance, health, snapshots y estado de gobernanzacodex-agent-mem-policymem_searchmem_getmem_recentmem_session_listmem_scope_resolvemem_bootstrap_contextmem_project_briefmem_open_workmem_completion_checkmem_recent_changesmem_scope_guardmem_context_packmem_provenancemem_healthmem_health_runtimemem_snapshot_listmem_note_createmem_snapshot_createmem_snapshot_restoremem_policy_listmem_policy_validatemem_policy_addmem_policy_removemem_inheritance_listmem_inheritance_addmem_inheritance_removemem_repair_proposemem_repair_applyLo que todavia queda fuera de alcance a proposito:
codex-agent-mem se instala como paquete Python local y se expone a clientes compatibles con MCP mediante comandos stdio.
El patron estable es:
Los snippets especificos de Codex para notify y mcp_servers los genera codex-agent-mem-bootstrap-codex; otros clientes MCP usan sus propios archivos de configuracion.
Si quieres el camino mas corto desde clone hasta un setup local funcional:
git clone https://github.com/MarceloCaporale/codex-agent-mem.git
cd codex-agent-mem
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .[dev]
codex-agent-mem-smoke
codex-agent-mem-bootstrap-codex --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db
git clone https://github.com/MarceloCaporale/codex-agent-mem.git
cd codex-agent-mem
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
codex-agent-mem-smoke
codex-agent-mem-bootstrap-codex --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
En Codex, pega el snippet generado en ~/.codex/config.toml. En otros clientes MCP, usa el comando stdio comun de Configurar clientes MCP.
pipx desde GitHubInstala directo desde la URL del repositorio:
pipx install "git+https://github.com/MarceloCaporale/codex-agent-mem.git"
codex-agent-mem-smoke
pipx install "git+https://github.com/MarceloCaporale/codex-agent-mem.git"
codex-agent-mem-smoke
git clone https://github.com/MarceloCaporale/codex-agent-mem.git
cd codex-agent-mem
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
pytest -q
codex-agent-mem-smoke
git clone https://github.com/MarceloCaporale/codex-agent-mem.git
cd codex-agent-mem
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .[dev]
pytest -q
codex-agent-mem-smoke
El punto de entrada del servidor MCP es el mismo para cualquier cliente compatible:
codex-agent-mem-mcp --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
codex-agent-mem-mcp --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db
Apunta tu cliente compatible con MCP a ese comando stdio instalado. Las rutas publicas validadas en v1.0.x incluyen Codex CLI/Desktop, Claude Code, Google Gemini CLI, Qwen Code con modelos Qwen locales via Ollama, DeepSeek-V3.2 y Minimax M2.5 via Ollama Cloud, ademas de validacion de conexion en Kimi Code CLI.
Genera un snippet listo para pegar:
codex-agent-mem-bootstrap-codex --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
codex-agent-mem-bootstrap-codex --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db
Para Codex, eso imprime el bloque notify, el bloque [mcp_servers."codex-agent-mem"], un idle timeout explicito para stdio y las aprobaciones de las tools MCP para pegar en ~/.codex/config.toml.
Para sesiones largas de Codex Desktop, prefiere un MCP idle timeout mas largo, por ejemplo --idle-timeout-seconds 1800, para reducir la probabilidad de que el thread de Desktop conserve un transporte stdio cerrado. Para corridas CLI cortas o codex exec, 300 segundos suele ser suficiente y limpia mas rapido.
Si tambien quieres reinyeccion automatica en AGENTS.md, agrega --sync-project-doc al comando notify.
Una vez configurado, el agente debe usar codex-agent-mem de forma proactiva cuando la continuidad importa. No deberias tener que repetir “usa el MCP de memoria” cada pocos turnos.
Patron recomendado:
mem_bootstrap_context cuando puedan importar decisiones previas, trabajo pendiente, blockers, restricciones o estado del proyecto; pasar titulo de chat, thread, cwd o repo cuando el host lo expongamem_context_pack directamente solo cuando el alcance ya sea explicito, idealmente con session_id en workspaces ampliosknown_pack_hash en chequeos repetidos para que los packs sin cambios devuelvan not_modified en vez de reenviar contextomem_search solo cuando el pack compacto no alcancemem_open_work y mem_completion_check en tareas de implementacion, validacion, publicacion, migracion o documentacionDe ahi sale la economia practica de tokens: continuidad compacta primero, expansion puntual solo cuando hace falta, y no reenviar el mismo pack si nada cambio.
Tambien hay ejemplos en examples/codex y notas de flujos via Ollama en examples/ollama.
Levanta la API de inspeccion:
codex-agent-mem-api --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
codex-agent-mem-api --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db
Luego abre:
http://127.0.0.1:37770/ui
Levanta el servidor MCP:
codex-agent-mem-mcp --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
codex-agent-mem-mcp --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db
El transporte MCP actual es stdio. Eso significa que un proceso por conexion del host es normal; no es un daemon singleton. El idle timeout defensivo permite que instancias no usadas o huerfanas salgan limpiamente.
Defaults recomendados: usa un timeout mas largo para sesiones Codex Desktop, por ejemplo 1800 segundos, y uno mas corto para ejecuciones CLI/efimeras, por ejemplo 300 segundos.
Reconstruye manualmente el bloque de continuidad generado para un directorio:
codex-agent-mem-refresh-context --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db" --project-key YOUR_PROJECT --cwd /path/to/project
codex-agent-mem-refresh-context --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db --project-key YOUR_PROJECT --cwd C:\Path\To\Project
Corre el smoke test:
codex-agent-mem-smoke --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
codex-agent-mem-smoke --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db
Eso inserta un turno de ejemplo, extrae observaciones y verifica recuperacion reciente y generacion de project_brief.
--sync-project-doc esta activo y ese pack es realmente mas chico que el contexto fuente, se sincroniza en AGENTS.md para el directorio de trabajo.AGENTS.md permiten iniciar sesiones futuras con continuidad comprimida en vez de obligarte a repetir el alcance viejo.mem_context_pack expone el mismo pack compacto por MCP para recuperacion bajo demanda.Esto es economia de tokens para flujos con agentes, no compresion magica. codex-agent-mem mejora la economia de contexto al reducir contexto repetido de proyecto, reutilizar packs sin cambios con known_pack_hash y permitir que el agente expanda solo la memoria que necesita.
En lenguaje simple: esto busca reducir la cantidad de contexto repetido que hay que volver a pasarle al agente. No lo elimina por completo, pero si puede recortarlo de forma util.
Lo que hoy podemos decir honestamente a partir de validaciones locales:
95.35% en ese escenario controlado86% y 97% de reduccionEjemplos del sandbox publico v1.0:
1,841 -> 253 tokens aproximados4,855 -> 270 tokens aproximados9,731 -> 269 tokens aproximados6,523 -> 276 tokens aproximadosImportante: no es una garantia fija por prompt. Si el pack generado no es realmente mas chico que el contexto fuente, codex-agent-mem no lo reinyecta y evita fingir un ahorro que no existe.
Este repositorio incluye:
pyproject.toml instalableCreado y mantenido por Marcelo Caporale.