OpenMemBrain
OpenMemBrain es la membrana inteligente para la memoria de codificación de IA. Lee y aprende de forma autónoma de tus sesiones de codificación — nunca tienes que decirle qué guardar. Absorbe selectivamente el conocimiento del proyecto, bloquea secretos, filtra ruido, resuelve conflictos y persiste solo lo que importa.
Documentación
OpenMembrane
OpenMembrane es la membrana inteligente para la memoria de codificación con IA. Lee y aprende de tus sesiones de codificación de forma autónoma — nunca tienes que decirle qué guardar. Absorbe selectivamente el conocimiento del proyecto, bloquea secretos, filtra ruido, resuelve conflictos y persiste solo lo que importa.
Sin esfuerzo manual. Ningún dato sale de tu máquina a menos que tú lo elijas. Seguro, privado y confiable por diseño.
Tabla de Contenidos
-
Cero esfuerzo — aprende de las sesiones automáticamente, sin comandos ni indicaciones necesarias
-
Seguro por defecto — los secretos se detectan y rechazan antes de que lleguen al almacenamiento
-
Autogestionado — deduplica, resuelve conflictos y filtra ruido por sí solo
-
Privado local por defecto — la memoria se almacena localmente en
.openmembrane/ignorado por git -
Independiente de la herramienta — funciona con cualquier herramienta de codificación de IA mediante MCP (Claude, Copilot, Cursor, OpenCode y más)
Instalación
Instala y ejecuta el servidor MCP con npx (requiere Node.js >= 18):
npx openmembrane
O instala globalmente:
npm install -g openmembrane
openmembrane
No se requiere cuenta en la nube para el modo Privado Local predeterminado, que almacena
la memoria localmente en .openmembrane/ ignorado por git.
Configurando Tu Herramienta de IA
OpenMembrane se ejecuta como un servidor MCP sobre stdio. Añádelo a la configuración MCP de tu herramienta de IA:
Claude Desktop
Edita claude_desktop_config.json:
{
"mcpServers": {
"openmembrane": {
"command": "npx",
"args": ["openmembrane"]
}
}
}
Claude Code
claude mcp add openmembrane -- npx openmembrane
VS Code / GitHub Copilot
Añade a .vscode/mcp.json en tu proyecto:
{
"servers": {
"openmembrane": {
"command": "npx",
"args": ["openmembrane"]
}
}
}
Cursor
Añade a .cursor/mcp.json en tu proyecto:
{
"mcpServers": {
"openmembrane": {
"command": "npx",
"args": ["openmembrane"]
}
}
}
OpenCode
Añade a ~/.config/opencode/opencode.json:
{
"mcp": {
"openmembrane": {
"type": "local",
"command": ["npx", "-y", "openmembrane"]
}
}
}
Consulta .opencode/INSTALL.md para una configuración detallada, incluyendo
instrucciones globales y configuración de desarrollo desde el código fuente.
Captura Automática de Memoria
Agregar el servidor MCP le da a tu herramienta de IA acceso a las herramientas de OpenMembrane. Para asegurar que la IA las use automáticamente — cargando la memoria del proyecto al inicio de la sesión y guardando conocimiento duradero a medida que se descubre — añade un archivo de instrucciones globales.
Crea ~/.config/openmembrane/instructions.md con instrucciones para que la IA:
- Llame a
get_project_rules,get_relevant_contextylist_memory_candidatesal inicio de cada sesión. - Llame a
rememberproactivamente cuando se descubra conocimiento duradero, proporcionando contenido estructurado y un tipo (por ejemplo,coding_rule,known_gotcha,architecture_decision). No se necesita clave API.
Luego conecta el archivo a la configuración global de tu herramienta:
| Plataforma | Mecanismo de instrucción global |
|---|---|
| OpenCode | "instructions": ["~/.config/openmembrane/instructions.md"] en ~/.config/opencode/opencode.json |
| Claude Code | Añade a ~/.claude/CLAUDE.md |
| Cursor | Añade a Reglas para IA en Configuración de Cursor |
| VS Code / Copilot | Crea ~/.copilot/instructions/openmembrane.instructions.md con applyTo: "**" |
Consulta las guías de configuración específicas por plataforma en docs/setup/ para
instrucciones detalladas.
Alternativamente, ejecuta export_static_memory_files en cualquier proyecto para generar
archivos de instrucciones por proyecto (AGENTS.md, CLAUDE.md, etc.) que incluyan tanto
instrucciones de uso como memorias almacenadas.
Modos de Despliegue
OpenMembrane incluye Modo Privado Local por defecto y Modo Equipo GitHub para memoria compartida a través de un repositorio privado dedicado. Equipo Autoalojado y Equipo Gestionado están planificados. Los archivos exportados estáticos son separados de la sincronización de equipo; consulta Modos de Despliegue para el límite de memoria aprobada y el flujo de trabajo de solicitudes de extracción de GitHub.
Variables de Entorno
Por defecto, la memoria local se almacena en .openmembrane bajo el directorio de trabajo actual. Sobrescribe esto con:
OPENMEMBRANE_HOME: directorio para almacenes de memoria JSON locales.OPENMEMBRANE_PROJECT_ID: id de proyecto predeterminado cuando una llamada de herramienta no pasaprojectId.
Herramientas MCP
remember— guarda memoria estructurada directamente. Proporciona contenido, tipo y alcance/etiquetas opcionales. No se necesita clave API. Admite modo único y por lotes.propose_memory_from_session— envía una transcripción o resumen de sesión para extracción LLM del lado del servidor. Requiere un extractor configurado. Útil para adaptadores de automatización.get_project_rules— recupera reglas y convenciones del proyecto para el alcance actual.get_relevant_context— encuentra memorias relevantes para una consulta en lenguaje natural.search_memory— busca memorias guardadas por consulta, alcance, tipo o etiquetas.list_memory_candidates— lista candidatos de memoria pendientes que esperan aprobación.approve_memory_candidate— aprueba un candidato pendiente para guardarlo como memoria.approve_all_candidates— aprueba todos los candidatos pendientes de una vez.reject_memory_candidate— rechaza un candidato pendiente con una razón opcional.reject_all_candidates— rechaza todos los candidatos pendientes de una vez.update_memory— actualiza el contenido, tipo, alcance o etiquetas de una memoria guardada.supersede_memory— marca una memoria como superada, opcionalmente vinculando un reemplazo.review_stale_memories— lista memorias más antiguas que un umbral (predeterminado: 6 meses).export_static_memory_files— genera archivos de instrucciones estáticos (AGENTS.md, CLAUDE.md, etc.).get_diagnostics— recupera eventos de diagnóstico filtrados por severidad o código.list_audit_log— recupera eventos de auditoría recientes.
Arquitectura
OpenMembrane admite dos rutas para guardar memoria:
-
remember(principal): La herramienta de IA llama arememberdirectamente con contenido estructurado y tipo. No se necesita LLM del lado del servidor. Las memorias pasan por el pipeline completo (detección de secretos, filtrado de políticas, deduplicación) y se guardan automáticamente. -
propose_memory_from_session(secundaria): Un adaptador o herramienta de IA envía una transcripción completa de sesión para extracción LLM del lado del servidor. Requiere un extractor configurado (OpenAI o proveedor compatible).
remember tool propose_memory_from_session
| |
v v
processStructured() SessionIngestor
| -> SecretDetector redaction
v -> MemoryExtractor interface
MemoryClassifier -> MemoryClassifier
-> PolicyEngine -> PolicyEngine
-> Deduplicator -> Deduplicator
-> ConflictDetector -> ConflictDetector
-> ActionRecommender -> ActionRecommender
-> MemoryStore or PendingCandidateStore
Responsabilidades de los paquetes:
packages/core: tipos de dominio, interfaz de extracción, verificaciones de políticas, clasificación, deduplicación, detección de conflictos y orquestación del pipeline.packages/storage: persistencia JSON local para memoria guardada, aprobaciones pendientes y eventos de auditoría.packages/exporters: generación de archivos de respaldo estáticos para herramientas de IA que leen archivos de instrucciones del proyecto.packages/shared: pequeños ayudantes de tiempo de ejecución para IDs, tiempo y tipos de resultado.apps/mcp-server: servidor MCP local que expone memoria guardada y flujos de trabajo de aprobación a herramientas de IA.
Las llamadas LLM específicas del proveedor se mantienen intencionalmente fuera del núcleo. El límite es:
interface MemoryExtractor {
extract(input: SessionInput): Promise<MemoryCandidate[]>;
}
El MockMemoryExtractor se usa para pruebas deterministas. El LlmMemoryExtractor admite OpenAI y cualquier endpoint API compatible (a través de baseUrl).
Diagnósticos y Errores
OpenMembrane distingue el historial de auditoría de los diagnósticos:
- Los eventos de auditoría describen actividad normal de memoria, como ingesta de sesiones, extracción de candidatos, memoria guardada, candidatos en cola y candidatos rechazados.
- Los diagnósticos describen problemas operativos, como errores de validación, candidatos faltantes, almacenes JSON locales inválidos, intentos de aprobación inseguros y fallos de exportación.
Las herramientas MCP devuelven cargas de error seguras orientadas al usuario con un diagnosticId. El diagnóstico detallado se puede inspeccionar a través de get_diagnostics sin exponer transcripciones crudas o secretos.
Archivos de Respaldo Estáticos
Los exportadores estáticos pueden generar:
AGENTS.mdCLAUDE.md.github/copilot-instructions.md.cursor/rules/openmembrane.mdcdocs/ai/project-memory.md
Estos archivos son respaldos de compatibilidad para herramientas que no pueden recuperar memoria a través de MCP. Por defecto, los exportadores omiten memorias confidential porque estos archivos pueden ser enviados al control de versiones. Los llamadores deben optar explícitamente para incluir memoria confidencial.
Desarrollo
git clone https://github.com/mohamadalhusseinie/openmembrane.git
cd openmembrane
npm install
Ejecuta el servidor MCP localmente (desde el código fuente vía tsx):
npm run mcp:stdio
Ejecuta pruebas y verificación de tipos:
npm test # vitest
npm run typecheck # tsc --noEmit
npm run check # both
Construye el paquete publicable:
npm run build
Documentación
- Arquitectura — diseño del pipeline, esquemas de tipos, superficie de herramientas MCP, dependencias de paquetes
- Seguridad y Privacidad — manejo de secretos, reglas de almacenamiento de datos, política de uso de LLM
- Visión del Producto — tesis del producto, flujo de trabajo UX, criterios de calidad de memoria
- Modos de Despliegue — modos actuales Privado Local y Equipo GitHub, más modos de equipo planificados
- Hoja de Ruta — plan de entrega por fases para Privado Local, Equipo GitHub y modos de equipo planificados
- Contribuciones — configuración, flujo de trabajo de desarrollo, pautas para PR