Query and retrieve context from past AI session history.

Install

mkdir -p .claude/skills/mem-search && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2202" && unzip -o skill.zip -d .claude/skills/mem-search && rm skill.zip

Installs to .claude/skills/mem-search

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Search claude-mem's persistent cross-session memory database. Use when user asks "did we already solve this?", "how did we do X last time?", or needs work from previous sessions.
178 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Searches cross-session memory by project or type
  • Filters results using metadata like date or ID
  • Retrieves chronological context around specific findings
  • Interleaves sessions and observations for full history

How it works

It queries a vector-indexed database of past interactions and then fetches related session threads using an anchor ID to provide context.

Inputs & outputs

You give it
Search query or topic
You get back
Relevant historical observations or session summaries

When to use mem-search

  • Find how a bug was solved
  • Recall previous technical decisions
  • Resume work from a different session

About this skill

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

Knowledge Agents

Want synthesized answers instead of raw records? Use /knowledge-agent to build a queryable corpus from your observation history. The knowledge agent reads all matching observations and answers questions conversationally.

When not to use it

  • To access information that is currently available in the active session
  • For searching code directly rather than session history

Prerequisites

Claude-mem persistent database

Limitations

  • Limited to data explicitly stored by the memory agent
  • Search relevance is dependent on descriptive titles and tags

How it compares

It enables retrieval of historical context from days or weeks ago, effectively bridging memory gaps between disjoint AI sessions.

Compared to similar skills

mem-search side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
mem-search (this skill)84moNo flagsIntermediate
braindump75moNo flagsBeginner
super-search102moReviewBeginner
baoyu-danger-x-to-markdown22moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry