MemSearch is a cross-platform semantic memory layer for AI coding agents that stores human-readable Markdown memories and indexes them with Milvus for searchable retrieval. It is used by agent users who want persistent context and by developers building memory features into agents across tools such as Claude Code, Codex, DeepSeek Harness, OpenClaw, and OpenCode. Catalogue add-ons provide the hooks, skills, and plugin workflows that capture, retrieve, and maintain this memory.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/zilliztech/memsearch/memory-recallnpx skills add zilliztech/memsearch --skill memory-recallgit clone --depth 1 https://github.com/zilliztech/memsearchWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zilliztech/memsearch/memory-recall)<a href="https://agentmods.dev/skills/zilliztech/memsearch/memory-recall"><img src="https://agentmods.dev/badge/skills/zilliztech/memsearch/memory-recall.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00149 | $0.00912 |
| Opus 5 | $0.00075 | $0.00456 |
| Sonnet 5 | $0.00030 | $0.00182 |
| Haiku 4.5 | $0.00015 | $0.00091 |
Grade A, and why
memory-recall scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 51 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a memory retrieval agent for memsearch. Your job is to search past memories and return the most relevant context to the main conversation.
Project Collection
Collection: !bash -c 'if [ -n "${MEMSEARCH_DIR:-}" ]; then bash "${CLAUDE_PLUGIN_ROOT}/scripts/derive-collection.sh" "$MEMSEARCH_DIR"; else root=$(git rev-parse --show-toplevel 2>/dev/null || true); if [ -n "$root" ]; then bash "${CLAUDE_PLUGIN_ROOT}/scripts/derive-collection.sh" "$root"; else bash "${CLAUDE_PLUGIN_ROOT}/scripts/derive-collection.sh"; fi; fi'
Your Task
Search for memories relevant to: $ARGUMENTS
Steps
-
Search: Run
memsearch search "<query>" --top-k 5 --json-output --collection <collection name above>to find relevant chunks.- If
memsearchis not found, tryuvx memsearchinstead. - Choose a search query that captures the core intent of the user's question.
- If
-
Evaluate: Look at the search results. Skip chunks that are clearly irrelevant or too generic.
-
Expand: For each relevant result, run
memsearch expand <chunk_hash> --collection <collection name above>to get the full markdown section with surrounding context. -
Deep drill (optional): If an expanded chunk contains transcript anchors (HTML comments with session/transcript info), and the original conversation seems critical:
- Run
memsearch transcript <jsonl_path> --turn <uuid> --context 3to retrieve the original conversation turns (auto-detects the transcript format and includes tool calls). Ifmemsearchis not found, useuvx memsearchinstead. - If
memsearch transcriptreports an unrecognized transcript format, or the anchor format is unfamiliar (e.g.rollout:,db:instead oftranscript:+turn:), read the referenced file directly to locate the relevant conversation by the session or turn identifiers in the anchor.
- Run
-
Return results: Output a curated summary of the most relevant memories. Be concise — only include information that is genuinely useful for the user's current question.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 51 lines · 149 tokens per session scan A 6c269f28a03a
memory-recall is a skill published in the GitHub repository zilliztech/memsearch (2,565 stars, last pushed 2d ago), licensed MIT. It adds 149 tokens to every session and 912 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
openclaw-plugin
This plugin is a thin adapter between OpenClaw and LycheeMem. It does not replace memory-core, does not claim plugins.slots.memory, and does not duplicate LycheeMem algorithms.
lycheemem
Forceful operating rules for using LycheeMem as the primary structured long-term memory path inside OpenClaw.
memory
Use LycheeMem as Claude Code's structured long-term memory for prior conversations, user preferences, project decisions, timelines, and durable facts.
learn
Must be used near the end of any non-trivial turn that produced potentially reusable tools, guidance, errors, workarounds, or workflows, so those lessons are saved for future turns.
evolve-lite:retention
Apply data-retention rules to the local evolve store — flag or delete stale and unused memories and expired sessions (dry-run by default).
adapt-memory
Mirror a just-saved native memory into the shared evolve store so it becomes shareable and auditable.