Ask once. It remembers.
recall is a chat agent with a dated memory. Ask something today, come back next week, and it picks up where you left off — re-checking the web and showing the sources it used.
Memory
Dated log
Every question and answer is filed with its timestamp, so “what did I ask on 3 November” is a lookup, not a guess.
Recall tool
The model searches that log itself, by keywords and by date range, across every chat you have.
Last five asks
Today’s date and your recent questions ride in the prompt, so most recall happens before any tool call.
You can correct it
The Memories screen lists what was stored. Forget one entry, or clear all of it.
How it works
01The prompt
carries today’s date and your last five questions; the current chat rides along as history.
02Two tools
— recall reads the dated log, web_search asks Tavily and falls back to a self-hosted SearXNG.
03Sources
— search results reach the model with their URLs, and the answer ends in the domains it read.
# run it
npm install
npm run dev → http://localhost:3000
# keys (see .env.example)
OPENAI_API_KEY=… # any OpenAI-compatible endpoint
TAVILY_API_KEY=… # web search; SEARXNG_* is the fallbackFAQ
Does it remember across chats?
Yes. Turns are stored against your owner id with timestamps, and recall can read all of them — that is how “has anything changed since we spoke” works.
Where does that live?
A SQLite file on the server: chats and messages for signed-in accounts, memories scoped to your user id or a guest cookie.
Which model?
DeepSeek V4.1 Flash or Mimo V2.6 Flash over any OpenAI-compatible endpoint you point at with OPENAI_BASE_URL.
What if search finds nothing?
It says so. Unrelated pages are filtered before they reach the model, and an answer that could not be verified is labelled as such.