How it works
Three commands.
All your AI tools, finally aligned.
No API keys. No cloud account. No runtime to manage. Your memory lives in a file you own.
1. Ingest
Run any of 8 built-in ingesters to pull in notes, browser history, Slack exports, AI conversations, and more. Everything lands in a local SQLite database.
2. Encrypt (optional)
heirloom seal encrypts the database with XChaCha20-Poly1305 + Argon2id. An offline attacker with the file can't read your memories without your passphrase.3. Connect your AI
Add
heirloom serve as an MCP server in Claude, Cursor, Antigravity, or any MCP-aware client. That's it. No further config.Hybrid search
BM25 + n-gram TF-IDF vector scoring. Finds postgresql when you search postgres. Finds authentication when you search auth. No external models needed.
Web viewer
heirloom desktop opens a local dashboard at localhost:7878. Dark theme. One-click redact. No JavaScript framework. No tracking.Multi-device sync
heirloom sync push produces an encrypted snapshot. Copy it to another device and sync pull --from to merge. End-to-end encrypted β no relay sees plaintext.Sources
Eight built-in ingesters.
More coming.
Everything you write, read, or talk about in a day β Heirloom can learn from it. Build your own in ~50 lines; the plugin interface is intentionally tiny.
Markdown & text files
Chrome / Brave / Arc / Edge
Firefox history
Claude export
ChatGPT export
Claude Code sessions
Slack workspace export
Obsidian vault
Linear issues
Apple Notes
Kindle highlights
Notion
GitHub PRs
Compatible clients
Same config.
Every MCP-aware tool.
Heirloom exposes a stdio MCP server. Any client that speaks the protocol gets memory β no per-client adapter needed.
Claude Desktop
claude_desktop_config.json
Cursor
Settings β MCP
Antigravity
Google's MCP IDE
OpenClaw
workspace mcp.json
Claude Code
claude mcp add
Continue
config.json
Cline
VSCode extension
Zed
settings.json
# Same snippet for every client above
{
"mcpServers": {
"heirloom": {
"command": "heirloom",
"args": ["serve"]
}
}
}
Comparison
Honest comparison.
Every alternative we know about, fairly represented.
| Feature | Heirloom | claude-mem | claude-brain | Rewind |
|---|---|---|---|---|
| Works with any MCP client | β All | Claude Code only | Claude Code only | Single app |
| Single binary, no runtime | β Rust | Needs npm | β Rust | β |
| No API keys required | β | Needs LLM key | β | Account |
| At-rest encryption | β XChaCha20 | β | β | β |
| Local-first, no cloud | β | Partial | β | Cloud required |
| Pluggable ingesters | β 8 built-in | β | β | Closed |
| Open source | β MIT | β Apache | β | Closed |
| Self-hostable team server | β v1.0 | β | β | β |
Heirloom Teams
Shared memory
for your organization.
Deploy heirloom-team-server on your own infrastructure. Your team's memories live on your hardware.
Self-hosted
Free / always
- Full source code, MIT license
- SQLite-backed (scales to millions of memories)
- Bearer-token auth (OsRng-secure)
- Role-based: admin / member / read-only
- Full audit log
- End-to-end encrypted β server sees only ciphertext
- Single binary β no Postgres needed
Hosted
Coming in v1.1
- Everything in self-hosted
- OIDC / SAML SSO
- Postgres backend for large orgs
- Per-source ACLs
- Managed deployment, backups, uptime
- Dedicated support & SLAs
- Join the waitlist β
# On the server β one-time setup
heirloom-team-server admin init --team-name "Acme Engineering"
# β prints a bootstrap token (copy it)
heirloom-team-server --addr 0.0.0.0:7900
# On each member's machine
heirloom team join http://team.acme.internal:7900 --token hlmt_...
HEIRLOOM_PASSPHRASE='shared-team-secret' heirloom team push
HEIRLOOM_PASSPHRASE='shared-team-secret' heirloom team pull
β¦ β¦ β¦
You've re-explained yourself
for the last time.
One install. Every AI suddenly knows you.