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
Plugin

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.
All reasons and checks

bunkerlab-net/mempalace

Install

Manual install

git clone https://github.com/bunkerlab-net/mempalace.git

First install command from the README: then run `cargo build --release` in the project folder.

Access and checks

How we review

Extended 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.

Plugins
Official

Local memory for agents: stores conversations and project files verbatim and retrieves them with semantic search over MCP

MCP serverExtended access60.5KRepository stars
Official

Membase keeps one shared memory for AI agents that Claude Code, Cursor and Codex read through MCP, an SDK or the membase command

MCP serverExtended access141Repository stars

Local memory layer: imports Claude Code, Codex and mem0 memory into SQLite and serves it back to agents over CLI and MCP.

PluginExtended access188Repository stars

Cortex keeps decisions and project context between Claude Code and Codex sessions in a local database and shows what it recalled

MCP serverExtended access76Repository stars

MemMesh, MCP-сервер памяти в одном бинарнике на Rust, хранит заметки агента на машине и ищет по смыслу без внешней базы.

MCP serverExtended access358Repository stars

A local-first MCP memory server for agents: session history, codebase index and a concept graph in one SQLite database

MCP serverExtended access438Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
Mempalace (this card)no66
MemPalaceyesnot required60,537the original Python version with ChromaDB; Mempalace is built in Rust with a keyword index and a single binary
Basic Memorynonot required4,566stores 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

Report a problem