Flanner Memory

Save what your agent needs to know next time.

Flanner Memory stores the decisions, constraints and facts around your project — why you chose a database, which approach was rejected, how the staging environment works — as Markdown files that any later session can search.

How it works

Stored as Markdown files

Each memory is a file under .flanner/memory/ in your repository. You can read it, diff it, and commit it. The database is only an index over those files, so if you lose it, flanner mem rebuild restores it from the files.

Searchable from any session

flanner mem recall searches the full text and shows why each result matched. An agent starting a new session next week can find a constraint you saved today.

Corrected, not overwritten

Superseding a memory keeps the old one readable and links the new one to it. You can see what changed and when.

Explicit by default

Nothing is saved unless you ask. In suggest mode, your agent proposes memories and you approve them. auto-safe mode exists, ships off, and can only be enabled in a project's own policy file.

Example

flanner mem remember "Postgres over SQLite: we need concurrent writers"

Save one fact. The title comes from the first line.

flanner mem recall "why postgres"

Find it later, from any session, with the reason it matched.

flanner mem mode suggest

Let your agent propose memories. flanner mem pending lists what is waiting for approval.

flanner mem rebuild

Rebuild the index from the files.

What it will not do

It will not store secrets

Before anything is written, the text is checked against fifteen vendor key patterns, a generic credential check, and an entropy check. This runs on what you type, on what an agent proposes, and on anything a teammate sends you.

It will not act on memories

A memory is context an agent reads, not an instruction it follows. Personal memory — notes about how you work — is never shared with anyone.

Sharing with your team

Coming in the next release. Sharing is built and tested but not yet published. Everything above works today.

With Flanner Mesh, you can share a memory with your workspace by running flanner mem share. Sharing is always explicit: joining a workspace does not share any existing memories.

A shared memory is signed by the machine that wrote it and travels directly to your teammates' devices. It never passes through Flanner's servers. The receiving device verifies the signature and runs the same secret check before storing it.

flanner mem withdraw asks every device to stop recalling a shared memory. It does not delete the file from a device that already received it.