Dev & Engineering agent-memorysemantic-searchmilvusmarkdown-storagehybrid-searchcodex-clipython-sdk

MemSearch Memory Layer

Persistent, cross-platform semantic memory for AI coding workflows.

FollowAgents review · FARS-2.0
Not yet reviewed
See the full review method →

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.

  1. A developer alternating between Claude Code and Codex CLI who wants to retrieve an earlier Redis, deployment, or architecture discussion.
  2. An engineer maintaining a long-lived codebase who needs to recover why a module, configuration, migration, or API choice was made before changing it.
  3. A Python agent developer who wants to index Markdown knowledge and add semantic recall through the `MemSearch` class.
  4. A team keeping project journals in local Markdown and wanting those files to remain editable and version-controllable while indexes stay current.
  5. A multi-user team that needs to point the same workflow at Zilliz Cloud or a dedicated self-hosted Milvus instance.

What are this agent's strengths and limitations?

Pros
  • 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 `MemSearch` interfaces 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.
Limitations
  • 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 --yolo` for ONNX model network access.
  • Advanced `PROJECT.md` and `USER.md` maintenance and memory-to-skill distillation are off by default and require provider, model, and interval configuration when enabled.

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 --yolo

How 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.

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.

FAQ

Is Zilliz Cloud required?
No. The default is zero-configuration, single-file Milvus Lite. You can instead configure Zilliz Cloud or a Docker-based self-hosted Milvus Server.
Does the default setup require an API key or paid embedding service?
No. The default ONNX bge-m3 provider runs locally on CPU without an API key, although it downloads an approximately 558 MB model on first use. Other providers, such as OpenAI, require their corresponding credentials.
Where is memory stored, and can I edit it?
Memory is stored as Markdown; plugin examples use `.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?
The documented plugin platforms are Claude Code, Codex CLI, OpenClaw, and OpenCode. They share the MemSearch backend, but installation and capture mechanisms differ by platform.

Related agents