mem-search
- Repo stars 80,444
- Author repo claude-mem
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 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:
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 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:
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 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:
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.
- Fluxly category
- Data
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 88 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @thedotmack · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Plug-and-play
- External API key
- No requirement detected
- Detected OS requirements
- Unspecified
- Runtime requirements
- Unspecified
- Detected file/system behavior
-
- Read-only
- Detected network behavior
- External requests
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
# Step 2: Timeline - Get Context Around Interesting Results
timeline(anchor=11131, depth_before=3, depth_after=3, project="my-project") NEVER fetch full details without filtering first. 10x token savings.
Use the search MCP tool: Returns: Table with IDs, timestamps, types, titles (~50-100 tokens/result) Parameters:
Use the timeline MCP tool: Or find anchor automatically from query: Returns: depthbefore + 1 + depthafter items in chronological order with observations, sessions, and prompts interleaved around the anchor.
Review titles from Step 1 and context from Step 2. Pick relevant IDs. Discard the rest. Use the getobservations MCP tool: ALWAYS use getobservations for 2+ observations - single request vs N requests.
Search index: ~50-100 tokens per result Full observation: ~500-1000 tokens each Batch fetch: 1 HTTP request vs N individual requests
# 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")
```
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> When to Use → 3-Layer Workflow (ALWAYS Follow) → Step 1: Search - Get Index with IDs → Step 2: Timeline - Get Context Around Interesting Results → Step 3: Fetch - Get Full Details ONLY for Filtered IDs → Examples
terms -> NEVER fetch full details without filtering first. 10x token savings. · Returns · Parameters · Find recent bug fixes · Find what happened last week · Understand context around a discovery · Batch fetch details · Search index
files/cmd -> search · query · limit · project · type · obstype · dateStart · dateEnd
body sha256 -> a2b1708afa95
Decide Fit First
Design Intent
How To Use It
Boundaries And Review