Free, open-source memory for Claude Code. Your own database, no cloud, no subscription.
Documentation · Quick start · CLI reference
Why
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.
What it does
- 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.
Install
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.
Everyday use
| 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.
Privacy
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.
Documentation
- 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
Contributing
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.
License
Apache-2.0