The same server runs against Ollama on your own machine or against the Anthropic API, selected by the model name on the launch line, so the semantic work can stay local if the memories are sensitive. Three storage layers is real setup cost; the payoff is that a search returns related memories through the graph rather than only the ones that happened to share vocabulary.
A memory system rather than a note store. Memories go into a local SQL database, get embedded for semantic search in ChromaDB, and are linked into a Neo4j graph so retrieval can follow relationships instead of only matching text. A configurable LLM — a local Ollama model or the Anthropic API — does the classification and concept extraction.
- A memory saved with automatic linking into the relationship graph, and search that returns the wider context around a hit rather than the hit alone — `save_memory_with_graph`, `search_memories_with_graph`
- The relationship network around one memory, and network-wide statistics — `get_memory_graph_context`, `get_graph_statistics`
- Health and container status for the backing services — `memory_status`
- Semantic analysis over stored memories: classification as technical, emotional, procedural or factual, key-concept extraction, metadata enrichment for tools, people and code, and automatic semantic linking, run asynchronously in batches
- Container management that starts ChromaDB and Neo4j for you through Podman or Docker and restarts them when they fail
Node.js >= 18.0 and TypeScript >= 5.0. For the analysis layer, either an Anthropic API key in `ANTHROPIC_API_KEY` or a local Ollama model — the launch line takes `--db-path` for the database file and `--brain-model` for the model to use. Neo4j is optional but recommended, configured through `NEO4J_URL`, `NEO4J_USER` and `NEO4J_PASSWORD`, and can be run from a container. Install from a clone with `npm install` and `npm run build`, then point your client at `build/index.js`.
Build from source — clone the repository and build it, then point your client at the binary
