Sift Memory
Use sift as a local memory search layer for prior AI coding-assistant sessions. It reads only local Claude Code, Codex, Cursor, and OpenCode logs/databases and writes only its own index under ~/.sift/.
Command Resolution
Prefer the installed CLI:
sift --help
When working inside the sift repository and the global command is unavailable, use:
node ./bin/sift.js --help
Do not use npx or any network-based install path. If neither command works, tell the user to install sift locally.
Actions
sift_index
Refresh the local index before memory-heavy work, after new logs were created, or when search says no index exists:
sift index --json
Use the repo-local fallback when needed:
node ./bin/sift.js index --json
Use a full rebuild only when the user asks, parser/index behavior changed, or results look stale after an incremental run:
sift index --full --json
sift_search
Search prior local sessions with targeted queries:
sift "<query>" --limit 10 --json
Filter by source when useful:
sift "<query>" --tool codex --limit 10 --json
sift "<query>" --tool claude --limit 10 --json
sift "<query>" --tool cursor --limit 10 --json
sift "<query>" --tool opencode --limit 10 --json
Good queries are concrete: project names, command names, file names, bug symptoms, package names, decisions, or user phrasing. Prefer a few focused searches over one broad search.
sift_show
Follow a search result ref when the surrounding conversation is needed:
sift show "<ref>" --json
Use --context N only when the default two messages before and after are insufficient.
sift_list
List recent indexed sessions when you need orientation before choosing search terms:
sift list --limit 10 --json
Filter by source when useful:
sift list --tool codex --limit 10 --json
Workflow
- Use this skill when local session memory could materially improve the answer.
- Run
sift indexunless the task is tiny or the index is known to be fresh. - Run
sift_searchwith 1-3 focused queries and structured JSON output. - Follow only the most relevant result refs with
sift_showwhen more context is needed. - Use the results as private local context. Summarize only the relevant facts needed for the task.
- Do not paste large raw logs. Do not expose secrets, credentials, tokens, private personal data, or unrelated session contents.
Privacy
Keep the workflow local and read-only for source logs:
- Do not send
siftresults to remote services. - Do not add telemetry, sync, embeddings, or network calls.
- Do not write to Claude Code, Codex, Cursor, or OpenCode source logs/databases.
- Treat everything under
~/.sift/as local private context.