OmniMem

oficial

Un 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 briefing para 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 recall para sacar a la luz decisiones, correcciones y patrones de sesiones anteriores entre proyectos.
  • Registra experiencia ganada con esfuerzo — Registra una corrección con record_experience para que las lecciones que requirieron un esfuerzo real aparezcan más fácilmente la próxima vez.
  • Elimina recuerdos duplicados — Ejecuta find_duplicates para 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

Ric Harvey 50fde316a1

Escaneos de seguridad / Bandit SAST (push) Exitoso en 7s

Detalles

Escaneos de seguridad / Auditoría de dependencias (mcp_server) (push) Exitoso en 40s

Detalles

Escaneos de seguridad / Auditoría de dependencias (rss_worker) (push) Exitoso en 30s

Detalles

Escaneos de seguridad / Auditoría de dependencias (web_ui) (push) Exitoso en 27s

Detalles

Escaneos de seguridad / Cobertura de pruebas (push) Exitoso en 1m23s

Detalles

Escaneos de seguridad / Escaneo de secretos (push) Exitoso en 4s

Detalles

Compilación y publicación de Docker / Compilar mcp_server (push) Exitoso en 17m57s

Detalles

Compilación y publicación de Docker / Compilar web_ui (push) Exitoso en 15m23s

Detalles

Compilación y publicación de Docker / Compilar rss_worker (push) Exitoso en 2m5s

Detalles

Fusionar solicitud de extracción 'v6.4.x' (#25) de v6.4.x a main
2026-07-20 01:19:39 +02:00
.forgejo/workflowsci: fijar compilaciones de buildx al compilador multiarquitectura2026-07-17 15:08:57 +00:00
claude_configfeat: el escaneo automático de habilidades propone borradores a partir de patrones de lecciones entre proyectos2026-07-19 17:50:40 +00:00
docsfeat: el escaneo automático de habilidades propone borradores a partir de patrones de lecciones entre proyectos2026-07-19 17:50:40 +00:00
guideschore: eliminar el bit ejecutable de las guías de despliegue2026-07-17 12:09:52 +00:00
mcp_serverci: silenciar bandit B104 en accesorios de prueba deliberados con 0.0.0.02026-07-19 23:15:31 +00:00
rss_workerci: silenciar bandit B104 en accesorios de prueba deliberados con 0.0.0.02026-07-19 23:15:31 +00:00
scriptsdocs: manual de demostración de habilidades — cargar, compilar, demostrar y limpiar la habilidad moo-reports2026-07-17 12:28:05 +00:00
web_uici: silenciar bandit B104 en accesorios de prueba deliberados con 0.0.0.02026-07-19 23:15:31 +00:00
.env.exampledocs: 6.3.1 — inicio de sesión de la interfaz web en changelog, README, ejemplo de env, guía de desarrollo2026-07-13 20:44:03 +00:00
.gitignoretest: llevar la cobertura al 99.9% en todo el código base2026-07-19 19:20:36 +00:00
.gitleaks.tomlci: permitir en la lista blanca el falso positivo de gitleaks en la cadena de prueba de valkey2026-07-19 23:17:59 +00:00
CHANGELOG.mdchore: subir la versión a 6.4.2, changelog para la línea 6.4.22026-07-19 22:38:45 +00:00
CLAUDE.mdchore: subir la versión a 6.4.2, changelog para la línea 6.4.22026-07-19 22:38:45 +00:00
docker-compose.hub.ymlfeat: script de instalación de una línea usando imágenes de Docker Hub2026-07-16 21:29:09 +00:00
docker-compose.test.ymlfeat: añadir suite de pruebas integral con ejecutor de pruebas basado en Docker2026-03-12 16:44:58 +00:00
docker-compose.ymlfix(oauth+security): ventana de gracia para el token de actualización + endurecer la superficie del servidor2026-07-08 10:40:53 +01:00
install.shfix: evitar que install.sh se cuelgue bajo curl|bash y añadir progreso paso a paso [skip ci]2026-07-17 16:13:10 +00:00
LICENSEchore: añadir licencia MIT2026-03-10 19:42:51 +00:00
OMNIMEM_BUILD_PROMPT.mdfeat: andamiaje inicial del proyecto2026-03-09 22:13:35 +00:00
README.mddocs: repetir el aviso de desarrollo de Codeberg en la sección de contribuciones2026-07-17 12:10:22 +00:00
TODO.mddocs: añadir TODO.md con ideas de funciones futuras2026-03-17 17:46:16 +00:00

<OmniMem>omnimem.org

Security Scans Docker Build Coverage

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 | bash

Luego 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ápidoInstalador, compilación desde el código fuente, conexión de tu agente
Características en profundidadCiclo de vida, cementerio, puntuación de experiencia, deduplicación, contradicciones, informe
El compilador de habilidadesCompilación de experiencia en habilidades cargables
Referencia de herramientas MCPTodas las 30+ herramientas
Referencia de configuraciónCada variable de entorno
RSS y conocimientoIngestión y promoción pasiva de conocimiento
Múltiples máquinasProxy inverso, OAuth 2.1 para claude.ai, resolución de problemas
Interfaz webEl panel de gestión y las métricas de Prometheus
ArquitecturaContenedores, pipeline de recuperación, decisiones de diseño
Especificaciones de tipos de memoriaEl modelo de almacenamiento, campo por campo
Guías de conexiónConfiguración por agente
Guías de desplieguemacOS · 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.