Skip to content

Memory isidentity.

Every conversation, every idea, every small decision… held somewhere safe.

Welcome to the future of memory: MemPalace

Subscribe for updates

i the forgetting
before · after

The same conversation, twice.

Scroll down and watch. On the left, a model without memory. On the right, the same model with MemPalace. The words are identical — until two weeks pass.

without mempalacesession resets · no recall
with mempalaceverbatim · retrieved instantly
ii anatomy of a palace
the method of loci, updated

Wings. Rooms. Closets. Drawers.

An ancient memory technique, reworked for a machine. Broad categories nest time-based groupings; time-based groupings bundle topics; topics hold verbatim drawers. A symbolic index lets the model scan thousands of drawers in a single pass and open only the ones it needs.

W — wing

The Wings

people · projects · topics

A broad region of the palace, keyed to a real entity — a person by name, a project by codename, a domain of your life. Entity-first, always.

R — room

The Rooms

days · sessions · threads

Inside a wing sit rooms — discrete units of time. One room per day, or one per session. Walk the corridor and the palace unfolds chronologically, room by room.

C — closet

The Closets

topics · threads · bundles

Inside a room, closets group related drawers by topic or thread. Open one closet and you see every drawer on that subject together — no need to walk the whole room.

D — drawer

The Drawers

verbatim · permanent · exact

Each room holds drawers. A drawer is a single chunk of verbatim content — the exact words, untouched. The palace's promise is kept here.

iii the aaak dialect
index ← verbatim

A compressed symbolic language for finding, not remembering.

The content stays verbatim — always. The index above it is written in AAAK: a dense symbolic dialect an LLM can scan at a glance. Thousands of entries, one pass, exact drawer located.

drawer · D-007verbatim · exact · permanent

The drawer, as stored.

"My son's name is Noah. He turns six on September 12th. He loves dinosaurs — especially the therizinosaurus because of the claws. We want to do a small party at the park on Glebe Point Road, maybe eight kids."

— kept as spoken. never rewritten.

index · AAAKindexes · compressed · addressable

The pointer, as indexed.

§ W-042/R-11/D-007
@p noah~son.age=6~dob=09-12
@l glebe-pt-rd.park
@e birthday~party(n≈8)
@i therizinosaurus~claws
@t 2026-04-14T09:41
§ ptr → D-007 (verbatim)

Dense compression on the pointer layer. Full fidelity on the content layer. You get speed without ever losing a word.

iv how it works
mechanism · architecture

Four pieces. No cloud. No keys.

— 01

Local-first

ChromaDB on disk. SQLite for the knowledge graph. Nothing is uploaded. Nothing is synced. Your palace lives under a single directory on your machine.

path · ~/.mempalace
— 02

Zero API

Extraction, chunking, and embedding all run locally. No OpenAI key, no Anthropic key, no sentence-transformers endpoint. The memory works even offline, on a plane.

keys required · none
— 03

Background hooks

Filing and indexing happen silently through Claude Code hooks. On session end, on pre-compaction. You write. The palace fills itself behind the curtain.

hook budget · <500 ms
— 04

Temporal graph

Relationships across entities with valid-from and valid-to dates. Who worked on what. When did this change. Facts that were true then, and may not be now.

store · sqlite
v begin
open a drawer

Build your palace.

One command to install. One to initialize. Your words — yours, permanent, instantly recallable — from that moment on.

~/mempalace · bash
$ pip install -e ".[dev]"
Successfully installed mempalace
$ mempalace init
 palace created at ~/.mempalace
 hooks registered (stop, precompact)
 knowledge graph initialized
$ mempalace mine ./notes
 filed · W-001/R-01/D-001

Released under the MIT License.