Mempalace plugin
Mempalace keeps Claude Code and Codex memory in local SQLite with no Python or API keys, as a single binary of about 13 MB.
- 66 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Hooks save session and conversation content into a local database.
- A binary from GitHub Actions should be verified by sha256 and run after removing the macOS quarantine flag.
Install
- Works in
Manual install
git clone https://github.com/bunkerlab-net/mempalace.gitFirst install command from the README: then run `cargo build --release` in the project folder.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Hooks save session and conversation content into a local database.
- A binary from GitHub Actions should be verified by sha256 and run after removing the macOS quarantine flag.
This is third-party code. Review the repository files before installing.
What it does
Mempalace gives an AI assistant local memory across sessions. Projects and conversations are stored in a palace of wings, rooms and drawers, and search uses keyword matching with BM25 ranking. The server runs as an MCP process over stdio and exposes 26 tools, while the same operations are available as `mempalace init`, `mine`, `search` and `wake-up` commands. It is a Rust rewrite of the original Python MemPalace. A keyword inverted index replaces ChromaDB embeddings, and the turso SQLite layer fixes dropped writes when several MCP clients work at once. The plugin adds the `help`, `init`, `mine`, `search` and `status` commands plus a skill for Claude Code and Codex.
Who it is for. People running several agents on one machine who want shared memory without a Python environment or cloud services.
Good fit when
- Agent should recall decisions from an earlier session on a project.
- A project folder is loaded into memory with `mempalace mine`.
- Conversations from `~/.claude/projects/` should become searchable.
- Two MCP clients share one database and the earlier setup dropped writes.
Not a fit when
- You need semantic search by meaning rather than by words.
- Confidential conversations cannot be stored in memory.
- Building from Rust sources is not acceptable.
Example request
Mine this project into Mempalace and find what we decided about SQLite locking.Limitations
Search is keyword based: embeddings are deferred by the author until a model can be embedded without network access. The binary is built with `cargo build --release`, prebuilt files sit in GitHub Actions artifacts and need the macOS quarantine flag removed. The `Stop` and `PreCompact` hooks run `mempalace hook` on their own and save context, so the database will hold content from your sessions. Before the first load, review which folders and conversations will enter memory.
How to disable. Remove the MCP entry with `claude mcp remove mempalace`, uninstall the plugin along with its hooks and delete the database under `$XDG_DATA_HOME/mempalace`.
FAQ
How does Mempalace differ from the Python version?
It is a Rust rewrite with a roughly 13 MB binary instead of a roughly 100 MB environment. Embedding search is replaced by a keyword index.
Are API keys required?
No. No cloud services or keys are needed, everything lives in embedded SQLite.
How do I connect Mempalace to Claude Code?
Build the binary and run `claude mcp add mempalace -- /path/to/mempalace mcp`. The server runs over stdio and the tools are available right after it starts.
Which conversations can be loaded?
`mempalace mine ~/.claude/projects/ --mode convos` reads Claude Code conversations. Codex CLI and Gemini CLI formats are supported as well.
How do I see the full tool list?
Call `mempalace_status`: the reply includes the memory protocol and the AAAK dialect spec. The command reference is in `USAGE.md`.
Discussion
No questions or reviews yet.
Related
PluginsLocal memory for agents: stores conversations and project files verbatim and retrieves them with semantic search over MCP
Membase keeps one shared memory for AI agents that Claude Code, Cursor and Codex read through MCP, an SDK or the membase command
Local memory layer: imports Claude Code, Codex and mem0 memory into SQLite and serves it back to agents over CLI and MCP.
Cortex keeps decisions and project context between Claude Code and Codex sessions in a local database and shows what it recalled
MemMesh, MCP-сервер памяти в одном бинарнике на Rust, хранит заметки агента на машине и ищет по смыслу без внешней базы.
A local-first MCP memory server for agents: session history, codebase index and a concept graph in one SQLite database
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Mempalace (this card) | no | 66 | ||
| MemPalace | yes | not required | 60,537 | the original Python version with ChromaDB; Mempalace is built in Rust with a keyword index and a single binary |
| Basic Memory | no | not required | 4,566 | stores notes as Markdown; Mempalace keeps memory in SQLite and ships as an MCP server and plugin |
README in short
The project replaces the Python implementation with one static binary and stays compatible with its MCP tools and commands. Memory is local, no cloud involved.
README badge
Original SKILL.md
# MemPalace
MemPalace is a local-first AI memory system. It stores conversation context,
project knowledge, and code insights in an embedded SQLite database accessible
via MCP tools or the `mempalace` CLI. No cloud services or API keys required.
## Architecture
Wings (top-level categories, e.g. projects, people, domains)
+-- Rooms (sub-topics within a wing)
+-- Drawers (verbatim memory chunks)
Tunnels connect related rooms across different wings.
## When to Use MemPalace
- **Remember context** across sessions: call `mempalace_search` when the user
references something that may have been discussed before.
- **Wake up** at the start of a session: check `mempalace_status` and the
L0/L1 context from `mempalace wakeup` to orient yourself.
- **File important facts**: use `mempalace_add_drawer` to store decisions,
preferences, milestones, and key facts the user wants to be remembered.
- **Mine projects**: run `mempalace mine <dir>` to ingest a project directory
or conversation exports into the palace.
## MCP Tools Quick Reference
### Search and recall
mempalace_search(query, wing?, room?) -- keyword search with BM25 ranking
mempalace_list_wings() -- list all top-level wings
mempalace_list_rooms(wing) -- list rooms within a wing
mempalace_get_taxonomy() -- full wing/room/drawer tree
mempalace_traverse(room, wing?) -- graph traversal from a room
mempalace_find_tunnels(wing1, wing2) -- cross-wing connections
mempalace_follow_tunnels(wing, room?) -- follow tunnels from a location
### Write
mempalace_add_drawer(wing, room, content, source_file?) -- store a memory
mempalace_update_drawer(id, content) -- update a memory
mempalace_delete_drawer(id) -- remove a memory
mempalace_get_drawer(id) -- fetch one drawer
mempalace_list_drawers(wing?, room?, limit?, offset?) -- paginated listing