{"slug": "116000-stars-vs-one-binary-claude-mem-and-palace-rs-fact-by-fact", "title": "116,000 Stars vs. One Binary: claude-mem and palace-rs, Fact by Fact", "summary": "An independent comparison found that claude-mem, the most popular memory plugin for AI coding agents with 116,434 GitHub stars, requires a JavaScript runtime, a Python toolchain, a vector database and a long-running HTTP service, while palace-rs ships as a single binary with one SQLite file and no API keys. claude-mem uses a second LLM agent (defaulting to Claude Haiku) to summarize tool activity into memories and publishes no retrieval benchmark, whereas palace-rs stores text verbatim and reports LongMemEval s_cleaned scores of R@1 0.915, R@5 0.987 and R@10 0.996 with no LLM or GPU in the memory path.", "body_md": "claude-mem is the most popular memory plugin for AI coding agents. At the time of writing it has **116,434 GitHub stars**.\n\npalace-rs does the same job. It has **10**.\n\nStars tell you what people clicked. They don't tell you what you have to install, what runs in the background, who writes your memories, or whether anyone measured if the thing finds the right memory. So I went through both projects' own READMEs, docs and source and wrote down what each one actually does.\n\nEvery claim below links back to something you can open. No guesses.\n\n**claude-mem** (from its README and `package.json`, v15.18.1):\n\n`^20.19.0 || >=22.12.0`\n`>=1.1.31`, \"JavaScript runtime and process manager\"` CLAUDE_MEM_CHROMA_ENABLED: 'true'`), run locally as `chroma-mcp` through `uvx`\nThat's a JavaScript runtime, a second JavaScript runtime, a Python toolchain, a vector database and a long-running HTTP service.\n\n**palace-rs** (from its README, v0.20.0):\n\nOne binary, one SQLite file, no API keys, no cloud.\n\nNo Python, no vector database, no Docker. One `palace` executable and one `palace.db` file.\n\nEmbeddings run on your CPU through ONNX Runtime. There's no server process to keep alive. The install script downloads the release binary, verifies its SHA-256 checksum, and you run `palace install` to wire up your agents.\n\nThis is the biggest difference, and it's a design choice, not a detail.\n\n**claude-mem uses an LLM to write your memory.** In its own words:\n\nHooks in your agent hand each tool call (what it reads, edits and runs) to a small local worker.\n\nA second agent turns that activity into short observations, and writes a summary when the session ends.\n\nThe default settings in `SettingsDefaultsManager.ts` are `CLAUDE_MEM_PROVIDER: 'claude'` and `CLAUDE_MEM_MODEL: 'haiku'`. So what ends up in memory is a model's summary of what happened, not what happened.\n\nThat second agent also has to be paid for by someone. The README lists three options: the hosted \"claude-mem observer\" (a 30-day free trial that asks for a payment method), your own OpenRouter or Gemini key, or your Anthropic plan. It then says:\n\nWith the observer, memory runs off-plan, so you get up to 100% more usage from your plan.\n\nRead that the other way round: when memory runs on your plan, it's using your plan. And when the trial ends, \"memory automatically falls back to your Anthropic plan unless you subscribe.\"\n\n**palace-rs stores text verbatim and uses no LLM.**\n\nCode, notes, and conversations are stored as written, not as an LLM summary that loses detail.\n\nNo API key, no model calls, no second agent, no subscription. Recall is hybrid search (BM25 fused with cosine similarity over local embeddings) plus intent-aware ranking. A local cross-encoder reranker is optional. Nothing in the memory path costs tokens to create.\n\nA memory tool has one job: when the agent needs something from last week, return it.\n\n**palace-rs publishes its numbers.** On LongMemEval `s_cleaned` (470 evaluated questions, each over a haystack of about 50 sessions and 115k tokens), stored the way Palace actually stores conversations:\n\n| Metric | palace-rs | \n|---|---|\n| R@1 | 0.915 | \n| R@5 | 0.987 | \n| R@10 | 0.996 | \n\nFrom the README's method notes: \"No LLM at any stage, no GPU.\" The one ranking weight picked on LongMemEval data was chosen on a different split (`m_cleaned`) and frozen before the run. Per-question-type results are published too, including the weakest category.\n\nIt also ships a coding-agent eval (51 questions like \"why did we choose bundled sqlite?\") that runs with one command:\n\n```\ncargo test --test coding_agent_eval -- --nocapture\n```\n\nThe README says plainly that this eval is partly tuned, and prints the untuned numbers next to the tuned ones.\n\n**claude-mem's README publishes no retrieval benchmark.** There's no LongMemEval score, no recall@K, no eval command. The token figures it does give (\"~50-100 tokens/result\" for the index, \"~500-1,000 tokens/result\" for full details) come with its own disclaimer:\n\nThe ratio is not a measured recall or end-to-end saving.\n\nSo for the most-starred memory tool in this space, there's no published number for how often it returns the right memory. For the 10-star one, there is, with the command to reproduce it.\n\nBoth tools use hooks. palace-rs installs four:\n\nAll hooks fail open: if the palace is missing or empty, the agent works as normal. Every result carries its wing, room, source file, drawer id and score breakdown, so you can see where an answer came from.\n\npalace-rs has a temporal knowledge graph: subject → predicate → object, with a valid-from date. When a fact changes, the agent invalidates the old one and adds the new one, so the timeline keeps both. `palace_conflicts` flags facts that look stale or contradictory.\n\n**claude-mem:**\n\n`npx claude-mem telemetry disable` (or `DO_NOT_TRACK`).`~/.claude-mem/media-v1/`.\n**palace-rs:**\n\nNo telemetry. `palace gain` statistics are written to your local database only.\n\nThe only network calls are the one-time model download from Hugging Face and, if you turn it on, your own Palace Server in remote mode.\n\nNo account, no sign-in, no analytics. Back up with `palace export` or by copying `palace.db`. Delete everything by removing `~/.palace`.\n\n|  | claude-mem 15.18.1 | palace-rs 0.20.0 | \n|---|---|---|\n| Language | TypeScript | Rust | \n| What you run | Node + Bun + uv/Python + Chroma + HTTP worker | One `palace` binary | \n| Storage | SQLite + Chroma | One SQLite file | \n| What's stored | Observations and summaries written by an LLM observer (default: Claude Haiku) | Your files, chats and notes, verbatim | \n| LLM / API key needed | Yes (hosted observer, your key, or your Anthropic plan) | No | \n| Published retrieval benchmark | None in README | LongMemEval R@5 0.987, no LLM | \n| Telemetry | On by default (PostHog), opt-out | None | \n| Account / sign-in at install | Yes (email magic link) | No | \n| License | Apache-2.0 | MIT | \n| GitHub stars | 116,434 | 10 | \n\nclaude-mem is popular, and it covers a lot of agents. But popularity isn't architecture, and it isn't a benchmark.\n\nIf you want memory that:\n\nthat's palace-rs, today.\n\nDon't trust the stars. Don't trust me either. Every quote above is from the projects' own pages. Open them and check.\n\n```\n# macOS / Linux\ncurl -fsSL https://raw.githubusercontent.com/AncientiCe/palace-rs/main/scripts/install.sh | sh\n\n# Windows\nirm https://raw.githubusercontent.com/AncientiCe/palace-rs/main/scripts/install.ps1 | iex\n\npalace install\n```\n\n`package.json` (engines, version, license): *Star counts and versions as of 2026-11-12.*", "url": "https://wpnews.pro/news/116000-stars-vs-one-binary-claude-mem-and-palace-rs-fact-by-fact", "canonical_source": "https://dev.to/icegaming/116000-stars-vs-one-binary-claude-mem-and-palace-rs-fact-by-fact-2c6g", "published_at": "2026-11-12 14:46:30+00:00", "updated_at": "2026-11-12 14:52:51.621432+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "large-language-models", "ai-products"], "entities": ["claude-mem", "palace-rs", "GitHub", "LongMemEval", "Anthropic", "Claude Haiku", "OpenRouter", "Chroma"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/116000-stars-vs-one-binary-claude-mem-and-palace-rs-fact-by-fact", "markdown": "https://wpnews.pro/news/116000-stars-vs-one-binary-claude-mem-and-palace-rs-fact-by-fact.md", "text": "https://wpnews.pro/news/116000-stars-vs-one-binary-claude-mem-and-palace-rs-fact-by-fact.txt", "jsonld": "https://wpnews.pro/news/116000-stars-vs-one-binary-claude-mem-and-palace-rs-fact-by-fact.jsonld"}}