Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
thedotmack avatar

Mem Search

  • 7k installs
  • 89.6k repo stars
  • Updated August 4, 2026
  • thedotmack/claude-mem

mem-search is a claude-mem skill for token-efficient cross-session memory lookup using search, timeline, and batch observation fetch.

About

The mem-search skill queries claude-mem persistent cross-session memory when users ask whether a problem was solved before or how prior work was done. It enforces a three-layer workflow for roughly tenfold token savings: search for an index of observation ids, timeline for chronological context around interesting hits, then get_observations for full detail on only the filtered ids. Step one uses the search MCP tool with query, limit, project, optional type and obs_type filters, and date ranges returning compact tables with ids, timestamps, types, and titles. Step two calls timeline with anchor or query plus depth_before and depth_after to interleave observations, sessions, and prompts around a discovery. Step three batch-fetches selected observations in one request instead of many individual calls. Invoke for questions like did we already fix this, how did we solve X last time, or what happened last week. Optional knowledge agents synthesize conversational answers from observation history when raw records are not enough.

  • Three-layer workflow: search index, timeline context, then batch get_observations fetch.
  • Never fetch full observation details before filtering titles from search results.
  • search supports project, type, obs_type, dateStart, dateEnd, and orderBy parameters.
  • timeline anchors on observation id or query with configurable depth before and after.
  • Batch get_observations saves tokens versus N individual detail requests.

Mem Search by the numbers

  • 7,016 all-time installs (skills.sh)
  • +295 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #116 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

mem-search capabilities & compatibility

Capabilities
compact search index queries · timeline context around anchors · batch observation detail fetch · project and date filtering · observation type filtering
Use cases
memory · research · debugging
From the docs

What mem-search says it does

NEVER fetch full details without filtering first. 10x token savings.
SKILL.md
Use when users ask about PREVIOUS sessions (not current conversation)
SKILL.md
npx skills add https://github.com/thedotmack/claude-mem --skill mem-search

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs7k
repo stars89.6k
Security audit2 / 3 scanners passed
Last updatedAugust 4, 2026
Repositorythedotmack/claude-mem

How do agents recall prior session work without loading full observation narratives for every search hit?

Search claude-mem cross-session memory with a 3-layer search, timeline, and batch fetch workflow for token-efficient recall.

Who is it for?

Claude Code users asking about previous fixes, decisions, or weekly activity stored in claude-mem.

Skip if: Skip when the question is only about the current conversation with no prior session history.

When should I use this skill?

User asks did we already solve this, how did we do X last time, or what happened last week in prior sessions.

What you get

Filtered observation details fetched only for relevant ids after compact search and timeline review.

  • Filtered memory search index
  • Fetched prior session detail records

By the numbers

  • 3-layer search → filter → fetch workflow
  • Readme cites ~10x token savings when filtering before full fetch

Files

SKILL.mdMarkdownGitHub ↗

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.

Related skills

Forks & variants (1)

Mem Search has 1 known copy in the catalog totaling 1 installs. They canonicalize to this original listing.

How it compares

Pick mem-search for Claude-mem session recall rather than generic note-taking skills or codebase grep searches.

FAQ

Why filter before fetching full observations?

Search index rows cost about 50-100 tokens each while full observations cost 500-1000 tokens, so filtering first saves roughly tenfold tokens.

When should I use timeline versus search alone?

Use timeline after search when you need chronological context around a specific observation or query anchor.

How do I fetch multiple observation details efficiently?

Always use get_observations with an array of ids in one call for two or more observations.

Is Mem Search safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

AI & Agent Buildingagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.