File format
One memory is one Markdown file with one idea, linked to related memories with [[wikilinks]], like a Zettelkasten.
A project is a note that links all of its notes, and they link back to it.
~/lil-memory/ ├── global/prefers-british-spelling.md ├── global/acme-site.md # a project: links every note about it ├── global/acme-deploys-to-cloudflare.md # links back to [[acme-site]] └── .lil-memory/ # config and trash
--- id: 01J9XK3M7Q2R8S5T6V7W8X9Y0Z type: preference status: active tags: - writing source: claude-desktop 1.0 created: 2026-10-05T09:12:00Z updated: 2026-10-05T09:12:00Z --- Prefers British spelling and short paragraphs in client-facing copy.
typeis one offact,preference,project,decision,note.statusisactiveorpending.- Memories are a living graph, not a versioned archive. Updating a memory edits the note in place, so links to it keep working. Want history? Keep the vault in git or a sync tool with versions.
- One subject, one note: a title is never reused with a number added.
- Forgetting a memory moves it to
.lil-memory/trash/. - Fields you add yourself in Obsidian are kept.
- The search index is a cache in your user cache folder, not in the vault, so syncing the vault is safe.
lil-memory doctorshows where it is;lil-memory reindexrebuilds it from the files.
The full format is in SPEC.md. Other tools can implement it without reading the code.
Tools
What the connected AI can use:
| Name | What it does |
|---|---|
remember | Save one memory under a short title, linked to related memories with [[wikilinks]]. Also returns up to 3 similar existing memories. |
recall | Full-text search over active memories, filtered by scope, type or tags. |
get | Fetch one memory by id, title or path, with the notes it links to and the notes linking to it. |
update | Rewrite a memory in place with its full new text, for example to extend it. Same file, title and id. |
forget | Move a memory to the trash. |
list_scopes | List folders with their number of memories. |
memory://profile | Resource: all your global preferences, the "who is this user" card. |
load_context | Prompt: your profile plus a project's note and every note linked to or from it. |
CLI
lil-memory init [path] create a vault (default ~/lil-memory) lil-memory install <client> add to claude-desktop, claude-code or codex lil-memory open explore your memories in Obsidian lil-memory serve run the MCP server over stdio lil-memory serve --http run at a secret URL on 127.0.0.1 (--port, --rotate) lil-memory url [--tunnel HOST] print that secret URL, or the public one behind a tunnel lil-memory reindex rebuild the search index from the files lil-memory doctor check FTS5, the vault and client installs
Every command takes --vault PATH.
lil memory is MIT licensed.