Overview
memloom ui has an assistant tab that answers from your memories and ingested files, and shows
which passages it used. It is told to answer personal questions only from what recall returns, to
say plainly when your store has nothing, and never to invent a memory.
Ask “how does the ingest worker restart?” and it pulls the runbook section you ingested last
month, answers from it, and cites it. Ask “what day is it?” and it just answers.
How a turn works
Decide whether to search
The model sees your message, the history, and two tools:
recall_memory and read_source.
Small talk and general knowledge get a direct answer with no retrieval.Search
The query runs through the same hybrid retrieval as
memloom recall.
Day-specific questions add a calendar filter.Read further if needed
Passages are injected up to 8,000 characters. When the answer may live in a truncated part,
the model calls
read_source(n). It can reformulate and search again, capped at three calls,
and cannot repeat a query.Answer with citations
[n] markers follow sentences that used passage n. Markers pointing at passages that do not
exist are stripped server-side, so every citation is real.Picking the model
The composer lists every tool-capable model on OpenRouter, fetched live, grouped by provider, with prices and context windows. Tool calling is the filter because the assistant grounds itself by callingrecall_memory.
Your choice lives in the browser and rides each request. OPENROUTER_CHAT_MODEL stays the
default. Nothing restarts when you switch, and the store underneath is the same.
Attaching files to a chat
The + button uploads.md, .txt or .pdf into the current chat. They go through the normal
pipeline but stay scoped to that session.
For a file you want to keep, use the documents tab instead.
Sessions
Chats persist in the store. The sidebar has rename, star, delete, and search: keyword over titles and messages, plus embedding similarity, so “that chat about the launch window” finds itself even when no message contains those words.The assistant needs a chat-capable model. Without
OPENROUTER_API_KEY the tab explains what to
configure instead of pretending to work. Everything else in the viewer keeps running.