MemSearch Memory Layer
Persistent, cross-platform semantic memory for AI coding workflows.
- Source repo
- zilliztech/memsearch
- Stars
- ★ 2.8k
- Last updated
- 2d ago
- License
- MIT
- Primary language
- Python
- FA score
- 69/100 · Some gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code · OpenAI API · Claude API
- Cost
- Free software; you pay for model usage
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- A developer alternating between Claude Code and Codex CLI who wants to retrieve an earlier Redis, deployment, or architecture discussion.
- Not a fit if
- Users unwilling to manage Markdown files, indexing, and embedding runtimes themselves
- Teams wanting a turnkey multi-user hosted service without configuring Zilliz Cloud or self-hosted Milvus
- Source review
- 69/100 · Some gaps
What does this agent do, and when should you use it?
MemSearch is a persistent semantic-memory layer for AI coding agents, with plugins for Claude Code, Codex CLI, OpenClaw, and OpenCode plus a CLI and Python API. It stores captured summaries and other memories as editable, versionable Markdown, then maintains Milvus as a rebuildable shadow index. Retrieval combines dense vectors, BM25 sparse search, and RRF reranking, and can move from a matching chunk to its Markdown section or a raw session transcript. It defaults to local single-file Milvus Lite, while Zilliz Cloud and self-hosted Milvus are configurable alternatives. It fits teams or individual developers who want durable context across coding-agent sessions and tools, provided they are comfortable managing local files, indexing, and embedding runtime choices.
Platform plugins capture conversation turns after a session turn completes, summarize them, and append the result to date-based Markdown files under .memsearch/memory/; the documented Claude Code flow also adds a <!-- session:UUID --> anchor. memsearch index re-chunks Markdown, uses SHA-256 to skip unchanged content, embeds changed chunks, and upserts them into Milvus. memsearch search performs BM25 plus dense-vector hybrid retrieval with RRF reranking, while memsearch expand <chunk_hash> returns the full surrounding Markdown section. For deeper recall, the documented third layer uses parse-transcript <session.jsonl> to access raw dialogue. Developers can also use MemSearch(paths=[...]), await mem.index(), and await mem.search() in a Python agent.
- A developer alternating between Claude Code and Codex CLI who wants to retrieve an earlier Redis, deployment, or architecture discussion.
- An engineer maintaining a long-lived codebase who needs to recover why a module, configuration, migration, or API choice was made before changing it.
- A Python agent developer who wants to index Markdown knowledge and add semantic recall through the
MemSearchclass. - A team keeping project journals in local Markdown and wanting those files to remain editable and version-controllable while indexes stay current.
- A multi-user team that needs to point the same workflow at Zilliz Cloud or a dedicated self-hosted Milvus instance.
How do you install or deploy this agent?
Python >=3.10 is required. To install the CLI with the default local ONNX embedding option:
uv tool install "memsearch[onnx]"Then run:
memsearch config init
memsearch index ./memory/The default ONNX bge-m3 embedder runs locally on CPU and needs no API key, but downloads an approximately 558 MB model from HuggingFace Hub on first launch. To use OpenAI embeddings, run memsearch config set embedding.provider openai and supply OPENAI_API_KEY. For the Codex CLI plugin, the documented commands are:
git clone --depth 1 https://github.com/zilliztech/memsearch.git
bash memsearch/plugins/codex/scripts/install.sh
codex --yoloHow do you use this agent?
Place searchable Markdown in a directory and run memsearch index ./memory/. Query it with memsearch search "Redis caching", or use memsearch search "auth flow" --top-k 10 --json-output for script-friendly results; use memsearch expand <chunk_hash> to inspect the complete section around a result. Run memsearch watch ./memory/ for live re-indexing. In Python, create mem = MemSearch(paths=["./memory"]), call await mem.index(), then call await mem.search("Redis config", top_k=3). After installing the Codex CLI plugin, use $memory-recall what did we discuss about deployment? to recall saved context.
What are this agent's strengths and limitations?
- Markdown remains the source of truth, so memories are human-editable and version-controllable while the Milvus index is rebuildable.
- One backend is documented for Claude Code, Codex CLI, OpenClaw, and OpenCode, with both CLI and Python
MemSearchinterfaces for custom integrations. - Hybrid BM25, dense-vector, and RRF retrieval is paired with progressive search → expand → transcript recall.
- SHA-256 content hashing and the file watcher avoid re-embedding unchanged content and keep changed files synchronized.
- The default ONNX bge-m3 path requires an initial network download of an approximately 558 MB model.
- Milvus Lite is a single-file default; dedicated multi-user deployments require configuration of Zilliz Cloud or a Docker-based self-hosted Milvus Server.
- Automatic capture depends on platform-specific plugins and hooks; the Codex CLI instructions require
codex --yolofor ONNX model network access. - Advanced
PROJECT.mdandUSER.mdmaintenance and memory-to-skill distillation are off by default and require provider, model, and interval configuration when enabled.
How does this agent compare with similar options?
MemSearch explicitly treats Markdown as editable source data and Milvus as a rebuildable shadow index, rather than making the vector database the primary memory store. Its documented embedding choices include local ONNX, OpenAI, and Ollama, and its Milvus deployment options include Milvus Lite, Zilliz Cloud, and self-hosted Milvus.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| MemSearch Memory Layer This agent | 69 · Some gaps | Agent plugin / skillFree + model costs | ★ 2.8k | 2d ago | Python | Codex · Claude Code · OpenAI API · Claude API |
| funes Agent Memory | 81 · Good | CLIFree | ★ 589 | 2d ago | Rust | Codex · Claude Code |
| deja-vu | 76 · Good | CLIFree | ★ 1.4k | today | Go | Codex · Claude Code |
| Compartment | 73 · Some gaps | CLIFree | ★ 569 | today | Python | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
The documentation identifies Markdown as the readable, editable source of truth and rebuildable index source, and explicitly says remote reranking sends queries and retrieved chunk text to TypeSafe. Project-local configuration is restricted from enabling that remote provider. The skills instruct the agent to ask before enabling paid or external providers, changing output paths, re-indexing, deleting state, or broadening indexed content; skill candidates require deliberate human installation. Deductions: automatic capture records conversation content, but sensitive-content handling and retention policy are not clearly specified. Dependency declarations show minimum versions, but the packet provides no dependency audit or vulnerability response evidence. Confirmation requirements are described mainly in the configuration skill, not across every execution path. Markdown supports index recovery, but the evidence for confirmation around index resets is incomplete. Publisher identity is unverified; the repository names Zilliz and a support email, which does not establish identity or a maintenance channel.
The docs, configuration, and code describe a coherent Markdown-to-Milvus indexing and progressive retrieval flow, with compatibility checks, recorded error state, and several recovery instructions. Deductions: defaults differ by interface (the Python API and CLI default to OpenAI while plugins default to ONNX), and component versions are published separately, requiring users to understand the distinctions. Availability depends on Milvus, embedding services, or local model downloads; the packet does not establish that these dependencies remain available. Error handling and troubleshooting cover several common cases but are not a comprehensive error reference.
The product addresses cross-platform Agent users and developers building custom Agents, and documents multiple scenarios, platforms, providers, and storage backends while distinguishing episodic, semantic, and procedural memory. Deductions: some skill triggering depends on the host model's judgment despite explicit use and skip guidance; the supplied evidence does not fully define capability and data boundaries for every platform; Windows Milvus Lite is described as best-effort, and other environment differences may affect fit.
The repository provides a README, configuration guide, getting-started guide, FAQ, troubleshooting, platform skills, a license, and version information for multiple components. Installation notes and examples cover the CLI, Python API, plugins, and optional providers; the FAQ documents Windows Lite, database-format migration, and index rebuilding limitations. Deductions: the sampled documentation is extensive and repeats entry points; versions are split across components, and the Codex plugin has no version management. Release guidance exists, but responsibility and maintenance commitments are not clearly assigned. The MIT license text is complete.
The product combines cross-session, cross-Agent Markdown memory with search, context expansion, and original-transcript lookup, and offers a shared CLI/API plus optional skill distillation. This provides a clear potential benefit. Deductions: automatic summarization, indexing, model downloads, and optional remote services add compute, latency, or cost; the first local model download is about 558 MB and cold indexing may take substantial time. Agents still need to judge result relevance, and this static review does not verify search quality.
Many claims can be mapped to configuration docs, CLI implementation, plugin code, or dependency declarations; the docs also distinguish defaults, optional features, and several known limitations. Deductions: many architecture and quality claims in the README and docs are project-authored and the packet contains no independent evaluation evidence. The code sample covers only parts of the CLI and plugins, so not every product claim can be cross-checked. Examples and expected outcomes are sometimes presented together, and this packet cannot verify runtime results.
- Automatic capture writes conversation summaries to Markdown memory. Check the storage location and capture scope before enabling it, especially for confidential content.
- Defaults vary by interface and plugin. Check the active embedding, Milvus, and summarization settings; remote providers may receive queries and retrieved text.
- Keep the Markdown source files before rebuilding or resetting an index. Older Milvus Lite databases may not support in-place migration.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
This release includes five merged fixes: - DSH supports Windows command launchers, UTF-8 summary input and reliable child-process handoffs (#819). - Codex capture uses unique temporary files on macOS (#820). - DSH memory Web routes honor the host authentication and request-origin checks (#822). - memsearch expand --no-section returns only the chunk's source range (#816). - DSH provides a recall hint and lets the agent search when needed; recall skills use the calling workspace's collection (#823). …View on GitHub ↗ -
Release notes excerpt
MemSearch 0.4.22 includes memory reliability fixes across the CLI and agent integrations. - Memory expansion begins at the retrieved chunk’s own section, Unix socket Milvus addresses use server connection handling, and compacted memory headings include a timestamp. - Claude Code hooks select a working Python 3 interpreter, locate the bundled summary prompt reliably, reject native summarizer error responses, and deliver recall hints to the model. - New DSH configurations use local ONNX embeddings. Existing embedding configurations remain unchanged. …View on GitHub ↗ -
Release notes excerpt
What's Changed - release: prepare v0.4.21 (#765) - Use the stable Jev alias and relocate evaluation docs (#761) - Add optional Jev reranking and bilingual evaluation (#758) - fix: prevent read paths from creating missing collections (#760) - fix: search growing rows on Milvus Server (#757) - fix(codex): filter composite host instruction envelopes (#754) - fix(codex): parse response-item rollout messages safely (#751) - fix(openclaw): update prompt hook compatibility (#744)View on GitHub ↗
FAQ
Is Zilliz Cloud required?
Does the default setup require an API key or paid embedding service?
Where is memory stored, and can I edit it?
.memsearch/memory/. Milvus is a derived index, and edited files can be re-indexed with memsearch index or kept current with memsearch watch.Which agent clients have direct plugin support?
Thanks — we use this to improve the page.