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 autónomamente 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.
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 necesidad de comandos ni indicaciones
-
Seguro por defecto — los secretos se detectan y rechazan antes de llegar al almacenamiento
-
Autogestionable — deduplica, resuelve conflictos y filtra ruido por sí solo
-
Local primero — toda la memoria permanece en tu máquina; sincronización en la nube opcional alojada en UE/CH
-
Independiente de la herramienta — funciona con cualquier herramienta de codificación con 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 requieren cuentas en la nube. Toda la memoria se almacena localmente.
Configuración de 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, incluidas las instrucciones globales y la configuración de desarrollo desde el código fuente.
Captura Automática de Memoria
Añadir 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 global.
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
rememberde forma proactiva cuando se descubra conocimiento duradero, proporcionando contenido estructurado y un tipo (p. ej.,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 instrucciones 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.
Variables de Entorno
Por defecto, la memoria local se almacena en .openmembrane bajo el directorio de trabajo actual. Anula esto con:
OPENMEMBRANE_HOME: directorio para los 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 individual 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 de 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 reemplazada, vinculando opcionalmente 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 vías 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 aprobación a las herramientas de IA.
Las llamadas LLM específicas de 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 de 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 la actividad normal de memoria, como la ingesta de sesiones, la extracción de candidatos, la memoria guardada, los candidatos en cola y los 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 ni 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 las memorias confidential porque estos archivos pueden enviarse 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 mediante tsx):
npm run mcp:stdio
Ejecuta pruebas y verificación de tipos:
npm test # vitest
npm run typecheck # tsc --noEmit
npm run check # both
Compila 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
- Hoja de Ruta — plan de entrega por fases desde MVP local hasta modo alojado
- Contribuciones — configuración, flujo de trabajo de desarrollo, guías de PR