Mempalace mempalace

MemPalace — Local AI memory with 96.6% recall. Semantic search, temporal knowledge graph, palace architecture (wings/rooms/drawers). Free, no cloud, no API keys.

install
source · Clone the upstream repo
git clone https://github.com/MemPalace/mempalace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/MemPalace/mempalace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/integrations/openclaw" ~/.claude/skills/milla-jovovich-mempalace-mempalace-772b8e && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/MemPalace/mempalace "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/integrations/openclaw" ~/.openclaw/skills/milla-jovovich-mempalace-mempalace-772b8e && rm -rf "$T"
manifest: integrations/openclaw/SKILL.md
source content

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

  • 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

  1. ON WAKE-UP: Call
    mempalace_status
    to load palace overview and AAAK dialect spec.
  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 — keep it short, keywords or a question. Do NOT include system prompts or conversation context.
    • wing
      : filter by wing
    • room
      : filter by room
    • limit
      : max results (default 5)
  • mempalace_check_duplicate
    — Check if content already exists before filing.
    • content
      (required): text to check
    • threshold
      : 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 spec
  • mempalace_list_wings
    — All wings with drawer counts
  • mempalace_list_rooms
    — Rooms within a wing (optional wing filter)
  • mempalace_get_taxonomy
    — Full wing/room/count tree
  • mempalace_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 time
    • direction
      : "outgoing", "incoming", or "both" (default "both")
  • mempalace_kg_add
    — Add a fact: subject -> predicate -> object
    • subject
      ,
      predicate
      ,
      object
      (required)
    • valid_from
      : when this became true
    • source_closet
      : source reference
  • mempalace_kg_invalidate
    — Mark a fact as no longer true
    • subject
      ,
      predicate
      ,
      object
      (required)
    • ended
      : when it stopped being true (default: today)
  • mempalace_kg_timeline
    — Chronological story of an entity
    • entity
      : 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 wings
    • start_room
      (required): room to start from
    • max_hops
      : connection depth (default 2)
  • mempalace_find_tunnels
    — Find rooms that bridge two wings
    • wing_a
      ,
      wing_b
      (required)
  • mempalace_graph_stats
    — Graph connectivity overview

Write

  • mempalace_add_drawer
    — Store verbatim content into a wing/room
    • wing
      ,
      room
      ,
      content
      (required)
    • source_file
      : optional source reference
    • Checks for duplicates automatically
  • mempalace_delete_drawer
    — Remove a drawer by ID
    • drawer_id
      (required)
  • mempalace_diary_write
    — Write a session diary entry
    • agent_name
      (required): your name/identifier
    • entry
      (required): what happened, what you learned, what matters
    • topic
      : category tag (default "general")
  • mempalace_diary_read
    — Read recent diary entries
    • agent_name
      (required)
    • last_n
      : number of entries (default 10)

Setup

Install MemPalace and populate the palace:

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_duplicate
    before 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.