Get the FREE Ultimate OpenClaw Setup Guide →

mem-search

Scanned
npx machina-cli add skill thedotmack/claude-mem/mem-search --openclaw
Files (1)
SKILL.md
3.7 KB

Memory Search

Search past work across all sessions. Simple workflow: search -> filter -> fetch.

When to Use

Use when users ask about PREVIOUS sessions (not current conversation):

  • "Did we already fix this?"
  • "How did we solve X last time?"
  • "What happened last week?"

3-Layer Workflow (ALWAYS Follow)

NEVER fetch full details without filtering first. 10x token savings.

Step 1: Search - Get Index with IDs

Use the search MCP tool:

search(query="authentication", limit=20, project="my-project")

Returns: Table with IDs, timestamps, types, titles (~50-100 tokens/result)

| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #11131 | 3:48 PM | 🟣 | Added JWT authentication | ~75 |
| #10942 | 2:15 PM | 🔴 | Fixed auth token expiration | ~50 |

Parameters:

  • query (string) - Search term
  • limit (number) - Max results, default 20, max 100
  • project (string) - Project name filter
  • type (string, optional) - "observations", "sessions", or "prompts"
  • obs_type (string, optional) - Comma-separated: bugfix, feature, decision, discovery, change
  • dateStart (string, optional) - YYYY-MM-DD or epoch ms
  • dateEnd (string, optional) - YYYY-MM-DD or epoch ms
  • offset (number, optional) - Skip N results
  • orderBy (string, optional) - "date_desc" (default), "date_asc", "relevance"

Step 2: Timeline - Get Context Around Interesting Results

Use the timeline MCP tool:

timeline(anchor=11131, depth_before=3, depth_after=3, project="my-project")

Or find anchor automatically from query:

timeline(query="authentication", depth_before=3, depth_after=3, project="my-project")

Returns: depth_before + 1 + depth_after items in chronological order with observations, sessions, and prompts interleaved around the anchor.

Parameters:

  • anchor (number, optional) - Observation ID to center around
  • query (string, optional) - Find anchor automatically if anchor not provided
  • depth_before (number, optional) - Items before anchor, default 5, max 20
  • depth_after (number, optional) - Items after anchor, default 5, max 20
  • project (string) - Project name filter

Step 3: Fetch - Get Full Details ONLY for Filtered IDs

Review titles from Step 1 and context from Step 2. Pick relevant IDs. Discard the rest.

Use the get_observations MCP tool:

get_observations(ids=[11131, 10942])

ALWAYS use get_observations for 2+ observations - single request vs N requests.

Parameters:

  • ids (array of numbers, required) - Observation IDs to fetch
  • orderBy (string, optional) - "date_desc" (default), "date_asc"
  • limit (number, optional) - Max observations to return
  • project (string, optional) - Project name filter

Returns: Complete observation objects with title, subtitle, narrative, facts, concepts, files (~500-1000 tokens each)

Examples

Find recent bug fixes:

search(query="bug", type="observations", obs_type="bugfix", limit=20, project="my-project")

Find what happened last week:

search(type="observations", dateStart="2025-11-11", limit=20, project="my-project")

Understand context around a discovery:

timeline(anchor=11131, depth_before=5, depth_after=5, project="my-project")

Batch fetch details:

get_observations(ids=[11131, 10942, 10855], orderBy="date_desc")

Why This Workflow?

  • Search index: ~50-100 tokens per result
  • Full observation: ~500-1000 tokens each
  • Batch fetch: 1 HTTP request vs N individual requests
  • 10x token savings by filtering before fetching

Source

git clone https://github.com/thedotmack/claude-mem/blob/main/plugin/skills/mem-search/SKILL.mdView on GitHub

Overview

mem-search lets you query claude-mem's persistent cross-session memory to surface past work. It answers questions about previous sessions, such as whether a problem was already solved or how we approached X last time. The process follows a strict 3-layer workflow—search, filter, then fetch—to minimize tokens and surface relevant context quickly.

How This Skill Works

The workflow is three steps. Step 1: Search returns an index of matching items with IDs, times, and titles. Step 2: Timeline gathers context around chosen anchors to show what happened before and after. Step 3: Fetch retrieves full details only for the filtered IDs using the get_observations tool. Always filter before fetching to achieve significant token savings (10x).

When to Use It

  • Did we already fix this in a past session?
  • How did we solve X last time?
  • What happened in the previous week?
  • Need context around a past discovery or decision.
  • Trace changes or decisions across multiple sessions.

Quick Start

  1. Step 1: Use search to locate relevant items by a query and project filters.
  2. Step 2: Run timeline around a chosen anchor to capture surrounding context.
  3. Step 3: Fetch full details for the filtered IDs with get_observations.

Best Practices

  • Never fetch full details without filtering first.
  • Start with search to identify relevant IDs before gathering context.
  • Use timeline to collect context around the anchor before fetching.
  • Batch fetch details for 2 or more IDs to minimize requests.
  • Review titles from Step 1 and context from Step 2 before fetching full observations.

Example Use Cases

  • Find recent bug fixes by searching for bugs in the observations with bugfix as the type within your project.
  • Find what happened last week by filtering observations with a dateStart window for your project.
  • Understand context around a discovery by using timeline around a known anchor in your project.
  • Batch fetch details for several IDs to compare past outcomes using get_observations.
  • Cross-check a past decision by pulling its full observation to review narrative and facts.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers