Free, open-source memory for Claude Code. Your own database, no cloud, no subscription.
Documentation · Quick start · CLI reference
Every Claude Code chat starts from zero. You explain the same decisions, dead ends and rules again, and Claude works out what calls what from scratch.
claude-db fixes that. It keeps what you decided and a map of your code, and gives Claude the right part of it at the right time.
- Remembers across chats. Decisions, dead ends and rules are saved when a chat ends, and the next chat starts by seeing them.
- Recalls what fits. Each prompt gets the one or two earlier memories that match it, and nothing when none fit.
- Maps your code. Who defines, calls or imports a symbol is answered in one call, instead of grep and reading files. It follows imports in TypeScript, JavaScript, Python, Go, Rust, Java and Kotlin.
- Keeps it yours. SQLite on your machine by default, or Postgres or MongoDB to share across machines. No cloud, no subscription.
You need Node 22.16 or newer and a git repository.
npm install -g claude-db
cd your-project
claude-db install --projectRestart Claude Code. There is nothing else to run, because capture and recall are hooks.
Then load what already exists with claude-db flush and claude-db scan. The
setup guide has the rest.
| Where | What it does |
|---|---|
/catchup |
Answers "where did I stop?" when you come back |
/handoff |
Leaves a short note for the next chat or a mate |
/cdb-scan |
Maps an existing codebase into memory |
claude-db status |
Shows whether it is wired up and what it recorded |
claude-db doctor |
Checks the setup, and finds what is wrong |
claude-db use <url> |
Switches to Postgres or MongoDB (pg/mongodb) |
cdb is a shorter alias. Every command is in the
CLI reference.
Memory stays in your own database. Two features call Claude Haiku through your
own login, and each has an off switch: claude-db distill off for making facts
from finished chats, and claude-db pick off for choosing memory per prompt.
Once a day it asks npm for the latest version ("updates": "off" stops that).
.env, secrets/, node_modules and .git/ are never stored. Text inside
<private>...</private> is stripped, and API keys and tokens are redacted
before anything is written or sent.
- Setup guide: install, head start and habits
- Documentation site: CLI, MCP tools, databases and troubleshooting
- With and without and benchmarks: the numbers, including where plain grep wins
- Changelog
npm install
npm run build
npm test
npm run lintCONTRIBUTING.md has the setup, the rules and the pull request checklist, with links to adding a language and to releasing. Security reports go through SECURITY.md, privately.
Apache-2.0