MeMesh
MeMesh 是跑在你自己電腦上的 AI Agent 協作層。記憶、指定收件人的訊息和改善提案,都放在同一個 SQLite 檔案裡。Claude Code、Codex、Cursor、Gemini,或你自己接的本機模型,都能透過 MCP、HTTP 或 CLI 使用;不綁單一廠商,也不用先把資料送上雲端。開源、MIT 授權、免費使用。
Documentación
MeMesh
Memoria compartida y coordinación local duradera para agentes de codificación.
Un solo archivo SQLite. Sin Docker. Sin nube requerida.
MeMesh es la capa de colaboración local de código abierto para agentes de codificación con IA: memoria compartida, mensajería duradera con destinatario exacto y propuestas gobernadas de memoria a producto para Claude Code, Codex, Cursor, agentes personalizados o respaldados por Ollama, y clientes MCP locales compatibles. Un solo archivo SQLite. Sin Docker. Sin nube requerida.
Nuevas superficies de colaboración
messagebrinda a los agentes locales una bandeja de entrada duradera con destinatario exacto, recuperación de cursor y recibos explícitos a través de MCP, HTTP y CLI.improvementconvierte memorias activas en propuestas de trabajo de producto vinculadas a evidencia que los agentes pueden preparar, pero solo un humano puede aceptar o rechazar.
Instalación
En Claude Code — escribe esto en el chat (los hooks, las herramientas de memoria y la habilidad /memesh se conectan automáticamente):
/plugin marketplace add PCIRCLE-AI/memesh
/plugin install memesh@pcircle-memesh
Reinicia Claude Code. Una línea de estado ◉ MeMesh en la parte superior de tu próxima sesión significa que está capturando.
En una terminal — el CLI memesh, el panel de control y el servidor memesh-mcp para Codex / Cursor y clientes MCP locales compatibles (requiere Node 22.13+):
npm install -g @pcircle/memesh
memesh doctor # verifies this install end to end
La mayoría de los usuarios de Claude Code eventualmente quieren ambos — comparten una sola base de datos y nunca entran en conflicto. Detalles, otros agentes y actualizaciones: Comenzar.
¿Instalando a través de un agente de IA? Apúntalo a llms-install.md — pasos deterministas con verificación por paso. Una vez instalado, AGENTS.md le indica cómo usar memesh correctamente.
El Problema
Tu agente de codificación no solo olvida hechos entre sesiones — repite trabajo. Vuelve a proponer el enfoque que rechazaste el mes pasado, tropieza con la misma prueba fallida, redescubre la restricción que rompió producción en marzo y te pide que reexpliques la arquitectura que ayudó a diseñar.
Eso no es un problema de historial de chat; es un problema de memoria del agente. Lo que necesita sobrevivir entre sesiones es el trabajo: decisiones con sus razones, fallos con sus correcciones y los vínculos entre ellos.
MeMesh es esa memoria. Los hooks la capturan de lo que el agente realmente hace (sesiones, commits, fallos — no notas manuales), el recuerdo la inyecta en el momento en que el agente actúa (inicio de sesión, antes de ediciones de archivos), y la capa de grafo de conocimiento la mantiene honesta con el tiempo (supersesión, detección de conflictos juzgada por LLM). Instala con npm, la memoria vive en ~/.memesh/knowledge-graph.db, conéctalo a Claude Code o a cualquier cliente compatible con MCP.
[!IMPORTANT] En desarrollo activo — las funciones pueden cambiar entre versiones. Abre un issue para errores o solicitudes de funciones.
Colaboración Local de Agentes, con Honestidad
MeMesh tiene una ventaja real entre agentes: cada host conectado a la misma instancia local de MeMesh puede compartir memoria duradera, mientras que la herramienta message proporciona una ruta de mensajería explícita con destinatario exacto a través de MCP, HTTP y CLI.
El runtime opcional de activación nativa segura del host actualmente soporta macOS y Linux. La memoria central de MeMesh, el almacenamiento duradero de mensajes y las herramientas MCP permanecen disponibles en Windows; la activación nativa del host en Windows aún no está soportada.
- Funciona hoy: un remitente MCP, HTTP o CLI puede enviar de forma duradera a un destinatario local nombrado. Un receptor puede recuperar la carga útil por separado, reanudar desde un cursor opaco después de reiniciar y registrar la ingesta, el acuse de recibo, la disposición del flujo de trabajo y la activación del host como hechos separados.
- Con el plugin de MeMesh para Codex habilitado y la opción privada del propietario
memesh agent setup codex-sessionactivada, una sesión activa de Codex en el espacio de trabajo local configurado exacto recibe una activación nativamemesh_message_availablesin sondeo ni recordatorio humano. El marcador contiene solo metadatos de enrutamiento; Codex luego recupera la carga útil duradera con la herramienta con alcancemessage. - Una admisión exitosa en la cola (
host_accept) significa solo que la cola local de Codex aceptó el marcador. No significa que un agente leyó la carga útil, la acusó de recibo o aceptó el trabajo. - El almacenamiento duradero de mensajes está limitado por la política del propietario, no por eliminación silenciosa:
memesh message storage reportexpone la carga útil lógica, filas protegidas, páginas SQLite reutilizables y tamaño de WAL; la poda limitada es de prueba por defecto y solo marca como eliminadas las cargas útiles terminales antiguas. UnMEMESH_AGENT_MESSAGE_STORAGE_QUOTA_BYTESopcional rechaza un envío atómicamente. Consulta almacenamiento limitado y retención de auditoría. - Una sesión de Codex detenida, ausente o desconectada no se activa ni se reemplaza. Su bandeja de entrada duradera permanece disponible para auditoría y recuperación;
pollymemesh message watchson rutas de compatibilidad y diagnóstico. La entrega nativa nunca reanuda una sesión de modelo detenida, ejecuta una carga útil ni implica acuse de recibo. - Límite de confianza cooperativa: el nombre del destinatario es un ID de enrutamiento lógico, no un inicio de sesión por agente ni una ACL. Cada llamador con acceso a la misma instancia local de MeMesh debe tratarse como un participante de confianza del espacio de trabajo; los adaptadores de host aún aplican sus propios permisos y reglas de aprobación humana.
- Límite del adaptador: la activación nativa descrita aquí es la ruta configurada de sesión local de Codex. Otros bucles MCP locales pueden usar las operaciones de mensajes duraderos que su propio bucle de host soporta; esto no es una afirmación de soporte universal de host.
Consulta la Guía de Mensajería Local de Agentes para el ciclo de vida exacto, el límite de capacidades, la matriz de soporte y el trabajo restante del adaptador.
Convierte la experiencia del agente en trabajo de producto revisado
La herramienta improvement convierte memorias activas y lecciones en una propuesta de mejora de producto vinculada a evidencia, en lugar de dejar comentarios valiosos enterrados en una bandeja de entrada. Los agentes pueden proponer e inspeccionar el estado, pero no pueden aprobar sus propias ideas. Un humano acepta o rechaza a través de las superficies de revisión existentes; la aceptación preserva cada memoria fuente, vincula el elemento de trabajo revisado de vuelta a su evidencia y lo hace visible en futuros resúmenes de proyecto. Esto mantiene el aprendizaje accionable sin convertir silenciosamente una sugerencia de agente en política de producto.
Rutas de instalación de un vistazo
MeMesh tiene dos rutas de instalación que coexisten. La mayoría de los usuarios quieren ambas. Escriben en la misma base de datos de memoria (~/.memesh/knowledge-graph.db), por lo que las memorias capturadas en el chat de Claude Code aparecen en tu shell, y viceversa.
flowchart TB
classDef client fill:#1f2937,stroke:#4b5563,color:#f9fafb,stroke-width:1px
classDef pathA fill:#1e3a8a,stroke:#3b82f6,color:#eff6ff,stroke-width:2px
classDef pathB fill:#14532d,stroke:#22c55e,color:#f0fdf4,stroke-width:2px
classDef db fill:#7c2d12,stroke:#f97316,color:#fff7ed,stroke-width:2px
subgraph clients["Where you use memesh from"]
direction LR
CC["Claude Code<br/>(chat + agent)"]:::client
TERM["Terminal / other<br/>MCP clients<br/>(Codex, Cursor...)"]:::client
end
subgraph paths["Two install paths"]
direction LR
A["<b>Path A — /plugin install</b><br/>───────────────<br/>Lives in <code>~/.claude/plugins/</code><br/><br/>• MCP tools in chat<br/>• Auto-capture hooks<br/>• <code>/memesh</code> skill<br/>• Session-start banner"]:::pathA
B["<b>Path B — npm install -g</b><br/>───────────────<br/>Lives in <code>$(npm prefix -g)/bin/</code><br/><br/>• <code>memesh</code> shell command<br/>• <code>memesh-mcp</code>, <code>-http</code> bins<br/>• For Cursor / Cline / other MCP"]:::pathB
end
DB[("Shared memory DB<br/><code>~/.memesh/knowledge-graph.db</code><br/>Same data, both paths see it")]:::db
CC -->|uses| A
TERM -->|uses| B
A --> DB
B --> DB
¿Cuál necesitas?
| Lo que quieres hacer | Ruta de instalación |
|---|---|
Usar la habilidad /memesh dentro de una conversación de Claude Code | Ruta A (plugin) |
| Obtener captura automática (sesiones → lecciones → recuerdo) en Claude Code | Ruta A (plugin) |
Ejecutar memesh remember / memesh recall / memesh doctor en cualquier terminal | Ruta B (npm-global) |
Abrir el panel de control local a través de memesh serve (sin retraso de búsqueda npx) | Ruta B (npm-global) |
Conectar memesh-mcp a Codex CLI, Cursor u otro cliente MCP local | Ruta B (npm-global) |
| Todo lo anterior | Instala ambos — no entran en conflicto |
⚠️ Instalar el plugin NO instala el CLI
Esta es la confusión más común. Léelo una vez y te ahorrarás el bucle:
/plugin install memesh@pcircle-memeshdesde dentro de Claude Code → instala solo la Ruta A. Te da herramientas MCP, hooks y la habilidad/memesh. NO ponememeshen tuPATHdel shell.memesh reindex/memesh update/memesh doctorescritos en una terminal normal → necesitan Ruta B (npm-global). Sin ella:zsh: command not found: memesh.- Configuración recomendada para usuarios de Claude Code: instala ambos. Coexisten, comparten la misma base de datos y nunca entran en conflicto.
# After /plugin install ..., also run this:
npm install -g @pcircle/memesh
Si solo usas memesh a través del chat de Claude Code (nunca escribes memesh en una terminal), la Ruta A sola es suficiente. Todos los demás: instala ambos.
Comienza en 60 Segundos
Opción A — Plugin de Claude Code (instalación de una línea)
Si usas Claude Code, instala MeMesh como plugin desde dentro del CLI:
/plugin marketplace add PCIRCLE-AI/memesh
/plugin install memesh@pcircle-memesh
Claude Code conecta hooks, habilidades y el servidor MCP automáticamente. Obtienes captura automática en sesión, recuerdo proactivo, la habilidad /memesh (recordar / recuperar / aprender / olvidar) dentro de la conversación de Claude Code, y remember / recall / forget / learn disponibles como herramientas MCP para el agente.
Verifícalo: reinicia Claude Code e inicia cualquier sesión. Una línea de estado como ◉ MeMesh ready · no memories for "your-project" yet aparece en la parte superior — esa línea ES el plugin funcionando; no se necesita ningún comando separado. (Una vez que tengas memorias, muestra conteos en su lugar).
El servidor MCP se ejecuta directamente desde la salida compilada incluida del plugin — sin búsqueda de npx, sin paso de compilación y nada que compilar. memesh almacena sus datos a través de node:sqlite, que es parte del propio Node (22.13+), por lo que una actualización de Node no puede dejarlo con un binario compilado para el runtime incorrecto.
Esto instala solo el plugin. Puedes ejecutar comandos CLI a través de
npx @pcircle/memesh <command>si absolutamente no quieres una instalación global, pero escribirmemeshsimple en una terminal reportarácommand not found. Para obtener un comando real de shellmemesh, también ejecuta la Opción B a continuación — ambas rutas coexisten y comparten la misma base de datos de memoria. El diagrama "Rutas de instalación de un vistazo" arriba cubre esto.
Opción B — npm global (optimización opcional)
Si quieres el binario directamente en tu PATH del shell (para que memesh, memesh-mcp, etc. simples funcionen en cualquier terminal sin la búsqueda de npx por llamada), o quieres exponer memesh-mcp como un comando stdio de ruta fija para clientes MCP que no son de Claude Code (Codex CLI, Cursor, Cline, flujos solo de terminal):
npm install -g @pcircle/memesh
Notas de primera instalación (una sola vez):
- No se necesita compilador — el motor de base de datos es el propio
node:sqlitede Node.sqlite-vec, que añade búsqueda basada en significado, se distribuye como un archivo precompilado para macOS (arm64/x64), Linux (x64/arm64) y Windows x64; en cualquier otra plataforma simplemente está ausente y el recuerdo permanece en búsqueda por palabras clave. Nada aquí ejecuta un script de instalación, por lo quenpm install --ignore-scriptsinstala un memesh completamente funcional.- La búsqueda semántica (basada en significado) es opcional — la ruta de recuerdo predeterminada es la búsqueda por palabras clave FTS5, que no necesita modelo ni descarga. La búsqueda basada en significado necesita un embedder: ejecuta Ollama localmente, o configura un embedder en la nube (consulta "Trae tus propios embeddings" a continuación). Sin uno, memesh usa solo búsqueda por palabras clave.
Paso 1.5: Conecta MeMesh a Claude Code (solo ruta npm)
Si instalaste a través de la Opción A (/plugin install memesh@pcircle-memesh), omite este paso — Claude Code conecta los hooks del plugin automáticamente.
Si instalaste a través de la Opción B (npm install -g), el CLI está en tu PATH — pero nada está conectado a Claude Code todavía: el paquete npm deliberadamente no ejecuta scripts de instalación, y el plugin (Opción A) es lo que registra el servidor MCP y los hooks dentro de Claude Code. Lo que la ruta npm puede conectar por sí misma son los hooks de sesión. Sin ellos, aún puedes usar memesh remember / recall manualmente, pero el bucle de captura automática (sesiones → lecciones → recuerdo en la próxima sesión) está silencioso.
memesh setup # checks local host wiring and reports what it finds
O los pasos individuales a mano:
memesh install-hooks # adds memesh's hooks to ~/.claude/settings.json
memesh setup --check # machine-level verification: reads the hosts' own config, changes nothing
Los hooks coexisten con cualquier hook personalizado que ya tengas bajo ~/.claude/hooks/ — install-hooks escribe entradas aditivas y nunca sobrescribe las tuyas. Para eliminar después: memesh uninstall-hooks.
Misma memoria desde Codex CLI, Cursor y otros clientes MCP
memesh-mcp es un servidor MCP stdio simple, por lo que cualquier host compatible con MCP puede hablar con él — no solo Claude Code. Con la Opción B instalada (memesh-mcp en tu PATH), regístralo una vez por host:
# OpenAI Codex CLI — writes [mcp_servers.memesh] into ~/.codex/config.toml
codex mcp add memesh -- memesh-mcp
Para Cursor, añade el mismo servidor stdio a ~/.cursor/mcp.json (global) o
.cursor/mcp.json (a nivel de proyecto):
{
"mcpServers": {
"memesh": { "command": "memesh-mcp" }
}
}
Cada host local configurado lee y escribe el mismo ~/.memesh/knowledge-graph.db, por lo que una memoria almacenada desde un agente se puede recuperar desde Codex, Cursor u otro cliente MCP. Verifícalo desde el host pidiéndole que llame a la herramienta recall, o desde una terminal:
codex mcp list # memesh should be listed as enabled
Usa
memesh-mcp, nonpx -p @pcircle/memesh, como comando configurado.npx -pse resuelve al paquete local siempre que el directorio de trabajo del host esté dentro de un checkout de este repositorio, ejecutando silenciosamente el estado de ese árbol de trabajo en lugar de la versión instalada.
Integración nativa: Hermes Agent
Hermes Agent (NousResearch) tiene un sistema de plugins MemoryProvider de primera parte — MeMesh se integra en el mismo nivel que los backends de memoria integrados de Hermes (honcho, mem0, hindsight), no como un puente HTTP. A diferencia del modo MCP donde llamas manualmente a las herramientas, el sistema de proveedores de Hermes ejecuta recall/remember automáticamente en cada turno.
La integración mapea los hooks prefetch() y sync_turn() de Hermes directamente sobre la API HTTP de MeMesh. Guía completa con estructura de código del proveedor, configuración y cuatro errores reales de un despliegue en vivo: docs/platforms/hermes-agent.md
Integración nativa: OpenClaw
OpenClaw tiene un sistema de plugins de capacidades de memoria de primera parte — MeMesh se integra como proveedor de memoria nativo en el mismo nivel que los backends integrados de OpenClaw (LanceDB), no como un puente HTTP. El plugin se registra vía api.registerMemoryCapability() y expone las herramientas memory_recall/memory_store/memory_forget además de recuperación automática en el hook before_prompt_build.
Diferencia clave con Hermes: la captura automática de OpenClaw está limitada por umbral (máximo 3 memorias/turno cuando se activa), no en cada turno. La integración se mapea sobre la API HTTP de MeMesh (/v1/recall, /v1/remember, /v1/forget). Contrato completo del plugin TypeScript, forma de configuración y errores: docs/platforms/openclaw.md
Paso 2: Almacena una decisión
Los ejemplos de bash a continuación asumen que
memeshestá en tuPATH(Opción B). Los usuarios de la Opción A (solo plugin) tienen dos rutas equivalentes: preguntar en la conversación de Claude Code (la habilidad/memesh+ las herramientas MCP cubren los mismos flujos), o reemplazarmemeshconnpx @pcircle/memeshen cualquier shell — mismas banderas, sin necesidad de instalación global.
memesh remember "Use OAuth 2.0 with PKCE for the new auth"
O usa la forma explícita cuando quieras un nombre y tipo estables para filtrar más tarde:
memesh remember --name "auth-decision" --type "decision" --obs "Use OAuth 2.0 with PKCE"
Paso 3: Recupéralo más tarde
memesh recall "login security"
# → Finds "OAuth 2.0 with PKCE" even though you searched different words
Eso es todo. MeMesh ahora está recordando y recuperando entre sesiones.
Si quieres verificar la instalación y el cableado local de extremo a extremo:
memesh doctor
Abre el panel para explorar tu memoria:
memesh serve
Mira lo que recordó
En cualquier momento, un comando imprime lo que tu agente sabe sobre el proyecto actual — dónde se dejó el trabajo, decisiones, lecciones, actividad reciente (envuelto como datos de referencia):
memesh briefing
Where "your-project" was left off (today):
- Goal: Ship the payment retry logic
- Next: Open the PR once CI is green
Decisions and direction for "your-project":
- [decision] Use FTS5 as the retrieval baseline
Este mismo bloque es lo que Claude Code recibe automáticamente al inicio de la sesión, y lo que cualquier otro cliente MCP obtiene de la herramienta briefing — el agente comienza orientado en lugar de releer el repositorio, y dejas de reexplicar la semana pasada. El panel (memesh serve) es la vista visual completa.
Tus datos
- Un archivo local. Todo vive en
~/.memesh/knowledge-graph.db— SQLite, en tu disco. Sin cuenta en la nube; nada sale de tu máquina a menos que configures un embedder o LLM en la nube tú mismo. - Respaldo = copiar ese archivo. Restaurar = copiarlo de vuelta.
- Pausa la captura cuando quieras:
export MEMESH_AUTO_CAPTURE=false. - Elimina todo: elimina
~/.memesh/.
¿Para Quién Es Esto?
| Si eres... | MeMesh te ayuda a... |
|---|---|
| Un desarrollador que usa Claude Code | Recuperar automáticamente decisiones de proyecto, lecciones específicas de archivos y fallos pasados mientras trabajas |
| Un usuario avanzado de agentes de codificación | Compartir una capa de memoria local y un patrón de bandeja de entrada local veraz entre herramientas compatibles con MCP |
| Un individuo que usa Codex, Cursor, Claude Code u otro cliente MCP | Usar una capa de memoria local entre agentes y sesiones, y coordinar traspasos a través del almacén compartido |
| Un desarrollador que integra un agente | Añadir memoria local a través de MCP, HTTP o la CLI |
Diseñado Para Agentes de Codificación Primero
|
Claude Code / Desktop
Herramientas MCP + hooks de Claude Code |
Cualquier Cliente HTTP
|
Cualquier LLM (formato OpenAI)
Pega herramientas en cualquier llamada API |
¿Por Qué No OpenMemory, Cursor Memories, Mem0 O Zep?
| MeMesh | OpenMemory | Cursor Memories | Mem0 | Zep / Graphiti | |
|---|---|---|---|---|---|
| Mejor ajuste | Memoria local para agentes de codificación | Memoria MCP local/entre clientes | Memoria de proyecto nativa de Cursor | Memoria gestionada para apps/agentes | Grafos de conocimiento temporales |
| Forma de instalación | npm install -g @pcircle/memesh | Flujo de app/servidor local | Integrado en Cursor | API en la nube / SDK / MCP | Configuración de servicio/framework |
| Almacenamiento | Un archivo SQLite local | Pila de memoria local | Reglas/memorias gestionadas por Cursor | Pila alojada o autoalojada | Base de datos de grafos |
| Nube requerida | No | No para modo local | Depende de la cuenta/configuración de Cursor | Sí para la plataforma | Generalmente sí/autoalojado |
| Hooks de Claude Code | De primera clase | Herramientas MCP | No | Herramientas MCP | No específico de Claude Code |
| Panel | Integrado | Integrado | Configuración de Cursor | Panel de la plataforma | Herramientas de plataforma/grafos |
| Compensación | Cuña local simple, no escala empresarial | Huella de app local más amplia | Bloqueado a Cursor | Plataforma gestionada fuerte, menos local-primero | Modelo de grafos fuerte, configuración más pesada |
MeMesh intercambia infraestructura gestionada a escala empresarial por configuración local instantánea, almacenamiento inspeccionable y hooks de flujo de trabajo para agentes de codificación.
Benchmarks — 95.60% R@5 en LongMemEval-S
La recuperación de MeMesh es solo FTS5 — sin LLM, sin embeddings en la ruta crítica. Medido contra el benchmark público LongMemEval-S (500 preguntas, licencia MIT):
| Sistema | R@5 | Fuente |
|---|---|---|
MeMesh (Modo A, vía recallEnhanced()) | 95.60% | benchmarks/longmemeval/RESULTS.md |
| MemPalace | 96.6% | Autoinforme del proveedor |
| Supermemory | ~82% | Estimación del proveedor |
| Zep | 63.8% | Artículo de LongMemEval |
| Mem0 | 49.0% | Artículo de LongMemEval |
Reejecutable en ~10 segundos. Instrucciones completas, SHA256 del conjunto de datos, resultados crudos por pregunta y análisis de fallos conocidos: benchmarks/longmemeval/REPRODUCE.md.
Qué Sucede Automáticamente En Claude Code
No necesitas recordar todo manualmente. MeMesh tiene 8 hooks que capturan e inyectan conocimiento mientras trabajas:
| Cuándo | Qué hace MeMesh |
|---|---|
| En cada inicio de sesión | Carga tus memorias más relevantes + advertencias proactivas de lecciones pasadas |
| Antes de editar archivos | Recupera memorias vinculadas al archivo o proyecto antes de que Claude escriba código |
| Cuando pides recordar | Detecta la intención de "recuerda esto" / "guardar en memesh" / "sauvegarder dans memesh" / "記下來" (5 idiomas) y recuerda a Claude usar memesh |
Después de cada git commit | Registra lo que cambiaste, con estadísticas de diff |
| Cuando Claude se detiene | Captura archivos editados, errores corregidos y genera automáticamente lecciones estructuradas de los fallos |
| Antes de la compactación de contexto | Guarda conocimiento antes de que se pierda por límites de contexto |
| Antes de comandos y ediciones riesgosos | Activa los guardias de lecciones que aceptaste — una advertencia en el momento exacto en que un error registrado está a punto de repetirse |
| Cuando una sesión de Codex con opt-in inicia o se reanuda | Registra ese hilo en vivo exacto para wakeups de mensajes de MeMesh solo con metadatos; otros espacios de trabajo y sesiones detenidas no se adjuntan |
Exclúyete cuando quieras:
export MEMESH_AUTO_CAPTURE=false
Configuración
Toda la configuración es mediante variables de entorno. Los valores predeterminados son solo locales y sin red — no necesitas configurar nada para obtener un sistema funcional.
| Variable | Predeterminado | Qué hace |
|---|---|---|
MEMESH_DB_PATH | ~/.memesh/knowledge-graph.db | Sobrescribe la ubicación de la base de datos SQLite. |
MEMESH_AUTO_CAPTURE | true | Desactiva los hooks de captura automática (Stop, PreCompact) por completo. |
MEMESH_AUTO_DETECT_LLM | sin establecer (auto-detección activada) | Establécelo a 0 para evitar que memesh use una clave API que encuentre en el entorno de tu shell. Por defecto, si ANTHROPIC_API_KEY / OPENAI_API_KEY / OLLAMA_HOST está establecido y no has configurado un proveedor en ~/.memesh/config.json, memesh lo usa para funciones LLM del lado de escritura (extracción de lecciones, autoetiquetado, dream). Los embeddings no se ven afectados — siguen siendo solo de palabras clave (FTS5) a menos que establezcas explícitamente embedder.provider a ollama o openai. |
MEMESH_AUTO_UPDATE | off | Política de autoactualización. off (predeterminado) nunca autoactualiza; patch permite X.Y.Z → X.Y.Z+N; minor añade X.Y.Z → X.Y+1.0; major permite cualquier incremento. Cuando está permitido, un npm install -g separado se dispara al final de la sesión (hook Stop) para que nunca bloquee tu trabajo — los resultados llegan a ~/.memesh/auto-update.log. También se puede establecer como autoUpdate en ~/.memesh/config.json (el entorno gana). Una advertencia de deprecación del mantenedor nunca sobrescribe off: actualiza manualmente o elige una política que permita el incremento. |
OPENAI_API_KEY | sin establecer | Tu clave de OpenAI. Se usa automáticamente para funciones LLM a menos que establezcas MEMESH_AUTO_DETECT_LLM=0 o configures un proveedor explícitamente. |
OLLAMA_HOST | http://localhost:11434 | Sobrescribe el endpoint de Ollama cuando usas un proveedor local de Ollama. |
memesh doctor imprime la configuración resuelta para que veas qué está activo.
Proveedores LLM de respaldo (Modo Inteligente). En el panel Configuración → "Proveedores de respaldo" puedes establecer una cadena de conmutación por error ordenada — memesh prueba cada proveedor por turno cuando tu principal está caído. Añade un respaldo local Ollama, o uno en la nube (OpenAI / Anthropic, con una clave API). Compensación de privacidad: cuando se usa un respaldo en la nube, el texto de memoria — que puede ser privado — se envía a ese proveedor, por lo que importa si ejecutas solo local por privacidad.
Cuando npm marca una versión instalada como deprecada (típicamente un aviso de seguridad), el siguiente inicio de sesión antepone un banner fuerte ⚠️ MeMesh <ver> is DEPRECATED y memesh update-status muestra la misma línea hasta que actualices. La verificación se almacena en caché en ~/.memesh/update-check.<version>.json para que un fallo de red transitorio no pueda atenuar la advertencia.
Panel
5 pestañas, 11 idiomas, cero dependencias externas. Accede en http://localhost:3737/dashboard cuando el servidor esté en ejecución.
| Pestaña | Qué ves |
|---|---|
| Inicio | Lo que memesh hizo por ti — los insights del soñador lideran: resúmenes semanales y propuestas de patrones con aceptar/rechazar de un clic; la pila completa de analíticas (Puntuación de Salud de Memoria, línea de tiempo de 30 días, velocidad de PM + conectividad KG, patrones de trabajo) se pliega en un expansor bajo demanda |
| Memorias | Toda la biblioteca detrás de una superficie — filtro instantáneo más Enter para búsqueda clasificada por servidor (texto completo + vector), chips de alcance para la capa de trabajo (metas/decisiones/lecciones/planes) vs evidencia vs todo vs archivado, una barra de composición de clúster, detalle expandible por fila (las lecciones mantienen su vista estructurada de error/causa raíz/arreglo/prevención), archivar/restaurar en línea |
| Proyecto | El historial de un proyecto — la vista de hoja de ruta (fases, hitos, lecciones clave) detrás de un selector de proyecto |
| Grafo | Grafo de conocimiento interactivo dirigido por fuerza con filtros de tipo, búsqueda, modo ego, mapa de calor de recencia |
| Configuración | Configuración del proveedor LLM, selector de idioma instantáneo |
Funciones Inteligentes
🧠 Búsqueda Inteligente — Busca "seguridad de inicio de sesión" y encuentra recuerdos sobre "OAuth PKCE". MeMesh usa FTS5 + sqlite-vec en la ruta crítica, sin LLM, y el complemento vectorial aún alcanza a través de redacción relacionada.
🌏 Búsqueda en escrituras que no usan espacios — Chino, japonés, coreano, tailandés, lao, jemer y katakana de ancho medio se indexan como pares de caracteres superpuestos, por lo que un recuerdo escrito como 「資料庫遷移前一定要先備份」 se encuentra buscando 「備份」 — no solo por su texto completo exacto. El texto se normaliza (NFC) tanto al escribir como al consultar, por lo que los recuerdos escritos en macOS o con un IME coreano o vietnamita se encuentran en cualquiera de las dos grafías.
📊 Clasificación Puntuada — Resultados clasificados por relevancia (30%) + actualidad (25%) + frecuencia (18%) + confianza (17%) + impacto de recuperación (10%).
🔄 Evolución del Conocimiento — Las decisiones cambian. forget archiva recuerdos antiguos (nunca los elimina). supersedes relaciones vinculan antiguo → nuevo. Tu IA siempre ve la versión más reciente.
⚠️ Detección de Conflictos — memesh dream conflicts hace que el LLM evalúe tus pares de recuerdos semánticamente más cercanos en busca de contradicción, sustitución o duplicación, y presenta lo que encuentra como propuestas. Nada se aplica solo: tú revisas con dream list / dream show, y solo una propuesta aceptada crea la relación — después de lo cual cada recall que toque cualquiera de los recuerdos lleva la advertencia. La causalidad nunca se infiere de las marcas de tiempo; los veredictos provienen de lo que realmente dicen los recuerdos.
🕸️ Conectividad del Grafo de Conocimiento — memesh kg backfill-relations --all-rules vincula entidades huérfanas usando co-ocurrencia de etiquetas, agrupación de proyectos, contexto de sesión y similitud de nombres — sin necesidad de LLM.
📦 Respaldo y migración personal — memesh export > memesh-backup.json → cópialo a otra máquina → memesh import memesh-backup.json
Los paquetes importados siguen siendo buscables, pero MeMesh no inyecta automáticamente recuerdos importados en el contexto del host hasta que los revises o los vuelvas a almacenar localmente.
Ejemplo de Uso
"MeMesh recordó que elegimos PKCE sobre flujo implícito hace tres semanas. Cuando le pregunté a Claude sobre autenticación nuevamente, ya lo sabía — sin necesidad de volver a explicar." — Desarrollador independiente, construyendo un SaaS
"Guardé una decisión de Claude Code y la recordé desde Codex al día siguiente. La misma memoria local siguió mi trabajo en lugar de un solo agente." — Desarrollador independiente que usa múltiples agentes de codificación
"El panel me mostró que el 90% de mis recuerdos eran registros de sesión generados automáticamente. Empecé a usar
rememberdeliberadamente para decisiones de arquitectura. Cambió el juego." — Desarrollador que descubrió el panel de análisis
Recetas
Detecta una contradicción antes de que muerda
Dos decisiones, tomadas con semanas de diferencia, que no pueden ser ambas verdaderas — el modo de fallo que una capa de memoria existe para detectar:
memesh remember --name retry-policy --type decision \
--obs "All HTTP clients retry failed requests up to 5 times with exponential backoff."
# ...weeks later, someone decides the opposite...
memesh remember --name retry-policy-v2 --type decision \
--obs "HTTP clients must never retry automatically — fail fast and surface the error."
memesh dream conflicts # the judge flags the pair, with its reasoning
memesh dream show 1 # read the verdict, the excerpts, what accepting creates
memesh dream accept 1 # YOU decide — nothing is ever linked automatically
memesh recall "retry policy" # → Warning: Conflicts detected
A partir de entonces, cualquier asistente que recuerde cualquiera de las dos decisiones recibe la información de que entran en conflicto — en lugar de citar con confianza la que haya encontrado primero.
Una memoria, tres asistentes
MeMesh es un servidor MCP, por lo que el mismo archivo SQLite sirve a cada cliente MCP en la máquina. Regístralo una vez por herramienta (comandos exactos en Comienza) y una decisión registrada en Claude Code es recordada por Codex u otro cliente MCP local configurado a mitad de sesión — sin volver a explicar, sin copiar y pegar contexto entre proveedores.
Registra decisiones para que sigan siendo encontrables
La captura automática mantiene el historial de sesión, pero los recuerdos que valen la pena son los deliberados:
memesh remember --name auth-approach --type decision \
--obs "JWT with RS256; PKCE over implicit flow because the client is public." \
--tags "project:myapp" "topic:auth"
Luego vincula las consecuencias a sus causas a medida que ocurren — desde cualquier cliente MCP,
en palabras simples: "recuerda este incidente como una lección, influenciado por
enfoque-de-autenticación". La herramienta remember acepta relaciones de forma libre, y caused /
influenced son el vocabulario causal documentado (causa → efecto, declarado
explícitamente — MeMesh nunca infiere causalidad de las marcas de tiempo). Semanas después,
memesh recall "why did we pick PKCE" devuelve la decisión con sus
consecuencias registradas adjuntas — razonamiento que puedes seguir, no solo texto que coincidió.
Desbloquea el Modo Inteligente (Opcional)
MeMesh funciona sin conexión por defecto — la recuperación permanece estrictamente sin LLM (95.60% R@5 en LongMemEval-S de fábrica). Agrega una clave de API de LLM solo si quieres flujos de análisis aumentados por LLM encima: extracción de sesión más inteligente, etiquetado automático de nuevos recuerdos, generación de lecciones a partir de fallos y compresión dream:
memesh config set llm.provider anthropic
memesh config set llm.api-key sk-ant-...
O usa la pestaña de Configuración del panel (configuración visual):
memesh serve # opens dashboard → Settings tab
Extrae tus sesiones pasadas a memoria. memesh dream run --from-transcripts lee las transcripciones de sesión de Claude Code de este proyecto, le pide al LLM las decisiones y lecciones enterradas en la conversación, y las presenta como propuestas — nada entra a tu grafo automáticamente. Revisa cada una con memesh dream show <id> y acepta las que valga la pena conservar. Para ejecutarlo en un horario, habilita memesh config set transcriptMining true y apunta una entrada de cron/launchd a memesh dream run --from-transcripts --if-due — se auto-limita (por defecto una vez cada 24h por proyecto) y permanece solo en modo de propuesta. Consulta API_REFERENCE.
Búsqueda semántica / incrustaciones (opcional)
Por defecto MeMesh hace recuperación solo por palabras clave (FTS5) — sin clave de API, sin descarga de modelos, nada sale de tu máquina. La búsqueda semántica (basada en significado) es opcional y necesita un incrustador. Apunta uno de estos hacia él:
memesh config set embedder.provider ollama # local, needs `ollama serve`
# or, for a hosted embedder:
memesh config set embedder.provider openai
El incrustador se configura independientemente del LLM de chat — cambiar llm.provider nunca cambia silenciosamente tus incrustaciones. Cada proveedor fija su propio modelo y ancho (ollama → nomic-embed-text a 768, openai → text-embedding-3-small a 1536); el modelo no es seleccionable por separado, porque un índice vectorial se fija a un ancho y un segundo modelo pondría vectores de un espacio de incrustación diferente en él.
Si cambias a un incrustador con una dimensión diferente (ej. 768 → 1536), nada se elimina. MeMesh conserva el índice existente y te indica al abrir que ejecutes memesh reindex, que construye el nuevo índice junto al antiguo y cambia solo una vez que cada recuerdo tiene un vector — por lo que una reconstrucción interrumpida no te cuesta nada y se reanuda donde se detuvo. Durante esa ventana, la búsqueda semántica está desactivada y la recuperación funciona solo con búsqueda de palabras clave; recall informa esto como degraded en lugar de implicar que buscó. Valores admitidos de embedder.provider: ollama (local), openai (alojado). Sin ninguno configurado, la recuperación permanece en búsqueda de palabras clave.
| Nivel 0 (predeterminado) | Nivel 1 (Modo Inteligente) | |
|---|---|---|
| Búsqueda | FTS5 + sqlite-vec, 95.60% R@5 | sin cambios — la recuperación es sin LLM en cada nivel |
| Captura automática | Patrones basados en reglas | + LLM extrae decisiones y lecciones |
| Etiquetado automático | Solo etiquetas manuales | + LLM genera etiquetas para nuevos recuerdos |
| Análisis de fallos | No disponible | + LLM convierte errores de sesión en lecciones estructuradas |
| Compresión | No disponible | dream comprimen recuerdos verbosos |
| Costo | Gratis, sin clave de API | ~$0.0001 por llamada de análisis (Haiku) |
Los 11 Herramientas de Memoria y Coordinación
| Herramienta | Qué hace |
|---|---|
remember | Almacena conocimiento con observaciones, relaciones y etiquetas |
recall | Búsqueda FTS5 + sqlite-vec con puntuación multifactorial (relevancia, actualidad, frecuencia, confianza, impacto de recuperación) — sin LLM en la ruta crítica |
forget | Archivo suave (nunca elimina) o elimina observaciones específicas |
export | Respalda, migra o mueve recuerdos como JSON entre agentes compatibles |
import | Importa recuerdos con estrategias de fusión (omitir / sobrescribir / agregar) |
learn | Registra lecciones estructuradas de errores (error, causa raíz, corrección, prevención) |
task_state | Lee o registra dónde está el trabajo — objetivo, siguiente paso, bloqueador, lo que se acaba de terminar |
briefing | La topología de trabajo ensamblada — el mismo bloque que Claude Code recibe al inicio de sesión, para cualquier cliente MCP |
user_patterns | Analiza tus patrones de trabajo — horario, herramientas, fortalezas, áreas de aprendizaje |
improvement | Presenta una mejora de producto vinculada a evidencia para revisión humana, o lee su estado; los agentes no pueden aceptarla ni rechazarla |
message | Envía, consulta, obtiene y confirma explícitamente mensajes duraderos de destinatario exacto en una instancia local de MeMesh |
Arquitectura
┌─────────────────┐
│ Core Engine │
│ operations │
└────────┬────────┘
┌─────────────────┼─────────────────┐
│ │ │
CLI (memesh) HTTP API (serve) MCP (memesh-mcp)
│ │ │
└─────────────────┼─────────────────┘
│
SQLite + FTS5 + sqlite-vec
(~/.memesh/knowledge-graph.db)
El núcleo es independiente del framework. La misma lógica se ejecuta desde terminal, HTTP o MCP.
Actualización
El mercado de complementos de Claude Code fija las versiones al momento de la instalación y no se actualiza automáticamente. Para obtener una nueva versión:
Opción A — Interfaz de /plugin: desinstala memesh@pcircle-memesh, luego reinstala. Claude Code obtiene la versión más reciente del mercado.
Opción B — un comando (sin clics en la interfaz, idempotente; requiere la CLI de npm, npm install -g @pcircle/memesh):
memesh upgrade-plugin
Encuentra tu versión instalada del complemento, verifica los requisitos previos y ejecuta el script de actualización incluido por ti. Requisitos previos: node, npm y rsync en tu PATH (macOS incluye rsync; Debian/Ubuntu: sudo apt install rsync).
Los usuarios solo de complemento sin la CLI de npm aún pueden ejecutar el script manualmente — sustituye tu versión instalada en la ruta:
bash ~/.claude/plugins/cache/pcircle-memesh/memesh/<current-version>/scripts/upgrade-plugin.sh
# Installs from before v4.2.5 don't contain the script yet; use the
# npm-global copy instead (see "Install paths at a glance" above):
bash "$(npm prefix -g)/lib/node_modules/@pcircle/memesh/scripts/upgrade-plugin.sh"
El script avanza rápidamente la caché del mercado, prepara la nueva versión bajo ~/.claude/plugins/cache/, instala las dependencias de ejecución y re-apunta installed_plugins.json. Reinicia Claude Code después para que el servidor MCP se reconecte.
Instalaciones globales de npm (npm install -g @pcircle/memesh) pueden auto-actualizarse mediante memesh update. Clonados de fuente: git pull && npm install && npm run build.
Al inicio de sesión aparece un banner de una línea (limitado a una vez cada 24h por versión) cuando hay una versión más reciente disponible, y memesh doctor informa el objetivo de actualización con el comando específico del canal.
Contribuciones
git clone https://github.com/PCIRCLE-AI/memesh
cd memesh && npm install && npm run build
npm test
npm run test:e2e-dashboard
Panel: cd dashboard && npm install && npm run dev
MIT — Hecho por PCIRCLE AI