# memloom docs ## Docs - [Introduction](https://docs.memloom.dev/index.md): A memory engine you own, running on your machine - [Features](https://docs.memloom.dev/features.md): What memloom does, in one pass - [Use cases](https://docs.memloom.dev/use-cases.md): What you can do with a local memory engine - [Architecture](https://docs.memloom.dev/concepts/architecture.md): One daemon owns the store, everything else is a client - [Memory types and versioning](https://docs.memloom.dev/concepts/memory-types.md): The taxonomy, the belief lifecycle, and version chains - [Conflicts](https://docs.memloom.dev/concepts/conflicts.md): Contradictions are kept, surfaced, and resolved by you, reversibly - [Session distillation](https://docs.memloom.dev/concepts/distillation.md): How a Claude Code session becomes memories - [The graph](https://docs.memloom.dev/concepts/graph.md): One graph over memories and context, at two granularities - [Entity resolution](https://docs.memloom.dev/concepts/entity-resolution.md): Fold the several spellings of one thing into one entity, reversibly - [Reconciliation](https://docs.memloom.dev/concepts/reconciliation.md): memloom reviews its own store, fixes what it can prove is wrong, and asks you about the rest - [Retrieval](https://docs.memloom.dev/concepts/retrieval.md): Hybrid recall: vector, keyword and entity, fused by rank - [The assistant](https://docs.memloom.dev/concepts/assistant.md): Chat with your store: grounded answers, cited sources, any OpenRouter model - [Agent setup](https://docs.memloom.dev/guides/agent-setup.md): A runbook an AI agent can follow to install and configure memloom end to end - [Extractors and chunking](https://docs.memloom.dev/guides/extractors.md): How files become searchable chunks, and how to add a format - [Recordings: audio and video](https://docs.memloom.dev/guides/recordings.md): Local transcription, speaker identification, and the ingest queue - [Watching files and folders](https://docs.memloom.dev/guides/file-sync.md): Linked files stay current on their own, and only what changed is re-embedded - [Memory per person](https://docs.memloom.dev/guides/memory-per-person.md): One store, many owners: binding an owner id so a chatbot remembers each user separately - [Configuration](https://docs.memloom.dev/guides/configuration.md): config.env, the two modes, and the embedding fingerprint - [Self-hosting and migration](https://docs.memloom.dev/guides/self-hosting.md): From a folder on your laptop to a Postgres server in Docker - [Save a memory](https://docs.memloom.dev/api-reference/save-a-memory.md): Save a memory through the belief pipeline: exact-duplicate detection, semantic dedup, and contradiction detection. A contradiction keeps **both** memories active and returns `outcome: conflict` with a `conflictId` for you to resolve. Nothing is overwritten. - [Recall memories](https://docs.memloom.dev/api-reference/recall-memories.md): Hybrid retrieval over active memories: vector similarity + exact keyword + entity match, fused with reciprocal-rank fusion. Results are ordered by `rrfScore`, which is rank-based and small by design (about 0.03 max). `similarity` is the plain cosine similarity score. - [List all active memories](https://docs.memloom.dev/api-reference/list-all-active-memories.md): Every active memory, newest first. Use this to browse the store; use /memory/query for relevance-ranked recall. Stale (superseded) memories are excluded. - [Edit a memory into a new version](https://docs.memloom.dev/api-reference/edit-a-memory-into-a-new-version.md): An explicit edit: unlike a `save` that happens to resemble an existing memory, this always creates a new version, no dedup classifier involved. The target must be an active belief; the edited version goes stale and stays visible in `history`. - [A memory's full version chain](https://docs.memloom.dev/api-reference/a-memorys-full-version-chain.md): Every version of the belief, newest first, including stale ones. History is the one place a stale version is still visible; recall never returns them. Any version's id in the chain works as `id`. - [Delete a memory's whole belief](https://docs.memloom.dev/api-reference/delete-a-memorys-whole-belief.md): Deletes every version in the lineage, its edges, and any pending conflict that names it. Unlike a resolution's `stale`, this is permanent; there is no revert. - [The full text behind a truncated recall result](https://docs.memloom.dev/api-reference/the-full-text-behind-a-truncated-recall-result.md): A recall hit's content can be truncated for display; this returns the complete text of one memory or context chunk by id. What the MCP `read_passage` tool and the assistant's citation links call to fetch the rest. - [Index memories and context chunks (extract entities)](https://docs.memloom.dev/api-reference/index-memories-and-context-chunks-extract-entities.md): Extract entities from memories AND context chunks that have not been indexed yet and link them into the graph with mention edges. Runs the LLM extractor (one call per row, so large documents take proportionally longer); a no-op in offline mode. - [Index with real-time progress (NDJSON stream)](https://docs.memloom.dev/api-reference/index-with-real-time-progress-ndjson-stream.md): Same work as /memory/index, but the response streams newline-delimited JSON as it runs: one `{"type":"item"}` event per processed memory/chunk (with its label, 1-based position, total, and extracted entity names), then a final `{"type":"done"}` event with the run totals. Failures mid-run arrive in-b… - [Rebuild the graph from scratch](https://docs.memloom.dev/api-reference/rebuild-the-graph-from-scratch.md): Wipes every extracted artifact (all entities, their mention edges, and all typed entity-to-entity edges), then re-runs indexing over everything. Belief edges (replaces, distinct) are never touched. Use it to recover when an older extraction pipeline polluted the graph. - [Rebuild with real-time progress (NDJSON stream)](https://docs.memloom.dev/api-reference/rebuild-with-real-time-progress-ndjson-stream.md): Same work as /memory/reindex, streamed as newline-delimited JSON in the same shape as /memory/index/stream (item events, then done; errors in-band). - [Index sessions (persistent run history)](https://docs.memloom.dev/api-reference/index-sessions-persistent-run-history.md): Every index/reindex pass is recorded as a run: trigger (index|rebuild), status (running|success|warning|error|interrupted), batch size, per-kind indexed counts, failures, and entity/relation totals. Newest first. The viewer's Console polls this while a run is live; history survives restarts and incl… - [Clear the whole indexing history](https://docs.memloom.dev/api-reference/clear-the-whole-indexing-history.md) - [The per-item log lines of one run](https://docs.memloom.dev/api-reference/the-per-item-log-lines-of-one-run.md) - [Delete one run session (its events cascade)](https://docs.memloom.dev/api-reference/delete-one-run-session-its-events-cascade.md) - [Auto-index state](https://docs.memloom.dev/api-reference/auto-index-state.md): Whether new memories and files are entity-indexed automatically in the background (debounced runs a few seconds after a save/ingest). `available` is false in offline mode: extraction needs an LLM, so there is nothing to toggle. - [Turn auto-index on or off](https://docs.memloom.dev/api-reference/turn-auto-index-on-or-off.md): The Console's toggle. Persisted in the store, so the choice survives daemon restarts; the MEMLOOM_AUTO_INDEX config value is only the default before the toggle is first used. Refused with 409 in offline mode. - [Get the memory graph](https://docs.memloom.dev/api-reference/get-the-memory-graph.md): Returns active memories, extracted entities, and context documents as nodes, with the edges between them. Chunk-level mention edges are rolled up to one weighted document -> entity edge, so documents stay single nodes. - [The graph schema registry with live counts](https://docs.memloom.dev/api-reference/the-graph-schema-registry-with-live-counts.md): The vocabularies the indexer extracts against: entity types and typed-relationship predicates as registry rows (tier system/user, status active/disabled), edge relations from the engine, and the LLM proposal review queue (names the extractor wanted, with occurrence counts). - [Add a user-tier vocabulary entry](https://docs.memloom.dev/api-reference/add-a-user-tier-vocabulary-entry.md): Add an entity type or predicate to the extraction vocabulary. The name is normalized to snake_case; the description becomes part of the extraction prompt, so write it like a rule ("a named drug or supplement"). Takes effect on the next index run. - [Enable or disable a vocabulary entry](https://docs.memloom.dev/api-reference/enable-or-disable-a-vocabulary-entry.md): Disabled entries leave the extraction prompt; entities already extracted under them stay in the graph. Works on system and user tiers (proposals have their own approve/dismiss lifecycle). - [Delete a disabled user-tier entry](https://docs.memloom.dev/api-reference/delete-a-disabled-user-tier-entry.md): Permanently remove a vocabulary entry. Only **disabled user-tier** entries qualify: built-in entries are re-seeded by name on the next run (a delete would bring them back active), so disabling is the only way to turn them off, and proposals are approved or dismissed instead. Entities already extract… - [Approve a proposal](https://docs.memloom.dev/api-reference/approve-a-proposal.md): Promote a proposed name to the user tier and link its saved occurrences into the graph immediately (no re-index needed). The extractor also starts using the name on the next index run. - [Dismiss a proposal](https://docs.memloom.dev/api-reference/dismiss-a-proposal.md): Reject a proposed name. The prompt blocklists it, so the extractor never proposes it again. - [List entities with usage counts](https://docs.memloom.dev/api-reference/list-entities-with-usage-counts.md): Every extracted entity with its usage: active mention edges, distinct memories, and distinct documents that mention it. Most-mentioned first. Use this list to manage entities; /memory/graph shows the same data as a graph. - [Walk the graph from one entity](https://docs.memloom.dev/api-reference/walk-the-graph-from-one-entity.md): Everything connected to one entity. The target may be an id, a name, or a folded-away spelling, which resolves to its canonical with `matchedAlias` naming what was asked for. Matched exactly, not by meaning: this is a graph lookup, not a search. - [Find and fold duplicate entity spellings](https://docs.memloom.dev/api-reference/find-and-fold-duplicate-entity-spellings.md): One resolution pass over the entity table. Spellings that are identical apart from case and punctuation are folded without asking; uncertain pairs are written to the conflicts queue for review. Idempotent and safe to re-run. - [List uncertain entity folds awaiting review](https://docs.memloom.dev/api-reference/list-uncertain-entity-folds-awaiting-review.md): Pairs the resolver was not confident enough to fold. Resolve them through POST /memory/conflicts/{id}/resolve like a memory conflict: `keep_existing` folds the queued spelling into the candidate, `keep_new` folds the other way, `keep_both` settles them as different things. `merge` does not apply to… - [List entity folds](https://docs.memloom.dev/api-reference/list-entity-folds.md): Every fold, newest first, including reverted ones (`revertedAt` is set). `decidedBy` says what applied it: `auto` for a deterministic spelling match, `human` for a fold you applied, `llm` for a future arbitration tier. - [Undo an entity fold](https://docs.memloom.dev/api-reference/undo-an-entity-fold.md): Restores the absorbed entity with its original id, type, vector and creation time, repoints exactly the edges the fold moved, reactivates exactly the edges it deactivated, and removes the alias. The original id matters because deactivated edges still point at it. - [Rename or retype an entity](https://docs.memloom.dev/api-reference/rename-or-retype-an-entity.md): A rename re-embeds the entity, since the embedding is computed from the name. It is refused with 409 when another entity already owns that name key; use merge instead. A retype must name an active vocabulary type. - [Merge an entity into another](https://docs.memloom.dev/api-reference/merge-an-entity-into-another.md): Fold this entity into a surviving one. Every mention and relationship repoints to the target, duplicates and self-loops are dropped, and the absorbed spelling is kept as an alias so later mentions resolve to the survivor, which keeps its own name and type. - [Delete an entity](https://docs.memloom.dev/api-reference/delete-an-entity.md): Remove the entity and every edge touching it (mentions pointing at it, typed relationships from or to it). The memories and documents that mentioned it are untouched. - [List entity pairs settled as different things](https://docs.memloom.dev/api-reference/list-entity-pairs-settled-as-different-things.md): Pairs a human or a model decided are not the same thing. Recorded so the resolver never raises them again. Reverting one puts the question back in the queue. - [Let a model settle the queued entity pairs](https://docs.memloom.dev/api-reference/let-a-model-settle-the-queued-entity-pairs.md): Asks a model about every pair the lexical rules could not settle, folding the ones it is confident about and leaving the rest queued. One call per pair, so it is never a side effect of anything else. - [Let a model settle the queued entity pairs (NDJSON stream)](https://docs.memloom.dev/api-reference/let-a-model-settle-the-queued-entity-pairs-ndjson-stream.md): The same work, reported as it goes. One `{"type":"item"}` per pair judged, a `{"type":"ping"}` every 15 seconds so the pipe never times out, and a final `{"type":"done"}` carrying the totals. A mid-stream failure arrives as `{"type":"error"}`, since the response has already started. - [One assistant turn (SSE)](https://docs.memloom.dev/api-reference/one-assistant-turn-sse.md): Run one chat turn through the assistant's agentic loop: the model decides whether to call hybrid recall (up to three times), then streams a grounded answer with `[n]` citation markers validated against the returned sources. The response is a server-sent-event stream of JSON events: `tool_call` and `… - [The model catalog for the picker](https://docs.memloom.dev/api-reference/the-model-catalog-for-the-picker.md): Tool-capable models from OpenRouter's public catalog (the assistant requires native tool calling), shaped for display: USD per million input/output tokens, context window, provider (the model id's prefix). Cached daemon-side for an hour; a stale copy keeps serving if OpenRouter is unreachable. `defa… - [List chat sessions](https://docs.memloom.dev/api-reference/list-chat-sessions.md): Starred first, then most recently active. - [Search chat sessions](https://docs.memloom.dev/api-reference/search-chat-sessions.md): Hybrid chat search: keyword over titles and message text, plus embedding similarity over message content. Each hit carries the best-matching snippet. - [A session's messages](https://docs.memloom.dev/api-reference/a-sessions-messages.md): Oldest first. Assistant messages carry the sources their answer cited. - [Rename or star a session](https://docs.memloom.dev/api-reference/rename-or-star-a-session.md) - [Delete a session](https://docs.memloom.dev/api-reference/delete-a-session.md): Removes the session, its messages, and its attached files. - [Delete all chat sessions](https://docs.memloom.dev/api-reference/delete-all-chat-sessions.md): Removes every session, its messages, and its attachments. - [Attach a file to a chat](https://docs.memloom.dev/api-reference/attach-a-file-to-a-chat.md): Upload file bytes into one chat's scope. The file is chunked and embedded like a document, but only that session's recall searches it: it stays out of the documents list, the graph, and entity extraction, and it is deleted with the chat. Omit `sessionId` to create the session on the spot (titled 'Ne… - [A session's attached files](https://docs.memloom.dev/api-reference/a-sessions-attached-files.md) - [Ingest a file as context](https://docs.memloom.dev/api-reference/ingest-a-file-as-context.md): Extract, chunk, embed, and store a .md/.txt/.pdf file from the daemon's machine. A document mirrors its file: re-adding an unchanged file is a no-op (`unchanged`), a changed file replaces its chunks (`updated`). Markdown chunks carry their heading breadcrumb; PDF chunks keep their page number. Chunk… - [Upload file bytes as a document](https://docs.memloom.dev/api-reference/upload-file-bytes-as-a-document.md): Ingest a file whose bytes come from the client. The viewer's Upload button uses this, because a browser file dialog yields file bytes without a usable path. The document is listed, graphed, and indexed like any other. Its provenance is `upload://`, so re-uploading the same name replaces it… - [Open the OS-native file/folder picker](https://docs.memloom.dev/api-reference/open-the-os-native-filefolder-picker.md): What the viewer's Browse buttons call first. Opens the platform's native file or folder dialog on the daemon's machine and returns the chosen absolute paths. Returns 501 on a system with no native picker (headless Linux without zenity); the viewer falls back to /context/browse in that case. - [Server-side directory listing](https://docs.memloom.dev/api-reference/server-side-directory-listing.md): Lists one directory on the daemon's machine: subdirectories, plus files whose extension has a registered extractor. The viewer's fallback file/folder picker for systems with no native dialog; the browser never sees absolute paths from its own file inputs, only what this endpoint returns. - [List context documents](https://docs.memloom.dev/api-reference/list-context-documents.md) - [Get a document's chunks and their entity edges](https://docs.memloom.dev/api-reference/get-a-documents-chunks-and-their-entity-edges.md): One document at chunk granularity: chunks in order, plus their chunk -> entity mention edges. The graph endpoint rolls these up to one weighted document -> entity edge; this is the drill-down the viewer fetches when a document node is expanded. - [Open the source file on the daemon's machine](https://docs.memloom.dev/api-reference/open-the-source-file-on-the-daemons-machine.md): Opens the document's file with the OS default application (what the viewer's "Open file" button calls). Only ingested documents can be opened: the path is read from the document row looked up by id, so a client can never supply an arbitrary path to open. - [Start or stop watching one document](https://docs.memloom.dev/api-reference/start-or-stop-watching-one-document.md): Switches file watching for a single document, without touching the folder it came from. Nothing already learned changes: the chunks, their embeddings and their entity edges stay exactly as they are, and switching it back on re-checks the file on the next pass. - [Remove a context document](https://docs.memloom.dev/api-reference/remove-a-context-document.md): Deletes the document and all of its chunks (cascade). The source file on disk is untouched. - [Put a folder on the watch list](https://docs.memloom.dev/api-reference/put-a-folder-on-the-watch-list.md): Adds a folder to the watch list without ingesting anything. Idempotent by path: re-adding a folder already on the list turns watching back on rather than making a second entry. - [List watched folders](https://docs.memloom.dev/api-reference/list-watched-folders.md): The folders someone linked, as opposed to the documents inside them. Adding a folder creates one document per file and would otherwise forget the folder itself, which is the only record that files arriving LATER were asked for too. - [Start or stop watching a folder](https://docs.memloom.dev/api-reference/start-or-stop-watching-a-folder.md): Its documents and their chunks are untouched either way. Switching it back on re-walks the folder on the next pass, so anything that changed while it was off is picked up. - [Forget a watched folder](https://docs.memloom.dev/api-reference/forget-a-watched-folder.md): Removes the folder from the watch list and KEEPS every document it produced. "Stop following this folder" is never "delete what was read in it"; deleting those is DELETE /context/documents/{id}, one at a time and deliberately. - [List pending conflicts](https://docs.memloom.dev/api-reference/list-pending-conflicts.md): Contradictions the belief pipeline flagged that you have not resolved yet. Both sides stay active until you decide. - [List resolved conflicts](https://docs.memloom.dev/api-reference/list-resolved-conflicts.md): The revertable history behind the pending queue, newest resolution first. Each entry carries the action that resolved it and can be undone via the revert endpoint. - [Resolve a conflict](https://docs.memloom.dev/api-reference/resolve-a-conflict.md): Apply one of the four human-in-the-loop resolutions. Every resolution is non-destructive and reversible via the revert endpoint: losing memories are marked `stale` and kept in the store. - [Revert a resolution](https://docs.memloom.dev/api-reference/revert-a-resolution.md): Undo a previous resolution. Staled memories come back to active and the conflict returns to the pending list. - [Auto-resolve pending conflicts with an LLM judge (NDJSON stream)](https://docs.memloom.dev/api-reference/auto-resolve-pending-conflicts-with-an-llm-judge-ndjson-stream.md): Re-judges every pending conflict with context the save-time classifier never had: when each side was recorded, and for imported memories the transcript excerpt behind it. - [Run the consolidation pass](https://docs.memloom.dev/api-reference/run-the-consolidation-pass.md): Reviews the store, repairs what SQL proves wrong, folds duplicate entity names, and asks about the rest. Every run is one undoable unit: the report names the run id, and `/memory/reconcile/{id}/revert` puts back exactly what it did. - [Run the consolidation pass (NDJSON stream)](https://docs.memloom.dev/api-reference/run-the-consolidation-pass-ndjson-stream.md): The same run, reported as it goes. NDJSON: one `{"type":"item"}` per belief checked, a `{"type":"ping"}` every 15 seconds so the pipe never times out, and a final `{"type":"done"}` carrying the report. A mid-stream failure arrives as `{"type":"error"}`, since the response has already started. - [List reconcile runs](https://docs.memloom.dev/api-reference/list-reconcile-runs.md): Every run for this store, newest first, with what each one scanned, changed, and asked. This is the Console tab's history. A run with `status` `running` is still going and its counters move. - [List one run's findings](https://docs.memloom.dev/api-reference/list-one-runs-findings.md): Everything the run recorded, including findings held back by a per-run cap (`surfaced: false`). An unknown id reads as an empty run rather than another store's ledger. - [Get the reconcile settings](https://docs.memloom.dev/api-reference/get-the-reconcile-settings.md): Which passes a run does, and whether the daemon catches up on startup. Stored in the store rather than in `config.env`, so a change takes effect without a restart. - [Update the reconcile settings](https://docs.memloom.dev/api-reference/update-the-reconcile-settings.md): Patch any subset. This is what the viewer's Settings tab writes. Turning on `llm_entities`, `llm_conflicts`, or `llm_recheck` is what allows a run started by hand to spend money; the daemon's own idle and startup runs stay on the free passes whatever is saved here. - [Undo one reconcile run](https://docs.memloom.dev/api-reference/undo-one-reconcile-run.md): Put back exactly what one run did, and only that run. A retired memory is reactivated only while it is still stale and its `stale_since` is the one this run wrote, so a newer decision is never overridden. A fold goes back through the same revert entity resolution uses. A conflict the run raised and… - [Stop a running reconcile](https://docs.memloom.dev/api-reference/stop-a-running-reconcile.md): Abort the run if this daemon is the one running it, and mark the row either way. A run whose daemon died mid-sweep has no controller left, and this is the only way its row ever leaves `running`. Beliefs the run already checked stay checked, so stopping costs nothing beyond the calls already paid for… - [List possible contradictions](https://docs.memloom.dev/api-reference/list-possible-contradictions.md): What the contradiction re-check found and nobody has confirmed, newest first. These are deliberately **not** conflicts: measured precision for that pass is roughly 40 percent, so they wait here where dismissing one costs a click. Each one carries the verbatim clashing span from both sides, verified… - [Confirm or dismiss a possible contradiction](https://docs.memloom.dev/api-reference/confirm-or-dismiss-a-possible-contradiction.md): `approved` promotes it into a real conflict and returns the conflict id, so it is then resolved and reverted like any other. `rejected` records the pair so it is never raised again. - [Distill agent sessions into memories](https://docs.memloom.dev/api-reference/distill-agent-sessions-into-memories.md): Distills local Claude Code transcripts into typed memories. Per session: check the ledger, redact secret-shaped strings, chunk, distill, embed, and save through the belief pipeline. The path is fixed to `~/.claude/projects`; a client cannot pass an arbitrary one. - [Import memories agents already saved on disk](https://docs.memloom.dev/api-reference/import-memories-agents-already-saved-on-disk.md): What `memloom import agent-memory` calls. Discovers the agents' own well-known memory folders (Claude Code per-project memory directories, GitHub Copilot's memory-tool notes; the client never supplies a filesystem path), parses each file into memories, redacts secret-shaped strings, and saves throug… - [Notify the daemon a Claude Code session ended](https://docs.memloom.dev/api-reference/notify-the-daemon-a-claude-code-session-ended.md): What the Claude Code session-end hook installed by `memloom connect claude-code` calls. Distills exactly the one session at `path` in the background: the hook gets a 202 immediately and never waits on distillation, so a slow LLM call can't hang the editor. `path` must resolve inside `~/.claude/proje… - [Continuous capture status](https://docs.memloom.dev/api-reference/continuous-capture-status.md): What `memloom status` renders for `connect claude-code`: the configured capture scope, when the hook last fired and whether it failed, today's unattended distillation spend against the daily cap, and ledger totals across every import so far (sessions and memories, regardless of trigger). - [Set the continuous-capture allowlist](https://docs.memloom.dev/api-reference/set-the-continuous-capture-allowlist.md): What `memloom connect claude-code --project X` and `--all` set. `null` (the default) captures nothing: naming a scope is the consent step, since the hook fires for every Claude Code session on the machine, including client work and repos whose code should never reach an LLM provider. `{"projects":[.… - [List Notion pages the integration can see](https://docs.memloom.dev/api-reference/list-notion-pages-the-integration-can-see.md): What the connect picker renders. Lists every page, database, and data source shared with the configured Notion integration, with parent references so clients can show the workspace as a tree (database row-pages collapse under their database). Requires NOTION_TOKEN in the daemon's environment; the to… - [Notion connector status](https://docs.memloom.dev/api-reference/notion-connector-status.md): Whether a token is configured, the current selection, the last sync time and error, whether a sync is running, and how many notion:// documents exist. - [Set which Notion items sync](https://docs.memloom.dev/api-reference/set-which-notion-items-sync.md): Replaces the sync selection. Pass the items to sync, or null to disconnect (synced documents stay). What `memloom notion connect` and the viewer's connectors tab call. - [Sync the selected Notion items now](https://docs.memloom.dev/api-reference/sync-the-selected-notion-items-now.md): What `memloom notion sync` calls (the daemon also runs it on a poll timer). For each selected item: asks Notion whether it changed, refetches only the sections whose last_edited_time moved (cached block tree), renders to markdown, and re-ingests chunk-stably so unchanged chunks keep their rows and e… - [Health check](https://docs.memloom.dev/api-reference/health-check.md): Returns ok when the daemon is up. Used by clients to detect a running daemon. - [Stop the daemon](https://docs.memloom.dev/api-reference/stop-the-daemon.md): Gracefully stop the daemon (what `memloom stop` calls): acknowledges, then closes the Postgres wire server, the HTTP server, the store, and releases the data-dir lock. - [Overview](https://docs.memloom.dev/cli/overview.md): Every memloom command, and how the CLI relates to the daemon - [Daemon](https://docs.memloom.dev/cli/daemon.md): serve, stop, ui and init: running the store's single owner - [Memories](https://docs.memloom.dev/cli/memories.md): save, recall, update and history: the memory lifecycle from the terminal - [Import](https://docs.memloom.dev/cli/import.md): Distill your agent's sessions into memories - [Graph and embeddings](https://docs.memloom.dev/cli/graph.md): index, reembed, auto-index and schema - [Context](https://docs.memloom.dev/cli/context.md): context add, list and remove: ingesting files as searchable context - [Conflicts](https://docs.memloom.dev/cli/conflicts.md): List pending contradictions, or let a model clear the queue - [Reconciliation](https://docs.memloom.dev/cli/reconcile.md): reconcile and its subcommands: the pass, its findings, and how to take a run back - [Notion](https://docs.memloom.dev/cli/notion.md): Sync Notion pages and databases as recallable context - [Setup](https://docs.memloom.dev/mcp/setup.md): Connect any MCP client to your memloom store - [Tools](https://docs.memloom.dev/mcp/tools.md): The fourteen tools memloom exposes to MCP clients, and how they chain - [Claude Code](https://docs.memloom.dev/mcp/clients/claude-code.md): Connect Claude Code to memloom - [Claude Desktop](https://docs.memloom.dev/mcp/clients/claude-desktop.md): Connect Claude Desktop to memloom - [Cursor](https://docs.memloom.dev/mcp/clients/cursor.md): Connect Cursor to memloom - [VS Code](https://docs.memloom.dev/mcp/clients/vs-code.md): Connect VS Code (Copilot agent mode) to memloom - [Windsurf](https://docs.memloom.dev/mcp/clients/windsurf.md): Connect Windsurf to memloom - [Cline](https://docs.memloom.dev/mcp/clients/cline.md): Connect Cline (VS Code extension) to memloom - [Zed](https://docs.memloom.dev/mcp/clients/zed.md): Connect Zed to memloom - [Codex](https://docs.memloom.dev/mcp/clients/codex.md): Connect the Codex CLI to memloom - [opencode](https://docs.memloom.dev/mcp/clients/opencode.md): Connect opencode to memloom ## OpenAPI Specs - [openapi](https://docs.memloom.dev/openapi.yaml)