mem-search
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.
DeepseekModel
Curated skill
Quality Excellent · 90
v1.0.0
Get
https://deepseekmodel.com/api/download.php?id=thedotmack-claude-mem-plugin-skills-mem-search-skill-md&format=skill
Download .skill
Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name mem-search description 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. Memory Search Search past work across all sessions. Simple workflow: search -> filter -> fetch -> (rarely) disclose raw tool I/O. 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?" Layered 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) Step 4: Disclose Raw Tool I/O - Only When Step 3 Was Not Enough Observations are summaries . When the answer needs the literal bytes a tool returned — the exact diff, the exact command output, the exact API response — use the get_tool_uses MCP tool: get_tool_uses(ids=["toolu_01ABC..."], project="my-project") Do not start here. Raw tool bodies are unsummarized and can run to thousands of tokens each; that is the whole reason claude-mem compresses them into observations in the first place. Reach for this layer only after search / timeline / get_observations pointed you at specific tool calls. Parameters: ids (array, required) - Numeric tool_uses ids OR opaque tool_use_id strings limit (number, optional) - Max rows to return project (string, optional) - Project name filter contentSessionId (string, optional) - Restrict to one session Returns: The stored tool_input / tool_response for those calls, plus the tool name, session ids, and the observation each was folded into. Payloads over 64 KB were truncated on write and carry a …[truncated: N bytes] marker. 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") Recover the exact output of a command we ran last week: search(query="migration failed", limit=20, project="my-project") get_observations(ids=[11131]) # read the summary first get_tool_uses(ids=["toolu_01ABC..."]) # only if the summary omitted the detail Why This Workflow? Search index: ~50-100 tokens per result Full observation: ~500-1000 tokens each Raw tool body: up to 64 KB each — the layer you skip 95% of the time 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.
Keywords that activate this skill. Click one to copy it.
This skill does not provide trigger words.
The downloaded .skill package contains the following fields.
| Field | Description |
|---|---|
| format | Format tag (skill/v1) |
| skill_id | Unique skill ID |
| name | Skill name |
| version | Version |
| description | Description |
| category | Categories (array) |
| trigger_words | Trigger words |
| tags | Tags |
| source | Source |
| source_url | Source URL (this page) |
| exported_at | Exported at (set per download) |
| system_prompt | System prompt body |
| model_config | Model config: provider / model / temperature / max_tokens / top_p |
| examples | Examples |
| install_guide | Import guide for Coze / Dify / Claude / custom frameworks |
The same skill can be exported in different platform formats.