pal.fun

How it works

Memory

One rolling file, kept current by mandatory compaction.

Memory is the feature that turns a chatbot into a friend, and it's the one most products get quietly wrong — either by remembering nothing, or by hoarding everything into a store no one can see or correct. pal.fun's memory is one readable file, kept current on a schedule, and it's a visible part of the glass box.

One readable file

A pal's long-term memory is a single MEMORY.md — the durable truth about you and the life you share with your pal: who you are, the people in your life, dates, what you're in the middle of together. It's kept drift-free with surgical edits — a fact is added or changed in place, never rewritten wholesale — so repeated upkeep can't quietly erode what it knows.

What it deliberately isn't is a rolling diary of the last few days. The recent back-and-forth already lives in the conversation itself; memory is what your pal keeps once that scrolls past. (An earlier version of pal.fun also kept a second "where we are" band that tried to summarize the recent past — it lagged behind the actual conversation and added little the chat didn't already show, so we removed it. The durable file is the whole of long-term memory.)

There's no opaque vector database and no pile of per-day note files either — earlier versions had both, and we retired them. One file you can open and read beats a clever store you can't.

Mandatory compaction

Here's the part builders tend to find interesting. Letting a model decide on its own when to write something to long-term memory doesn't work — it's unreliable, and important things fall through. So memory isn't left to the pal's discretion.

Instead, the recent conversation is kept in a bounded window, and roughly every twenty turns the pal performs a mandatory compaction: it folds what matters from the aged-out turns into MEMORY.md — adding new facts, and editing existing ones in place when something's changed. In the moment, when something worth keeping comes up, the pal makes a quick note (you'll see a little "I'll remember that" marker); compaction is when those notes get woven into the durable record. Those jotted notes aren't hidden in the meantime — they show up as their own card in the glass box, so you can see what your pal has flagged to remember before it's folded in.

The win is twofold. Long-term memory becomes reliable — it happens because it's scheduled, not because the model felt like it. And the memory write piggybacks on a context refresh the system was going to do anyway, so it's nearly free.

You can correct it

Because memory is a file and not a black box, you have real control over it. Ask your pal to forget something or fix a detail, and it makes a precise edit — no full rewrite, no collateral damage to the rest of the record. The deterministic escape hatch — delete everything — lives at the account level. (Privacy & data custody covers the promises here.)

No background housekeeping

Compaction is a visible step tied to the conversation, not a hidden cron job grinding away on your data. That's a deliberate stance: a pal never acts on your memory invisibly. If something happened to what your pal knows, you can see that it happened.