Skip to main content
memloom is one store with several distinct capabilities layered on it. This page is the tour; each section links to the page that explains the mechanism.

Save runs a belief pipeline

save doesn’t just insert a row. With an API key configured, every incoming memory runs through the belief pipeline:
  • Exact duplicate → merged, nothing stored twice.
  • Same fact, reworded → the memory becomes a new version of the existing belief (the old version stays in history).
  • Contradiction → both memories stay active and a conflict is recorded for you to resolve. memloom never silently overwrites what you believed before.
  • Genuinely new → added.
See Memory types & versioning and Conflicts.

Hybrid recall

recall ranks results with three retrieval arms fused together: vector similarity (meaning), Postgres full-text search (exact words: file paths, error codes, config keys), and entity anchoring (things the query names). One query searches your saved memories and your ingested files, in one ranking. See Retrieval.

An assistant grounded in your store

The viewer’s assistant tab chats over your memories and files. The model decides when to search (via the same hybrid recall), answers only from what it found, and cites passages you can open: each answer lists its sources with a jump into the graph. Pick any tool-capable OpenRouter model from the composer, with prices and context windows shown. Attach a file to a chat with + and it becomes searchable in that chat only, deleted with it. See The assistant.

Context: your files, searchable and cited

memloom context add ./docs ingests .md, .txt, and .pdf files (directories recurse). Files are chunked along their real structure (markdown headings, ALL-CAPS titles, numbered points), so a chunk is one definition or one section instead of a blind 1,000-character window. Every result from a file says where it came from: from lecture-notes.pdf › LIMITS OF FUNCTIONS > 2. DEFINITION (p. 1). Documents are mirrors: re-adding an unchanged file is a no-op, a changed file replaces its chunks. See Extractors & chunking.

One graph over memories and context

memloom index extracts entities (people, projects, tools, concepts) from memories and context chunks and links everything through them. The viewer renders it: memories as circles, entities as purple circles, documents as diamonds that expand into chunk squares on click. A 300-page PDF stays one node: chunk-level links roll up into one weighted document → entity edge. The graph is yours to correct: the extraction vocabulary is a registry you can extend, review, and prune, and every entity can be renamed, retyped, merged into another, or deleted from the schema tab. See The graph.

Version history for every belief

Every memory is a version chain. Rewording a fact, editing it with memloom update, or resolving a conflict appends a version; nothing is ever destroyed. memloom history <id> (or the memory_history MCP tool) walks the chain. See Memory types & versioning.

Human-in-the-loop conflicts

When two memories can’t both be true, memloom keeps both and asks you: in the viewer, the CLI, or through an agent using the MCP tools. Every resolution (keep new, keep existing, keep both, merge) is reversible. See Conflicts.

Import your Claude Code history into that same store

memloom import sessions reads your local Claude Code sessions, redacts secret-shaped strings, and distills each session into typed memories through the exact belief pipeline described above. Every imported memory keeps provenance back to the session file and line range it came from. memloom connect claude-code makes capture continuous: a session-end hook distills each session as it finishes, bounded by a daily budget so nothing runs unattended, and a prompt-time hook recalls relevant memories into every Claude Code prompt, so the agent uses what it knows without being asked to. Imported or hand-saved, it’s the same store: a recall doesn’t care whether a memory came from typing memloom save or from a session you closed months ago. See Session distillation and Import.

Every client, one store

All of them talk to one daemon that owns one store, so an agent’s save is instantly visible in the viewer and your CLI recall sees what the agent ingested. See Architecture.

Local-first, yours

The store is a folder: ~/.memloom/data. Copy it to back it up. Delete it to start over. The only network calls are to the embedding/LLM provider you configure. Without a key, memloom runs fully offline in a reduced mode. See Configuration and Self-hosting.