OmniMem
oficialUn servidor MCP autoalojado que otorga a los Agentes de IA memoria persistente entre sesiones, proyectos y máquinas.
¿Qué puedes hacer con OmniMem MCP?
Otorga a tu agente de IA una memoria persistente y autoalojada entre sesiones, proyectos y máquinas: pídele que "revise el cementerio antes de sugerir una librería que ya falló".
- Resumen de sesión — Solicita un
briefingpara obtener contexto del proyecto, estadísticas de experiencia, recuerdos obsoletos, artículos nuevos y sugerencias de habilidades en una sola llamada. - Evita callejones sin salida pasados — Haz que el agente revise el cementerio antes de sugerir una librería o patrón que falló anteriormente.
- Recuerda decisiones pasadas — Usa
recallpara sacar a la luz decisiones, correcciones y patrones de sesiones anteriores entre proyectos. - Registra experiencia ganada con esfuerzo — Registra una corrección con
record_experiencepara que las lecciones que requirieron un esfuerzo real aparezcan más fácilmente la próxima vez. - Elimina recuerdos duplicados — Ejecuta
find_duplicatespara marcar y limpiar en masa recuerdos almacenados casi idénticos. - Respalda tu memoria — Exporta todo a un archivo JSON que te pertenezca con
dump_to_file.
Documentación
Memoria semántica autoalojada para Agentes de IA. Sesiones persistentes, puntuación de experiencia y un cementerio para callejones sin salida, respaldada por conocimiento adquirido de los RSS que lees y almacenada en una búsqueda vectorial Valkey, expuesta luego como un servidor MCP. https://omnimem.org
<OmniMem>omnimem.org
El desarrollo ocurre en Codeberg — problemas y solicitudes de extracción allí, por favor.
Deja de vivir la misma sesión dos veces.
Cada sesión de Claude Code comienza desde cero. Sin memoria de tu proyecto. Sin memoria de lo que falló la semana pasada. Sin memoria de que pasaste tres horas el martes pasado descubriendo por qué onnxruntime explota en Alpine antes de encontrar algo que realmente funciona.
Así que explicas el proyecto de nuevo. Claude sugiere la misma biblioteca rota de nuevo. Misma alarma. Misma canción. Eres Bill Murray y Claude es Punxsutawney.
OmniMem lo soluciona. Es un servidor MCP autoalojado que le da a tu agente de IA memoria persistente entre sesiones, proyectos y máquinas. Se ejecuta en tu propio hardware y es gratis para siempre.
claude> use onnxruntime for the embeddings
⚠ WARNING: previously abandoned approach
onnxruntime — SIGILL crash on Alpine musl libc (effort: 4/5)
→ switched to sentence-transformers instead
Esa advertencia vino de la memoria, no de la suerte. El error que ya pagaste no tiene derecho a cobrarte dos veces.
Comienza rápidamente
Consejo
Un comando pone en marcha toda la pila desde las imágenes precompiladas de Docker Hub:
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bashLuego apunta tu agente hacia ella — la guía de inicio rápido explica el resto, o salta a la sección de inicio rápido más completa a continuación.
Lo que recuerda
Cinco tipos de memoria, todos buscados juntos al momento de recuperar:
- Episódica — las decisiones que tomaste, los errores que corregiste, los patrones que descubriste. Las cosas que requirieron esfuerzo real para aprender y no deberían tener que reaprenderse cada mañana.
- Contexto del proyecto — tu pila, objetivos y estado actual. El agente llega a cada sesión ya informado en lugar de empezar en frío.
- Conocimiento — fuentes RSS que configuras, obtenidas según un horario, resumidas por Claude Haiku, incrustadas y almacenadas. Cuando un artículo relevante llegó la semana pasada, aparece como un punto de partida que vale la pena leer.
- Preferencias — reglas prescriptivas sobre cómo quieres trabajar ("siempre actualiza el README después de que una función se lance"), extraídas automáticamente de tus conversaciones y mostradas cuando correspondan.
- Habilidades — documentos SKILL.md compilados a partir de tu experiencia acumulada en un dominio, para que el agente trabaje a tu manera desde el primer mensaje. Derivadas de los otros espacios de nombres, nunca editadas a mano, y cada cambio pasa por tu revisión. Consulta el compilador de habilidades. El resultado principal de la recuperación podría ser una decisión de hace seis meses en un proyecto diferente, una solución de ayer o un artículo que llegó el martes por la noche. No importa de dónde venga siempre que sea útil.
Qué lo hace diferente
No es solo un almacén de clave-valor con un envoltorio MCP. OmniMem modela cómo funciona realmente la memoria: las cosas se desvanecen con el tiempo, a veces se contradicen entre sí, y lo que se gana con esfuerzo se gana su lugar.
- El Cementerio — cada callejón sin salida se registra con lo que intentaste, por qué falló y cuánto tiempo perdiste. El agente lo consulta antes de sugerir una biblioteca o patrón.
- Puntuación de experiencia — algo que requirió cuatro intentos y una solución extraña de plataforma para resolverlo es oro. Cuanto más difícil fue, más fácilmente aparece la próxima vez.
- Ciclo de vida de la memoria —
ACTIVE → DEPRIORITISED → ARCHIVED → DELETED. "Olvídate de X" normalmente significa dejar de mencionarlo, no borrarlo de la existencia. Los recuerdos despriorizados pueden recuperar su lugar. - Detección de contradicciones — si un nuevo recuerdo contradice algo almacenado, OmniMem lo detecta. Heurística rápida en cada escritura, análisis más profundo opcional mediante Claude Haiku.
- Deduplicación semántica — los recuerdos casi idénticos se marcan al momento de escribir y se limpian en masa con
find_duplicates(). - Informe de una sola llamada — una sola
briefing()devuelve contexto del proyecto, estadísticas de experiencia, recuerdos obsoletos, artículos nuevos, advertencias de contradicciones y sugerencias de habilidades. Sin calentamiento de tres pasos. - El compilador de habilidades — destila lecciones reforzadas y callejones sin salida en habilidades cargables, detrás de una puerta de proponer y aceptar para que las malas lecciones no se conviertan en política en silencio.
- Mantenimiento automático — duplicados archivados, contradicciones marcadas, conocimiento caducado limpiado, todo en segundo plano.
- Interfaz web — navega, busca y gestiona todo desde un panel htmx, con telemetría y un endpoint de Prometheus
/metrics.
La fórmula de clasificación detrás de cada recuperación:
score = similarity x surface_score x recency x experience_weight
Cuatro factores deciden qué vuelve. La similitud semántica por sí sola no es suficiente: el estado del ciclo de vida, la antigüedad y lo difícil que fue aprender la lección juegan un papel.
Funciona con cualquier agente MCP
Una capa de memoria para todos ellos: claude.ai, Claude Code, Claude Desktop, Cursor, GitHub Copilot, GitLab Duo, AWS Kiro, OpenCode, OpenAI Codex CLI y Open Design.
Arquitectura
Cuatro contenedores. Nada sale de tu máquina. Incrustaciones locales mediante sentence-transformers, almacenamiento en Valkey con búsqueda vectorial, y ambas puertas de entrada comparten el mismo motor de memoria.
flowchart TB
agent["AI agent<br/>Claude Code · claude.ai · Cursor · Copilot · ..."]
browser["Browser"]
agent -- "MCP · Streamable HTTP / SSE · :8765" --> mcp
browser -- "HTTP · :8080" --> webui
subgraph stack["Docker Compose stack"]
mcp["MCP server<br/>Python · FastMCP<br/><i>remember · recall · briefing<br/>compile_skill · record_experience</i>"]
webui["Web UI<br/>Starlette · htmx · Jinja2<br/><i>dashboard · search · skills<br/>projects · backups · /metrics</i>"]
rss["RSS worker<br/>feedparser · APScheduler<br/>Claude Haiku summaries"]
valkey[("Valkey + valkey-search<br/>HNSW vector indexes<br/><i>idx:episodic · idx:project · idx:knowledge<br/>idx:preference · idx:skill</i>")]
mcp <--> valkey
webui <--> valkey
rss --> valkey
end
El panorama completo — el pipeline de recuperación, el modelo de almacenamiento y las decisiones de diseño — está en docs/architecture.md.
Autoalojado, código abierto, tuyo
Sin SaaS. Sin dependencia de proveedor. Sin contexto enviado a servidores de terceros.
- Valkey es un fork de Redis de código abierto. Todos tus datos permanecen en un volumen Docker con nombre en tu propia máquina.
- Imágenes Docker multi-arquitectura para amd64 y arm64. Se ejecuta en una Raspberry Pi, AWS Graviton o Apple Silicon igual de bien que en x86.
- sentence-transformers ejecuta incrustaciones localmente sin llamadas a API.
- Licencia MIT significa que puedes bifurcarlo, extenderlo y ejecutarlo donde quieras.
- Un comando de respaldo llama a
dump_to_file()y exporta todo a un archivo JSON que te pertenece.
Expón el puerto MCP a través de tu proxy inverso y cada máquina desde la que trabajes compartirá la misma memoria. Un despliegue, en todas partes — consulta docs/remote-access.md.
Inicio rápido
El instalador verifica que Docker esté instalado, genera contraseñas seguras, escribe un .env sensato y arranca todo desde las imágenes preconstruidas de Docker Hub:
curl -fsSL https://codeberg.org/ric_harvey/omnimem/raw/branch/main/install.sh | bash
O compilar desde el código fuente:
git clone https://codeberg.org/ric_harvey/omnimem.git && cd omnimem
cp .env.example .env
# Set VALKEY_PASSWORD and ANTHROPIC_API_KEY in .env
docker compose up -d
Luego apunta tu agente hacia él — Claude Code (~/.claude.json):
{
"mcpServers": {
"omnimem": {
"type": "sse",
"url": "http://localhost:8765/sse"
}
}
}
El servidor entrega su guía de uso a cualquier agente que se conecte automáticamente mediante el campo instructions de MCP — no se necesita archivo de configuración. El panel web está en http://localhost:8080.
El tutorial completo, incluidos los tokens de autenticación, la configuración de permisos y los otros agentes, está en docs/quick-start.md.
Documentación
| Inicio rápido | Instalador, compilación desde el código fuente, conexión de tu agente |
| Características en profundidad | Ciclo de vida, cementerio, puntuación de experiencia, deduplicación, contradicciones, informe |
| El compilador de habilidades | Compilación de experiencia en habilidades cargables |
| Referencia de herramientas MCP | Todas las 30+ herramientas |
| Referencia de configuración | Cada variable de entorno |
| RSS y conocimiento | Ingestión y promoción pasiva de conocimiento |
| Múltiples máquinas | Proxy inverso, OAuth 2.1 para claude.ai, resolución de problemas |
| Interfaz web | El panel de gestión y las métricas de Prometheus |
| Arquitectura | Contenedores, pipeline de recuperación, decisiones de diseño |
| Especificaciones de tipos de memoria | El modelo de almacenamiento, campo por campo |
| Guías de conexión | Configuración por agente |
| Guías de despliegue | macOS · Raspberry Pi · AWS · GCP · Linux + Tailscale Funnel |
Especificaciones de almacenamiento por espacio de nombres, si quieres saber exactamente qué se escribe en Valkey y quién lo hace: overview · episodic · project · knowledge · preference · skill
Contribuciones
Los issues y PRs son bienvenidos. El desarrollo ocurre en Codeberg — issues y PRs allí, por favor. OmniMem está diseñado para ser extendido y el pipeline de puntuación está estructurado para que se puedan añadir nuevos multiplicadores sin tocar el núcleo. Nuevas herramientas MCP, tipos adicionales de espacios de nombres y backends alternativos de incrustación son direcciones razonables.
Licencia
MIT. Libre de usar, bifurcar y modificar. Sin nivel empresarial, sin versión alojada, sin condiciones.
Construido por Ric Harvey @ SquareCows Ltd, una consultoría de IA y automatización para personas que prefieren ser dueñas de sus herramientas.