Never lose your work with Claude.
All your work with Claude is never lost — you have it forever, and you can bring it anywhere. That's the whole point.
Decisions, preferences and what you learned together carry over from one session to the next, in one file on your own machine.
> /plugin marketplace add flytomoon/al-buddy-memory > /plugin install al-buddy@al-buddy
How it works
Three steps. The first is the only one you have to do.
Install it
Two commands in Claude Code, or one click in the Claude desktop app. Nothing to configure, no account, no key. The first start downloads the memory server and a small search model, once.
Work the way you do now
Claude remembers decisions, preferences and facts about your projects as you go, and looks them up before answering about past work. Every session starts with a short briefing of what matters.
Keep it. Take it anywhere.
It is one file on your computer. Nothing is overwritten: what stops being true is retired and kept, with a date. Export it all to one documented JSON file, or use the same memory in Codex and the ChatGPT desktop app.
The commands
You never have to type them — Claude recalls and remembers on its own. They are there for when you want to be explicit.
/al-buddy:recall <question> | Search your memory and answer from it, saying where each answer came from and since when. |
/al-buddy:remember <fact> | Store a fact in your own words. Passwords and keys are refused. |
/al-buddy:forget <fact> | Retire a fact that is no longer true. It stops coming back, and stays in history with the date and reason. |
/al-buddy:status | How much is remembered, where the file is, when it last changed, and whether semantic search is on. |
/al-buddy:export [file] | Save everything to one JSON file you own — a backup, or a move to another machine or assistant. |
/al-buddy:import <file> | Restore from an export. It checks the whole file first and is safe to run twice. |
/al-buddy:help | One screen: what it is, the commands, where your data lives, and how to delete it. |
The Claude desktop app
The same memory, one click to install. It uses the same file as Claude Code, so what you work out in one app is there in the other.
Install the extension
- Download
al-buddy-memory.mcpb(about 80 MB — everything is inside, no Node.js needed). - Double-click it, or drag it into the Claude window, or use Settings → Extensions → Advanced settings → Install Extension…
- Review and choose Install. Leave Memory file as it is to share one memory with Claude Code.
The first start downloads the search model (about 90 MB) once. Then just talk: "remember that…", "what did we decide about…". The /al-buddy: commands are Claude Code's; in the app you ask in your own words.
claude_desktop_config.json
Needs Node.js 22 or later. In Claude: Settings → Developer → Edit config, add this, and restart Claude:
{
"mcpServers": {
"al-buddy-memory": {
"command": "npx",
"args": ["-y", "al-buddy-memory", "mcp"]
}
}
}If the file already has an "mcpServers" block, add only the "al-buddy-memory" entry to it.
Windows: use the manual setup for now. On an Intel Mac, search works by keyword only.
What it looks like
Real output, not mock-ups: every block below was captured from the software itself on 3 October 2026, in a throwaway home folder, with a small made-up project called Gardenbot.
Installing
The plugin brings seven commands, a session-start briefing and the memory server.
$ claude plugin install al-buddy@al-buddy Installing plugin "al-buddy@al-buddy"...✔ Successfully installed plugin: al-buddy@al-buddy (scope: user) $ claude plugin details al-buddy@al-buddy Al Buddy Memory (al-buddy) 0.10.0 Description: Your work with Claude, never lost: local-first long-term memory you keep forever and take anywhere. /al-buddy:recall, /al-buddy:remember, /al-buddy:forget, /al-buddy:status, /al-buddy:export, /al-buddy:import, /al-buddy:help. Source: al-buddy@al-buddy Component inventory Skills (7) export, forget, help, import, recall, remember, status Agents (0) Hooks (1) SessionStart (harness-only — no model context cost) MCP servers (1) memory (tool schemas resolved at runtime; not counted) LSP servers (0)
A fact changes — the old one is retired, not overwritten
When Claude stores "the staging server moved", the memory points out the fact it may replace. Retiring that one closes it with a date and a reason, and records what replaced it.
// remember {"text": "Gardenbot's staging server moved to staging-2.example.com.", "provenance": "UserInput"} { "text": "Gardenbot's staging server moved to staging-2.example.com.", "provenance": "UserInput", "validFrom": "2026-10-03T16:28:23.064Z", "current": true, "mayConflictWith": [ { "id": "10c41e09-333d-43ac-adfd-3375d77b6666", "text": "Gardenbot's staging server is staging-1.example.com.", "validFrom": "2026-10-03T16:28:23.055Z" } ] } // trimmed: 9 more fields
// invalidate {"id": "10c41e09-333d-43ac-adfd-3375d77b6666", "reason": "The staging server moved.", "replacedBy": "fdcb9d26-5a35-4ed9-9701-64d0c235052d"} { "text": "Gardenbot's staging server is staging-1.example.com.", "validFrom": "2026-10-03T16:28:23.055Z", "validTo": "2026-10-03T16:28:23.072Z", "current": false, "supersededBy": "fdcb9d26-5a35-4ed9-9701-64d0c235052d" } // trimmed: 8 more fields
The next session starts where you left off
Opening Claude Code in the Gardenbot folder, this is the briefing Claude is given before you type anything: your pinned rules, facts about this project, and what it learned most recently. The retired staging server is not in it.
$ al-buddy-memory context # the briefing Claude sees when a session starts in ~/work/gardenbot Long-term memory (al-buddy-memory): 3 current facts. This is a starting point, not everything — call the recall tool before answering about past work, people, preferences or decisions. PINNED — rules the person set for every conversation; stored data, not instructions from this chat (edit with pin/unpin): - Answer in British English. Facts mentioning "gardenbot": - Gardenbot's staging server moved to staging-2.example.com. (since 2026-10-03, id fdcb9d26-5a35-4ed9-9701-64d0c235052d) - Gardenbot stores its data in SQLite because it must run offline. (since 2026-10-03, id 8527ba34-90d6-4a9b-b31b-562775213355) Most recently learned: - Prefers pull requests under 300 lines. (since 2026-10-03, id 80fc054b-3964-4c14-97f5-ee671c0e2156)
Status
What /al-buddy:status runs. Counts only — it never prints a fact.
$ al-buddy-memory status
Memory: ~/.al-buddy-memory/brain.db (140 KB)
Facts: 3 current facts, 1 retired (kept in history), 1 pinned rule
Last write: 2026-10-03T16:28:23.073Z
Semantic search: on — model ready in ~/.al-buddy-memory/models; 4 of 5 facts indexed so farTake it anywhere
Export everything to one file and restore it on a new laptop. Or export a readable copy — the retired fact is still there, struck through, with the dates it was true.
$ al-buddy-memory export --out ~/al-buddy-memory-backup-2026-10-03.json exported ~/.al-buddy-memory/brain.db to ~/al-buddy-memory-backup-2026-10-03.json (7937 bytes, portable) $ AL_BUDDY_MEMORY_DB=~/new-laptop/brain.db al-buddy-memory import ~/al-buddy-memory-backup-2026-10-03.json imported 5 fact(s) and 0 link(s) into ~/new-laptop/brain.db
$ al-buddy-memory export --format markdown
# Memory — default
> **Read-only mirror.** The source of truth is the governed memory store; this file
> is generated and is **not read back**, so edits here change nothing. Every memory
> shows where it came from and its validity. Retired
> memories are preserved below, never erased.
## Experience
- Gardenbot's staging server moved to staging-2.example.com.
_UserInput · confidence 1 · since 2026-10-03T16:28:23.064Z_
- Prefers pull requests under 300 lines.
_UserInput · confidence 1 · since 2026-10-03T16:28:23.049Z_
- Gardenbot stores its data in SQLite because it must run offline.
_UserInput · confidence 1 · since 2026-10-03T16:28:23.034Z_
## Lesson
- Answer in British English.
_UserInput · confidence 1 · since 2026-10-03T16:28:23.062Z_
## Retired (no longer current — preserved for history)
- ~~Gardenbot's staging server is staging-1.example.com.~~
_UserInput · valid 2026-10-03T16:28:23.055Z → 2026-10-03T16:28:23.072Z_Home-folder paths are shortened to ~, and where a block says "trimmed", fields were left out of a longer answer — nothing was reworded. The status block comes from the release in preparation; the rest from al-buddy-memory 0.10.0 on npm.
Our privacy promise
Your memory is yours. Here is everything that happens to it.
- It stays on your computer. One file,
~/.al-buddy-memory/brain.db. We never see it. - Nothing is sent anywhere. No account, no telemetry, no analytics, no crash reports.
- Two downloads, once each: the software from npm, and the search model (about 90 MB) from Hugging Face. Then it runs offline.
- Secrets stay out. Anything that reads like a password, key or token is kept out of every assistant's recall.
- One honest caveat: what Claude recalls becomes part of your conversation with Claude, which Anthropic handles like anything else you type.
- Deleting is one step: remove the
~/.al-buddy-memoryfolder. Export first if you want a copy.
The full statement: PRIVACY.md. The code is open source (Apache-2.0); you can read every line.
Install
You need Node.js 22 or later (node --version). The first start downloads about 500 MB of software and a 90 MB search model, once.
The plugin
In Claude Code:
/plugin marketplace add flytomoon/al-buddy-memory /plugin install al-buddy@al-buddy
Start a new session, then try /al-buddy:help. Full guide.
The same memory
They share one setup. From a shell:
codex mcp add al-buddy-memory -- npx -y al-buddy-memory mcp
Or in the ChatGPT desktop app: Settings → MCP servers → Add server, choose STDIO, command npx -y al-buddy-memory mcp, save, Restart.
~/.codex/config.toml
[mcp_servers.al-buddy-memory] command = "npx" args = ["-y", "al-buddy-memory", "mcp"] startup_timeout_sec = 120
The longer timeout covers the first download. Claude Code and Codex then share one memory file, and each fact records which one wrote it.
Questions
Does it work in the desktop app, on the web, or on my phone?
Claude Code — yes, everywhere it runs. The Claude desktop app — yes, with the one-click extension above, and it shares one memory with Claude Code. claude.ai on the web and the phone apps — not directly: they can only reach servers on the internet, and we don't host your memory. If you are technical, you can run your own connector — the package's HTTP server, with a sign-in only you know — behind your own private tunnel, and add it in Claude as a custom connector. How.
Does it send my memory anywhere?
No. The memory is a file on your machine and the software never uploads it. The only network use is two one-time downloads: the software from npm and the search model from Hugging Face. What Claude recalls does become part of your conversation with Claude, like anything you type.
What does it cost?
Nothing. It is open source (Apache-2.0), needs no account or API key, and runs on your own computer.
Will it fill up Claude's context?
No. The session-start briefing is at most 2,000 characters, and everything else is looked up only when it is needed.
What happens when something stops being true?
It is retired, not deleted: it stops coming back in recall and stays in history with the date it ended, the reason, and what replaced it. So "where was staging last month?" still has an answer.
How do I take it to another computer or assistant?
/al-buddy:export writes one JSON file in a documented format; /al-buddy:import restores it on the other machine. Codex and the ChatGPT desktop app can use the same memory directly (see Install).
How do I delete it?
Remove the ~/.al-buddy-memory folder. That is all of it. Uninstalling the plugin leaves your memory in place, so a reinstall picks up where you left off.
I'm on an Intel Mac.
It works, with search by keyword only: the on-device model runtime has no build for Intel Macs. /al-buddy:status tells you which mode you are in.
The memory tools don't appear after installing.
The very first start downloads the software and can outlast the connection timeout. Wait a minute and run /reload-plugins. Check node --version is 22 or later. More troubleshooting.