← All workNo. 03 · memory engineRust · runs locally

A forgetting engine: a memory layer for AI agents, backed by SQLite.

Not a database. A database stores faithfully and forever; this engine decides what to keep, lets memories decay, consolidates routine into gist and connects what belongs together. The name is the joke: it forgets, on purpose.

watch them fadethennowexp(−λt)
What it is
An engine, a terminal chat and a memory proxy
Runs
On your machine, local-only by default
Remembers in
SQLite, with local embeddings
Built with
Rust, SQLite, axum, Ollama

Six mechanisms

all working on the same memories, at the same time

Three ways in

  1. 1

    Chat

    iforgot is a terminal chat where memory updates itself. Every message is written in, and every reply is grounded in what it remembers.

  2. 2

    Proxy

    An OpenAI-compatible endpoint. Point any chat app at it and it gains long-term memory, with no integration work.

  3. 3

    Watch

    A read-only window into the store. Watch memories glow, fade on a time scrubber, and form connections as you chat.

Runs on your machine

Rust and SQLite, with no network calls beyond a local model server. Local-only is the default, and the server only listens on 127.0.0.1.

try itollama pull gemma3:12bcargo install --path crates/iforgot-chatiforgot
[Screenshot · Memory graph]
The observability UI: node size is importance, opacity is decay.

The fine print

for iforgot and ForgetfulDB