mempalace
by @wanikua
MemPalace — Local AI memory with 96.6% recall. Semantic search over past conversations, knowledge graph with temporal facts, palace architecture (wings/rooms...
clawhub install mempalace📖 About This Skill
name: mempalace description: "MemPalace — Local AI memory with 96.6% recall. Semantic search over past conversations, knowledge graph with temporal facts, palace architecture (wings/rooms/drawers). Free, no cloud, no API keys. Highest LongMemEval score ever published." version: 1.4.0 homepage: https://github.com/milla-jovovich/mempalace user-invocable: true metadata: openclaw: emoji: "🏛️" requires: anyBins: - mempalace - python3 install: - id: mempalace-pip kind: uv label: "Install MemPalace (Python, local ChromaDB)" package: mempalace bins: - mempalace
MemPalace — Local AI Memory System
You have access to a local memory palace via MCP tools. The palace stores verbatim conversation history and a temporal knowledge graph — all on the user's machine, zero cloud, zero API calls.
Architecture
wing_alice, wing_myproject)chromadb-setup, riley-school)Protocol — FOLLOW THIS EVERY SESSION
1. ON WAKE-UP: Call mempalace_status to load palace overview.
2. BEFORE RESPONDING about any person, project, or past event: call mempalace_search or mempalace_kg_query FIRST. Never guess from memory — verify from the palace.
3. IF UNSURE about a fact (name, age, relationship, preference): say "let me check" and query. Wrong is worse than slow.
4. AFTER EACH SESSION: Call mempalace_diary_write to record what happened, what you learned, what matters.
5. WHEN FACTS CHANGE: Call mempalace_kg_invalidate on the old fact, then mempalace_kg_add for the new one.
Available Tools
Search & Browse
mempalace_search — Semantic search across all memories. Always start here.query (required): natural language search
- wing: filter by wing
- room: filter by room
- limit: max results (default 5)
mempalace_status — Palace overview: total drawers, wings, roomsmempalace_list_wings — All wings with drawer countsmempalace_list_rooms — Rooms within a wingmempalace_get_taxonomy — Full wing/room/count treeKnowledge Graph (Temporal Facts)
mempalace_kg_query — Query entity relationships. Supports time filtering.entity (required): e.g. "Max", "MyProject"
- as_of: date filter (YYYY-MM-DD) — what was true at that time
- direction: "outgoing", "incoming", or "both"
mempalace_kg_add — Add a fact: subject -> predicate -> objectsubject, predicate, object (required)
- valid_from: when this became true
mempalace_kg_invalidate — Mark a fact as no longer truesubject, predicate, object (required)
- ended: when it stopped being true (default: today)
mempalace_kg_timeline — Chronological story of an entitymempalace_kg_stats — Graph overview: entities, triples, relationship typesPalace Graph (Cross-Domain Connections)
mempalace_traverse — Walk from a room, find connected ideas across wingsstart_room (required): room to start from
- max_hops: connection depth (default 2)
mempalace_find_tunnels — Rooms that bridge two wingsmempalace_graph_stats — Graph connectivity overviewWrite
mempalace_add_drawer — Store verbatim content into a wing/roomwing, room, content (required)
- Checks for duplicates automatically
mempalace_delete_drawer — Remove a drawer by IDmempalace_diary_write — Write a session diary entryagent_name (required): your name
- entry (required): what happened, what you learned
- topic: category tag
mempalace_diary_read — Read recent diary entriesSetup
The user needs to initialize and populate the palace first:
pip install mempalace
mempalace init ~/my-convos
mempalace mine ~/my-convos
Then connect via MCP (for Claude Code, Cursor, etc.):
claude mcp add mempalace -- python -m mempalace.mcp_server
For OpenClaw, add to your MCP config:
{
"mcpServers": {
"mempalace": {
"command": "python3",
"args": ["-m", "mempalace.mcp_server"]
}
}
}
Tips
mempalace_add_drawer.License & Attribution
This skill is an integration for MemPalace, created by Ben Sigman (@bensig), Igor Lins e Silva (@igorls), Milla Jovovich (@milla-jovovich), and adv3nt3 (@adv3nt3), licensed under the MIT License.
MIT LicenseCopyright (c) 2026 MemPalace Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
⚙️ Configuration
The user needs to initialize and populate the palace first:
pip install mempalace
mempalace init ~/my-convos
mempalace mine ~/my-convos
Then connect via MCP (for Claude Code, Cursor, etc.):
claude mcp add mempalace -- python -m mempalace.mcp_server
For OpenClaw, add to your MCP config:
{
"mcpServers": {
"mempalace": {
"command": "python3",
"args": ["-m", "mempalace.mcp_server"]
}
}
}
📋 Tips & Best Practices
mempalace_add_drawer.