mrkeyoor.com_
Wed 16 Sept 22:07 UTC
AI Toolsevaluationupdated 25 Aug 2026

mempalace review

MemPalace is a local-first memory store for AI assistants that keeps original conversation text and retrieves it with semantic and lexical search. It can mine project files and chat transcripts, organize them into scoped collections, expose memory through MCP, and save sessions from Claude Code, Codex CLI, and Cursor hooks.

+118stars / 7d
Verdict

MemPalace is a thoughtful fit for developers who want the original record kept locally and searchable across coding-agent sessions. Its isolated install and default embedded backend are approachable, but the 15-minute test timeout, one reported dependency vulnerability, and multi-writer edge cases argue against casual team-wide deployment. Start with one user and one writer, verify the hooks, back up the palace, then expand only after recovery and concurrency tests pass.

We ran it

Lab card: what happened when we ran mempalaceScreenshot of mempalace (mempalaceofficial.com)
Install✓ · 60s119 packages · 453 MB
Build✓ · 10s
Tests✗ timed out · 900sran, no count parsed
Known vulns1(pip-audit)
Repo559 files~158,638 lines of source · 64.8 MB · 5 CI workflows · Dockerfile · tests dir

Answers from our run

Does mempalace build from source?

Dependencies installed in 60 seconds (119 packages), and the build succeeded in 10 seconds. We cloned commit dfba59b into a clean Debian container with 3 CPUs and no project-specific setup.

Do mempalace's tests pass?

We could not finish them: the suite was still running after 15 minutes in our container.

Does mempalace have known vulnerabilities in its dependencies?

pip-audit flagged 1 known advisory in the dependency tree at the time of our run.

Who should not use mempalace?

Users who want automatic distilled facts instead of source text: the README says MemPalace stores verbatim content and does not summarize or paraphrase it.

What are the alternatives to mempalace?

Mem0, Zep, Letta. MemPalace is a thoughtful fit for developers who want the original record kept locally and searchable across coding-agent sessions.

Setup3/5Install and build passed, but models, hooks, and mounts add work
Docs5/5Specific guidance for clients, Docker, storage, hooks, and recovery
Community5/5Fresh releases and active issue and pull-request traffic
Maturity3/5Wide feature set, with timeout, vulnerability, and writer concerns

Discussed on

  1. hnMemPalace, the highest-scoring AI memory system ever benchmarked67 points
  2. hnThe highest-scoring AI memory system ever benchmarked21 points
  3. hnFifth Element Star Milla Jovovich Reveals AI Memory Tool MemPalace9 points
  4. hnShow HN: Memoriki – LLM Wiki+MemPalace for persistent personal knowledge bases5 points
  5. hnMy Claude dreams at night and remembers everything. Better than mempalace3 points

Who it’s for

Developers who lose decisions and context when coding-agent sessions expire or compact.
MCP users who want searchable memory stored on their own machine.
Multi-agent builders who need separate memories, diaries, event streams, and artifact handoffs.
Teams willing to operate a local vector store or one of the supported server backends.

Who it’s NOT for

Users who want automatic distilled facts instead of source text: the README says MemPalace stores verbatim content and does not summarize or paraphrase it.
Anyone expecting session retention without wiring hooks: the README warns that Claude Code sessions expire after 30 days unless auto-save is configured.
Native Android Termux users: compiled ChromaDB and ONNX Runtime wheels are unavailable there, so the documented route uses Debian PRoot.
Apple Silicon users expecting the unpublished GPU container: the GPU image is x86_64-only and fails dependency resolution on ARM.
Multi-session daemon operators who cannot test write locking carefully: issue #1888 describes conflicts between a lifetime writer lock and external hook or manual mining.

Setup reality

Our fresh Debian install succeeded in 60 seconds, added 119 packages, and used 453 MB. The build succeeded in 10 seconds. Pytest did not finish within the 900-second limit. The visible progress reached 15%, showed one F around 9%, and continued running; the log does not provide a final pass or failure count. Pip-audit reported one known vulnerability.

The smallest supported route is an isolated uv tool or pipx install with the bundled ChromaDB backend. The first embedding operation downloads a local model, and Docker users must persist /data. Mining Claude Code transcripts also needs an absolute read-only mount or local path plus correctly wired save hooks.

Larger deployments add Qdrant, Milvus, or PostgreSQL credentials and service management. Linux bind mounts must be readable by container uid 1000. Multiple writers need special care because the project protects the same palace from concurrent mutation, while hooks and shared daemons can create competing write paths.

Memory that keeps the original record

MemPalace takes a clear position on assistant memory: store the words that were actually written, then retrieve relevant pieces later. It does not turn conversations into summaries or extracted profile facts. Content is organized into wings, rooms, and drawers so a search can stay within one person, project, or topic instead of running across a flat archive. Semantic and lexical retrieval work together over that structure.

A design decision buried in an old session can be returned with its surrounding text rather than a model-generated paraphrase. The CLI can mine project files and conversation directories, while a wake-up command loads useful context for a new session. Auto-save hooks cover Claude Code, Codex CLI, and Cursor, and the MCP server exposes reads, writes, graph operations, diaries, and coordination tools.

Verbatim storage also means the palace can contain source code, secrets pasted into chat, personal details, and abandoned ideas. Local-first storage reduces outside disclosure, but it does not classify or redact what enters the archive. Teams still need file permissions, backups, retention rules, and a decision about which transcript directories may be mined.

What happened when we ran it

We cloned commit dfba59b into a fresh Debian container with 3 CPUs, 8 GB of RAM, no secrets, and an unprivileged user. The checkout contained 559 files, about 158,638 source lines, and used 64.8 MB. Installation succeeded in 60 seconds, adding 119 packages and 453 MB. The build completed in 10 seconds.

The test run did not finish within our 900-second limit. Its progress output passed 15%, displayed one failure marker near 9%, and continued producing successful markers. Because pytest never reached its summary, we cannot state how many tests passed, failed, or remained. The timeout is still useful evidence: the default suite needs more than 15 minutes in this container, and at least one test had failed before the run was stopped.

Pip-audit found one known vulnerability in the installed dependency set. The measurement does not identify it here, so we cannot assess its exploitability or suggest a package-specific fix from this result alone. The repository has five CI workflow files, a Dockerfile, a Compose file, and a tests directory. A production review should rerun the suite to completion and inspect the audit record before selecting a version.

The personal setup is manageable

The recommended install uses uv tool so ChromaDB, NumPy, gRPC, and the other dependencies stay out of the system Python. Pipx is offered as an equivalent, while plain pip belongs inside a virtual environment. ChromaDB is bundled as the default backend, so one developer does not have to deploy a database server just to create a palace.

Embeddings introduce the first delayed step. The initial command downloads the selected model, then caches it. A Docker deployment must mount /data to preserve the palace, configuration, and model cache. It must also mount any source or transcript directory the container should read. The docs correctly warn that some MCP clients do not expand ~ or environment variables in paths, so absolute paths avoid a confusing empty import.

Linux permissions are another concrete catch. The container runs as uid 1000, and host bind mounts keep their ownership. A private directory readable only by another uid produces a permission error. Changing the container user can then make /data unwritable, so the clean fix is deliberate mount ownership and access rather than a random --user flag.

Retention depends on hooks

Installing the MCP server does not automatically preserve every assistant session. The README warns that Claude Code sessions expire after 30 days without save hooks and links to a retention checklist. The reliable flow is to back up existing JSONL transcripts, configure periodic and pre-compaction saves, then backfill the old directory. Per-message recall requires an additional sweep command over transcripts.

This distinction matters because retrieval quality cannot recover data that was never ingested. After setup, create a disposable session, let the hook save it, search for an unusual sentence, and confirm the result survives a restart. Repeat the check before assuming an entire team's history is safe.

MemPalace can move beyond the embedded backend. SQLite exact mode stays local, while Milvus, Qdrant, and pgvector support other deployment shapes. Switching embedding models changes the vector space and requires rebuilding the index. Remote OpenAI-compatible embedding endpoints are supported, but then content leaves the local process unless the endpoint stays on the same machine or network.

Multi-agent use needs a single write story

The MCP tool set includes separate agent wings and diaries, cross-agent navigation, event streams, and artifact handoffs. Release v3.8.0 added a persistent log watcher so an agent can wake on new coordination events. It also reduced the memory footprint of proxied MCP sessions and improved large-palace metadata reads. These are useful operations features for a fleet, not just a personal search command.

Concurrency remains the area to test hardest. Issue #1888 describes a shared daemon whose process-lifetime writer lock blocks hook-driven and manual mining. Disabling the peer-writer guard restores that workflow but removes protection against concurrent-writer index corruption. The v3.8.0 release also changed sync deletion logic so an unavailable source volume is not mistaken for deleted files. Both examples show why backups and explicit writer ownership matter.

Health and the decision

The last push was August 25, 2026, two days after v3.8.0. Nine other listed releases appeared between May and mid-August. GitHub reported 727 open issues and pull requests combined, with activity continuing on August 25. The release pace and detailed notes show active maintenance, while the queue size and rapid changes favor pinning a tested version.

MemPalace is worth trying for local coding memory because its storage model is easy to reason about: keep the source, scope it, and search it. Begin with the embedded backend and one client. Do not treat installation as proof of retention. Verify hooks and recovery, finish the test suite, investigate the audit finding, and design one controlled write path before a multi-agent rollout.

Alternatives

ProjectWhat it isPick it when
Mem0 gh↗A memory layer for AI applications with managed and open-source deployment options.pick this instead when you want extracted memories and a hosted service option rather than verbatim local archives.
ZepA context and memory platform centered on temporal knowledge for agent applications.pick this instead when application-level user memory and a service architecture fit better than local transcript mining.
LettaA platform for stateful agents that treats editable memory as part of the agent runtime.pick this instead when you are building the whole agent around persistent state, not adding memory to existing clients.

Sources

  1. MemPalace README
  2. MemPalace documentation
  3. Claude Code retention checklist
  4. MemPalace v3.8.0 release
  5. Issue 1888: peer-writer lock and multi-session daemons

More ai tools reviews

eve · MemOS · LongCat-Video · Concat · DLSS5-Feeder · Concat · the whole board →