Mismem

io.github.lucasmella-stackPublished by GitHub account lucasmella-stackv0.2.0Updated Oct 25, 2026

Cooperative persistent memory for LLMs: episodes, memories and traits over SQLite (FTS5, Hebbian)

VerifiedSTDIODesktop onlyDatabasesKnowledge & Memory

Overview

AI-generated overview

Persistent memory for LLMs over a local SQLite database, letting an assistant capture, recall, reinforce and forget memories across sessions and clients.

What you can do
  • Capture episodes, memories and traits into a local SQLite store, with an Engram-compatible layer of save and search calls
  • Recall across all three layers using hybrid keyword (FTS5) and optional embedding search, scoped per project or client
  • Reinforce used memories and let unused ones decay, with a Hebbian index of memories used together
  • Consolidate episodes into distilled memories and crystallize stable patterns into traits
  • Forget entries, and ingest or export data such as ChatGPT exports, VS Code transcripts, Obsidian vaults and Engram migrations
  • Inspect memories, traits, pending items and the graph through an optional web viewer
When to use it
Useful when you want an assistant to keep context and continuity between sessions and across several MCP clients, instead of repeating background each time. It suits people who prefer memory to stay in a local file they control and who may want scoped memory per project.
Requirements
Runs as a local stdio process, typically via npx with the npm package or from a built engine with Node 22. The SQLite database is created on first use at ~/.mismem/mem.db, configurable with MISMEM_DB. Optional semantic search needs an embeddings server, and optional nightly consolidation needs an API key for an OpenAI-compatible provider. A Docker image with an HTTP endpoint and BasicAuth is also offered.
Before you install
The database holds personal memory content, so keep it out of version control. Two optional features send text off the machine: the embeddings server receives memory, trait, episode and query text, and LLM consolidation sends episodes verbatim to the configured provider. The HTTP server runs without authentication unless MISMEM_AUTH_USER and MISMEM_AUTH_PASS are set, so only expose it on localhost otherwise. The install script writes provider keys to a config file and modifies MCP client…

Installation

In SourceWeft

  1. Open Mismem in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[misMEM]

misMEM

Memoria persistente cooperativa para LLMs.
Una SQLite, un protocolo MCP, todos tus clientes.

[CI] [Última release] [Licencia MIT] [Node 22 o superior]

Qué es y por qué

Cada instancia de un LLM nace sin memoria, y cada herramienta (opencode, Claude Code, Codex, Cursor, VS Code...) guarda lo suyo en silos incompatibles: hay que repetir el contexto y la continuidad muere entre sesiones. misMEM lo resuelve con una base SQLite (~/.mismem/mem.db) y un protocolo MCP de seis invocaciones, accesible desde cualquier cliente que hable MCP. La cooperatividad hace a la persistencia de la información.

La memoria tiene tres capas, como la biológica, y la pérdida es intencional: lo crudo se disuelve, lo destilado persiste, lo cristalizado permanece.

mermaid
flowchart LR    C["Cualquier cliente MCP<br/>opencode, Claude Code, Codex,<br/>Cursor, VS Code..."]
    subgraph E["engine (Node 22)"]        S["server.ts<br/>MCP por stdio"]        H["server-http.ts<br/>MCP por HTTP y visor, :3200"]    end
    subgraph D["SQLite (mem.db)"]        EP["episodes<br/>texto literal"] -->|consolidación| ME["memories<br/>gist, saliencia"] -->|crystallize| TR["traits<br/>patrones estables"]    end
    N["Consolidación nocturna<br/>mismem-consolidate"]    L["LLM<br/>cualquiera con API compatible con OpenAI"]    V["Servidor de embeddings<br/>cualquier modelo, por /v1/embeddings"]
    C -->|stdio| S    C -->|HTTP| H    S --> D    H --> D    N -->|episodios pendientes| L    L -->|memorias destiladas| N    N --> D    V -.->|vectores, opcional| E

Quickstart

Linux: un script lo configura todo

bash
git clone https://github.com/lucasmella-stack/misMEM.git && bash misMEM/scripts/install.sh

Pregunta dónde guardar la memoria y con qué proveedor consolidar (DeepSeek, OpenRouter, OpenAI, un servidor compatible o ninguno), deja la clave en ~/.config/mismem/env con permisos 600 y configura los clientes MCP que encuentre, con los hooks de inyección y refuerzo en Claude Code. Ofrece además montar un servidor de embeddings local para la búsqueda por significado (otro servidor u otro modelo) y dejar la consolidación nocturna como timer de systemd.

Los clientes llaman a ~/.local/bin/mismem-run, así que ninguna clave queda en su configuración. Volver a ejecutarlo actualiza sin duplicar y respeta lo que esté configurado a mano. --help explica el resto: --from-npm, el modo sin preguntas y qué clientes toca.

Docker: un servidor para varias máquinas

bash
docker run -d --name mismem-brain \  -e MISMEM_AUTH_USER=brain -e MISMEM_AUTH_PASS=<contraseña> \  -v mismem-data:/data -p 127.0.0.1:3200:3200 \  ghcr.io/lucasmella-stack/mismem-brain:latestcurl http://127.0.0.1:3200/healthz

Imagen multi-arch (linux/amd64 y linux/arm64). El visor queda en /viewer y el MCP en /mcp; para exponerlo con Traefik y TLS, DEPLOY.md.

npm: sin clonar nada

En la configuración MCP del cliente; el fichero y la forma cambian de uno a otro. Éste es el de los que usan mcpServers en JSON:

json
{  "mcpServers": {    "mismem": {      "command": "npx",      "args": ["-y", "@lucasmella/mismem"]    }  }}

La base se crea sola en el primer uso (~/.mismem/mem.db, configurable con MISMEM_DB) y no sale de la máquina; las dos funciones opcionales que mandan texto afuera están en Privacidad.

Desde el código
bash
git clone https://github.com/lucasmella-stack/misMEM.gitcd misMEM/enginepnpm installpnpm test        # todo verde antes de usarpnpm build       # compila a dist/

Y en la configuración MCP del cliente: "command": "node", "args": ["<ruta-al-repo>/misMEM/engine/dist/server.js"].

Qué incluye

Qué haceMás
Seis invocacionescapture, recall, reinforce, consolidate, crystallize, forget, más una capa de compatibilidad con Engram (mem_save, mem_search, ...)Arquitectura
Recall híbridoPalabras (FTS5) y significado (embeddings, opcional) fusionados por RRF sobre las tres capas a la vez. Si el servidor de embeddings cae, sigue por palabrasRecall
Medido, no supuestoUn corpus dorado público en castellano y pnpm eval: aciertos y MRR por tipo de pregunta, contra un suelo declaradoRecall
Saliencia con decayLo que no se usa pierde la mitad cada 90 días; el refuerzo sigue el uso real, no la apariciónArquitectura
Índice hebbianoCuenta qué recuerdos se usaron juntos en el mismo turnoArquitectura
ÁmbitosUn scope por proyecto o cliente dentro de la misma base; una búsqueda con ámbito no mezcla los demásArquitectura
Consolidación nocturnaUn LLM destila los episodios en memorias, con prefiltro de ruidoConsolidación
Visor webMemorias, rasgos, lo pendiente, el origen de cada recuerdo, el estado del índice semántico y el grafo; con acciones opcionalesArquitectura
TemasQué recuerdos hablan de lo mismo aunque vivan en ámbitos distintos, calculado sobre los vectores. El grafo se puede pintar por temaArquitectura
Lo que el modelo recibeEl servidor anuncia cuándo usar cada herramienta; cada resultado de recall trae su capa, su fecha, los detalles y la polaridadArquitectura
Hooks de clienteAdelantan recuerdos antes de responder y refuerzan los que se usaronHooks
Ingesta y exportaciónExports de ChatGPT, transcripts de VS Code, migración desde Engram, bóveda de ObsidianArquitectura
Servidor remotoMCP por Streamable HTTP con BasicAuth, guarda de Host y límite de cuerpo; el visor entra por su propio formularioDEPLOY.md

El visor

Capturas del visor (/viewer): el grafo entero con sus ajustes, y el grafo local alrededor de una memoria con su detalle al costado. Cada nodo mide sus conexiones visibles y se pinta por ámbito o por tema.

[Visor: grafo de episodios, memorias y rasgos, con los ajustes del grafo abiertos] [Visor: grafo local alrededor de una memoria, con su detalle al costado]

Documentación

ParaIr a
Operar un servidor, y todas las variables de entornoDEPLOY.md
Entender el motordocs/architecture.md, docs/recall.md, docs/hooks.md
ContribuirCONTRIBUTING.md y las normas
Convenciones para agentesAGENTS.md
Qué cambió en cada versiónCHANGELOG.md
Reportar una vulnerabilidadSECURITY.md
Qué documento es para quiéndocs/README.md

Privacidad

La memoria es de quien la usa. La base (*.db), los volcados y los exports personales están en .gitignore: nunca se commitean. El servidor HTTP sin MISMEM_AUTH_USER y MISMEM_AUTH_PASS corre sin autenticación: así sólo en localhost.

Dos funciones opcionales mandan texto fuera del proceso, y sólo si se configuran:

  • Búsqueda por significado: el servidor de embeddings recibe el texto de cada memoria, de cada rasgo, de cada episodio pendiente y de cada consulta. Conviene correrlo en la propia máquina o en la red interna.
  • Consolidación con LLM: los episodios viajan textuales al proveedor configurado (DeepSeek, OpenRouter, OpenAI o cualquier servidor compatible). Sin su clave no corre, y apuntándola a un servidor de la propia red no sale nada.

Contribuir

Los issues y los PR son bienvenidos. El punto de partida es CONTRIBUTING.md: entorno, flujo, formularios de issue y plantillas de PR.

Gracias

misMEM lo arrancó una persona sola, pero no siguió así. @iDiagoValeta colaboró en su desarrollo de forma activa como muestra de su amor y apoyo incondicional hacia el Open-Source.

Licencia

MIT. Ver LICENSE.

Source: README.md at commit 878f089

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts