alamator/claude-memory/mem-search
Claude Code and agent skill by alamator/claude-memory
- community
Checking that the SKILL.md file is still in the repository.
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.
Install
npx vskill@latest install alamator/claude-memory/mem-searchSKILL.md
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:
Returns: Table with IDs, timestamps, types, titles (~50-100 tokens/result)
Parameters:
query(string) - Search termlimit(number) - Max results, default 20, max 100project(string) - Project name filtertype(string, optional) - "observations", "sessions", or "prompts"obs_type(string, optional) - Comma-separated: bugfix, feature, decision, discovery, changedateStart(string, optional) - YYYY-MM-DD or epoch msdateEnd(string, optional) - YYYY-MM-DD or epoch msoffset(number, optional) - Skip N resultsorderBy(string, optional) - "date_desc" (default), "date_asc", "relevance"
Step 2: Timeline - Get Context Around Interesting Results
Use the timeline MCP tool:
Or find anchor automatically from query:
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 aroundquery(string, optional) - Find anchor automatically if anchor not provideddepth_before(number, optional) - Items before anchor, default 5, max 20depth_after(number, optional) - Items after anchor, default 5, max 20project(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:
ALWAYS use `get_observations` for 2+ observations - single request vs N requests.
Parameters:
ids(array of numbers, required) - Observation IDs to fetchorderBy(string, optional) - "date_desc" (default), "date_asc"limit(number, optional) - Max observations to returnproject(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:
Find what happened last week:
Understand context around a discovery:
Batch fetch details:
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
Smart-Explore Language Support
Smart-explore tools (smart_search, smart_outline, smart_unfold) use tree-sitter AST parsing. The following languages are supported out of the box.
24 Bundled Languages
JS, TS, Python, Go, Rust, Ruby, Java, C, C++, Kotlin, Swift, PHP, Elixir, Lua, Scala, Bash, Haskell, Zig, CSS, SCSS, TOML, YAML, SQL, Markdown
Markdown Special Support
Markdown files get structure-aware parsing beyond generic tree-sitter:
- Heading hierarchy --
#/##/###headings are extracted as nested symbols (sections contain subsections) - Code block detection -- fenced code blocks are surfaced as
codesymbols with language annotation - Section-aware unfold --
smart_unfoldon a heading returns the full section content (heading through all subsections until the next heading of equal or higher level)
User-Installable Grammars via .claude-mem.json
Add custom tree-sitter grammars for languages not in the bundled set. Place .claude-mem.json in the project root:
Fields:
package(string, required) -- npm package name for the tree-sitter grammarextensions(array of strings, required) -- file extensions to associate with this languagequery(string, optional) -- path to a custom.scmquery file for symbol extraction. If omitted, a generic query is used.
Rules:
- User grammars do NOT override bundled languages. If a language is already bundled, the entry is ignored.
- The npm package must be installed in the project (
npm install tree-sitter-gleam). - Config is cached per project root. Changes to
.claude-mem.jsontake effect on next worker restart.
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.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugin/skills/mem-search/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/alamator/claude-memory/mem-search)