Original conversations are the reason to consider MemPalace
MemPalace fits a specific need: finding the original passage behind an earlier decision. Its README says it stores conversation history verbatim and retrieves it with semantic search, without summarizing, extracting, or paraphrasing that history. People and projects become wings, topics become rooms, and original content lives in drawers.
That storage model is useful when the wording and context matter. It does not establish how reliably a particular conversation will be captured or retrieved. Our recorded run did not evaluate those outcomes.
What our September 30 run established
Our recorded run used commit 5ea40d3 (full SHA 5ea40d30caf0ed2ff6e49623e386a0863b28edaa) on September 30, 2026. The configured sandbox had 3 CPUs, 8 GB of RAM, and image ghcr.io/astral-sh/uv:python3.12-bookworm. The install tail identifies Python 3.12.12.
The install step exited 0 after 81 seconds. The record lists 120 dependencies and 454 MB of installation storage. The build step exited 0 after 5 seconds. These are successful recorded command steps, but the supplied record does not show the exact commands or a subsequent installed-binary check. It therefore does not prove that the CLI was available on PATH or that an MCP client connected successfully.
The checkout contained 731 files, approximately 210,888 lines of source, and occupied 67.2 MB. Those measurements describe the checkout, not runtime memory use or retrieval performance.
The test command reached its 900-second cap and exited 124. Its visible tail contains an F near 1%, progress through 9%, and further dots. There is no final test summary, identified failing test, or exhaustive passing-test count. The timeout leaves the suite unresolved; it does not establish a product-wide failure or explain the failure marker.
Pip-audit separately recorded 5 advisories across 1 package. The supplied summary does not identify the package, advisory IDs, affected versions, or scanned-package count. Coverage is unknown, and the 120-dependency figure cannot fill that gap. Review a current detailed audit before making a deployment decision.
Current setup requirements differ from the measured checkout
The current README and getting-started guide require Python 3.10+. The README pinned to the measured commit lists Python 3.9+. Use the current requirement for a current installation; our Python 3.12.12 run does not verify compatibility with either minimum version.
The README recommends an isolated installation through uv tool or pipx, or plain pip inside an activated virtual environment. It also makes a useful distinction: adding the repository's skills does not itself install the MemPalace CLI or MCP server. Guided setup must still perform and verify those changes.
The getting-started guide says the core local workflow needs no API key. ChromaDB is the default backend. Optional server backends and remote embedding endpoints add configuration and may add credentials. Our run did not verify any backend workload or model download.
For Docker, the README says the first command needing embeddings downloads a model into /data. Persist that directory and allow network access for the initial download. The container can only mine mounted paths. Some MCP clients do not expand ~ or $HOME, so use absolute host paths and container paths after mounting.
Verify capture before trusting recall
The README warns that Claude Code sessions expire after 30 days without auto-save hooks. Treat that as the project's retention warning, not a retention experiment performed here. Its documented hooks cover Claude Code, Codex CLI, and Cursor, with periodic saves and capture before context compression.
A practical acceptance check is to save a disposable transcript through the hook you intend to use, confirm that its text was stored, and retrieve a known passage through your actual client. Keep source transcripts backed up while checking this path. Completing setup steps alone does not demonstrate ongoing capture.
MemPalace v3.10.0 introduced a 3-tool MCP server alongside the release's 45-tool full server. The release notes describe unchanged search ranking and a smaller tool schema, and instruct users to register the light server beside the full server. Evaluate that smaller interface if tool-schema size matters to your client. We did not measure its context cost or behavior. The current README lists 47 full-server tools, so the release's 45-tool count should remain tied to v3.10.0.
Writer routing and platform boundaries need explicit checks
Issue #1888 contains reports across several older versions and deployment topologies. Its discussion includes a process-wide re-entrancy fix and later reports about external writers and hook capture. It should not be read as proof that every original failure persists unchanged in v3.10.0.
The v3.10.0 release notes describe read-only search avoiding writer leases and configurable daemon routing for CLI writes. They also say direct execution remains the default. Test hooks, manual mining, and MCP writes together in your intended topology, including what happens when the writer is unavailable. Our run did not exercise concurrent writers.
Issue #2613 reports that v3.10.0 can remove a detached environment's dependency paths during import when a host runs a standalone interpreter and supplies dependencies through PYTHONPATH. That is a reported embedding-host layout, not evidence that every isolated CLI installation fails. Check the report if your host uses that arrangement.
The README documents additional deployment limits: native Termux is unsupported, with Debian PRoot offered instead; Linux bind mounts must be readable by container uid 1000; and the optional CUDA image is unpublished and x86_64-only. The regular container supports amd64 and arm64, including Apple Silicon. We did not test these platform paths.
Choose by memory model and operating responsibility
Mem0's README describes user, session, and agent memory, LLM-based extraction, and library, self-hosted, and managed options. Consider it when extracted memories or a managed service better fit your application. This is a comparison of documented roles, not a retrieval benchmark.
Graphiti is a framework for temporal context graphs. Its README says you supply the graph database, LLM, embedder, and surrounding service. Consider it when changing facts, relationships, and historical queries are central to your application. It requires application integration and operations rather than serving as a drop-in CLI alternative.
How to read the scores
Scores describe the evidence available for this review, using a 1 to 5 rubric: 1 means substantial documented obstacles; 2 means limited support with major unanswered questions; 3 means a documented path with material validation gaps; 4 means strong support within the stated scope; and 5 requires broad corroboration beyond this run. Unknowns do not earn a high score, and these ratings are not benchmark results.
Setup earns 3 because the install and build steps completed, while installed-command and client checks are absent. Documentation earns 4 because the supplied sources explain isolation, storage, hooks, and platform limits, although current and pinned requirements differ. Community earns 3 because the release notes document contributions and the issues contain detailed follow-up; response times and adoption are unmeasured. Maturity earns 3 because the release documents operational fixes, while our tests remain incomplete and workload behavior is unverified.
Start with a disposable local palace. Verify command availability, capture, retrieval, backup recovery, and writer routing before entrusting it with conversations you cannot replace.

