mcpField
M
memory-recall

memory-recall

github.com/zilliztechAgent workflows2.8k53 installsUpdated 3d ago
Repository

About memory-recall

memory-recall is a retrieval skill for memsearch that searches stored memories and returns relevant context for the current conversation. It supports expanding matching results and, when needed, tracing them back to source files or transcripts.

Key features

  1. 01Search memories by query
  2. 02Expand matching sections
  3. 03Read source files as fallback
  4. 04Retrieve linked transcripts

Use cases

  1. 01Recovering context from past work
  2. 02Finding relevant notes for a current question
  3. 03Inspecting the source of a memory result

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zilliztech/memsearch --skill memory-recall

After installing, type/memory-recallin Claude Code to confirm it loaded.

Details

From the project README

You are performing memory retrieval for memsearch. Search past memories and return the most relevant context to the current conversation.

Project Collection

Determine the collection name by running:

bash -c 'if [ -n "${MEMSEARCH_DIR:-}" ]; then bash __INSTALL_DIR__/scripts/derive-collection.sh "$MEMSEARCH_DIR"; else root=$(git rev-parse --show-toplevel 2>/dev/null || true); if [ -n "$root" ]; then bash __INSTALL_DIR__/scripts/derive-collection.sh "$root"; else bash __INSTALL_DIR__/scripts/derive-collection.sh; fi; fi'

Steps

  1. Search: Run memsearch search "<query>" --top-k 5 --json-output --default-collection <collection name from above> to find relevant chunks.

    • If memsearch is not found, try uvx memsearch instead.
    • Choose a search query that captures the core intent of the user's question.
  2. Evaluate: Look at the search results. Skip chunks that are clearly irrelevant or too generic.

  3. Expand: For each relevant result, get the full context using one of these methods:

    • Primary: Run memsearch expand <chunk_hash> --default-collection <collection name from above> to get the full markdown section.
    • Fallback (if expand fails with a lock/permission error due to sandbox): Read the source file directly. The search results include source (file path) and start_line/end_line — use cat <source_file> or read the relevant line range to get the full context. This avoids the Milvus lock file issue.
  4. Deep drill (optional): If an expanded chunk contains transcript anchors (HTML comments with session/rollout info), and the original conversation seems critical:

    • Run memsearch transcript <rollout_path> to retrieve the original conversation turns (auto-detects the format and includes tool calls). If memsearch is not found, use uvx memsearch instead.
    • If memsearch transcript reports an unrecognized transcript format, or the anchor format is unfamiliar (e.g. transcript: + turn:, db: instead of rollout:), read the referenced file directly to explore its structure and locate the relevant conversation by the session or turn identifiers in the anchor.
  5. 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.

When unsure what to search

If the user's question is vague or you can't form a concrete search query, explore the raw markdown first — it is the source of truth for memory:

  • MDIR="${MEMSEARCH_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)/.memsearch}"; ls -t "$MDIR/memory/" | head -10 — recent daily logs
  • MDIR="${MEMSEARCH_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)/.memsearch}"; grep -h "^## " "$MDIR/memory/"*.md | sort -u | tail -40 — session headings across all days
  • MDIR="${MEMSEARCH_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)/.memsearch}"; cat "$MDIR/memory/<YYYY-MM-DD>.md" — read a specific day

Once a concrete topic jumps out, go back to memsearch search with a specific query.

Output Format

Organize by relevance. For each memory include:

  • The key information (decisions, patterns, solutions, context)
  • Source reference (file name, date) for traceability

If nothing relevant is found, simply say "No relevant memories found."

Comments

Markdown supported