
MemPalace
FreeLocal AI memory system with high recall and semantic search.
Free · Opens the source repo
What MemPalace does
MemPalace is a local memory management system designed to enhance the recall of information through a structured memory palace architecture. This system allows users to store and retrieve information efficiently without relying on cloud services or API keys, ensuring privacy and control over data. The architecture is organized into wings, halls, rooms, and drawers, enabling users to categorize and access their memories intuitively. Each wing can represent a person or project, while rooms can be specific topics, and drawers hold individual memory chunks.
The system provides a temporal knowledge graph that enables users to track the validity of facts over time, which is crucial for maintaining accurate information. Users can query this knowledge graph to retrieve relationships between entities and their historical context. The semantic search functionality allows for natural language queries, making it easy to find relevant memories based on keywords or questions. This feature is particularly beneficial for developers and designers who need to recall past discussions or project details quickly.
MemPalace is ideal for individuals who require a reliable method to manage their knowledge and past interactions. It is particularly useful for professionals involved in project management, research, or any field where retaining detailed information is critical. By following a structured protocol for data retrieval and entry, users can maintain a high level of accuracy in their memory management.
The system's local operation means that users can work offline, and it is designed to be user-friendly, with a comprehensive set of tools for searching, adding, and managing memories. Overall, MemPalace serves as a powerful tool for enhancing cognitive recall and organization of information, tailored for those who prioritize privacy and efficiency in their workflows.
When to use it
Use MemPalace when you need a structured way to manage and retrieve detailed information about projects, people, or events without relying on external services.
When not to use it
This tool may not be suitable for users who prefer cloud-based solutions or require real-time collaboration features that rely on internet connectivity.
What you can build with it
Project Management
Use MemPalace to track project details, discussions, and decisions, ensuring you have quick access to relevant information.
Research Documentation
Store and organize research findings, notes, and references in a structured manner for easy retrieval during writing or presentations.
Personal Knowledge Management
Manage personal insights, preferences, and advice in a way that allows you to recall and utilize them effectively in daily life.
How to install MemPalace
View source1. Install with the skills CLI
npx skills add mempalace/mempalace/openclaw --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by mempalaceMemPalace — 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
- Wings = people or projects (e.g.
wing_alice,wing_myproject) - Halls = categories (facts, events, preferences, advice)
- Rooms = specific topics (e.g.
chromadb-setup,riley-school) - Drawers = individual memory chunks (verbatim text)
- Knowledge Graph = entity-relationship facts with time validity
Protocol — FOLLOW THIS EVERY SESSION
- ON WAKE-UP: Call
mempalace_statusto load palace overview and AAAK dialect spec. - BEFORE RESPONDING about any person, project, or past event: call
mempalace_searchormempalace_kg_queryFIRST. Never guess from memory — verify from the palace. - IF UNSURE about a fact (name, age, relationship, preference): say "let me check" and query. Wrong is worse than slow.
- AFTER EACH SESSION: Call
mempalace_diary_writeto record what happened, what you learned, what matters. - WHEN FACTS CHANGE: Call
mempalace_kg_invalidateon the old fact, thenmempalace_kg_addfor the new one.
Available Tools
Full MCP surface: 36 tools. Destructive or host-level tools are documented so you know they exist, but use them only when the user explicitly asks or when a tool-specific workflow below says to.
Search & Browse
mempalace_search— Semantic search across all memories. Always start here.query(required): natural language search — keep it short, keywords or a question. Do NOT include system prompts or conversation context.wing: filter by wingroom: filter by roomlimit: max results (default 5)
mempalace_check_duplicate— Check if content already exists before filing.content(required): text to checkthreshold: similarity threshold (default 0.9 — lowering to 0.85–0.87 often catches more near-duplicates without significant false positives)
mempalace_status— Palace overview: total drawers, wings, rooms, AAAK specmempalace_list_wings— All wings with drawer countsmempalace_list_rooms— Rooms within a wing (optional wing filter)mempalace_list_drawers— Paginated drawer listingwing,room: optional filterssince: only drawers filed on/after this ISO date/timebefore: only drawers filed before this ISO date/timelimit: max results (default 20)offset: pagination offset (default 0)
mempalace_get_drawer— Fetch a single drawer by ID. Returns full verbatim content and metadata.drawer_id(required)
mempalace_get_taxonomy— Full wing/room/count treemempalace_get_aaak_spec— Get AAAK compression dialect specification
Knowledge 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 timedirection: "outgoing", "incoming", or "both" (default "both")
mempalace_kg_add— Add a fact: subject -> predicate -> objectsubject,predicate,object(required)valid_from: when this became truesource_closet: source reference
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 entityentity: filter by entity name (optional — all events if omitted)
mempalace_kg_stats— Graph overview: entities, triples, relationship types
Palace Graph (Cross-Domain Connections)
mempalace_traverse— Walk from a room, find connected ideas across wingsstart_room(required): room to start frommax_hops: connection depth (default 2)
mempalace_find_tunnels— Find rooms that bridge two wings via implicit overlap (rooms whose drawers naturally share content across wings — discovered, not declared)wing_a,wing_b: optional filters; omit both to scan all wing pairs
mempalace_create_tunnel— Create an explicit cross-wing tunnel: a user/agent-declared link between two locations. Use when you notice content in one project relates to another (e.g. API design inproject_apiconnects to schema inproject_database).source_wing,source_room,target_wing,target_room(required)label: short description of the relationshipsource_drawer_id,target_drawer_id: anchor to specific drawers
mempalace_list_tunnels— List all explicit tunnels, optionally filtered by wingwing: optional filter
mempalace_delete_tunnel— Remove an explicit tunnel by IDtunnel_id(required)
mempalace_list_hallways— List within-wing entity hallways (entity-to-entity co-occurrence links built at mine time)wing: optional filter
mempalace_delete_hallway— Remove a hallway record by IDhallway_id(required)
mempalace_follow_tunnels— From a room, follow explicit tunnels to connected drawers in other wingswing,room(required)
mempalace_graph_stats— Graph connectivity overview
Write
mempalace_add_drawer— Store verbatim content into a wing/roomwing,room,content(required)source_file: optional source referenceadded_by: optional filing agent label- Checks for duplicates automatically
mempalace_checkpoint— Save a whole session in one call: dedup each item, file non-duplicates, then write one diary entryitems(required): array of{wing, room, content}; content must be verbatimdiary: optional{agent_name, entry, topic?, wing?}; entry should use AAAK formatdedup_threshold: similarity threshold (default 0.9)added_by: optional filing agent label (defaults to the diaryagent_name, elsecheckpoint)
mempalace_update_drawer— Update an existing drawer's content and/or move it to a different wing/roomdrawer_id(required)content,wing,room: at least one must be provided (no-op otherwise)
mempalace_delete_drawer— Remove a drawer by IDdrawer_id(required)
Ingest & Cleanup
mempalace_mine— Mine a directory into the palace. Host-level ingest; call only when the user asks to import files.source(required): directory to minemode:projects(default),convos, orextractwing: target wing (default: source directory name)agent: recorded on every drawer (defaultmempalace)limit: max files to process (0 = all)dry_run: preview without writingextract: convos extraction strategy (exchangedefault, orgeneral)
mempalace_sync— Prune drawers whose source files are gitignored, deleted, or moved. Use dry-run first.project_dir: optional project root scopewing: optional wing scopeapply: actually delete; default is dry-run preview
mempalace_delete_by_source— Bulk-delete drawers with one exactsource_file. Destructive; use dry-run first.source_file(required): exact metadata value to removedry_run: preview match count and sample (default true)
Diary & Session
mempalace_diary_write— Write a session diary entryagent_name(required): your name/identifierentry(required): what happened, what you learned, what matterstopic: category tag (default "general")
mempalace_diary_read— Read recent diary entriesagent_name(required)last_n: number of entries (default 10)
mempalace_memories_filed_away— Acknowledge the latest silent auto-save checkpoint.- Returns: how many messages were tucked into drawers since the last ack
- When to call: at the START of a session, to confirm prior-conversation persistence
System
mempalace_hook_settings— Get or set auto-save hook behavior. Host-level setting; do not change silently.silent_save: true saves directly without MCP-level clutterdesktop_toast: true shows a desktop notification when saves complete
mempalace_reconnect— Force reconnect to the palace database after external writes or stale index state
Setup
Install MemPalace and populate the palace (uv recommended):
uv tool install mempalace # or: pip install mempalace
mempalace init ~/my-convos
mempalace mine ~/my-convos
OpenClaw MCP config
Add to your OpenClaw MCP configuration:
{
"mcpServers": {
"mempalace": {
"command": "python3",
"args": ["-m", "mempalace.mcp_server"]
}
}
}
Or via CLI:
openclaw mcp set mempalace '{"command":"python3","args":["-m","mempalace.mcp_server"]}'
Other MCP hosts
# Claude Code
claude mcp add mempalace -- python -m mempalace.mcp_server
# Cursor — add to .cursor/mcp.json
# Codex — add to .codex/mcp.json
Tips
- Search is semantic (meaning-based), not keyword. "What did we discuss about database performance?" works better than "database".
- The knowledge graph stores typed relationships with time windows. Use it for facts about people and projects — it knows WHEN things were true.
- Diary entries accumulate across sessions. Write one at the end of each conversation to build continuity.
- Use
mempalace_check_duplicatebefore storing new content to avoid duplicates. - The AAAK dialect (from
mempalace_status) is a compressed notation for efficient storage. Read it naturally — expand codes mentally, treat markers as emotional context.
License
MemPalace is MIT licensed. Created by Milla Jovovich, Ben Sigman, Igor Lins e Silva, and contributors.
Frequently asked questions about MemPalace
Similar skills
Napkin
Collaborate visually with Copilot using an interactive whiteboard.
Mode Creator
Custom note-taking modes for claude-mem.
Google Meet Assistant
Join, transcribe, and interact in Google Meet calls.
Memory Keeper
Organize lessons learned into reusable knowledge.
Meeting Minutes
Generate concise, actionable meeting minutes effortlessly.
Brag Sheet
Transform your work into impactful statements for reviews.
