>
--- name: recall description: > Search past Claude Code, Codex, and pi sessions. Triggers: /recall, "search old conversations", "find a past session", "recall a previous conversation", "search session history", "what did we discuss", "remember when we" metadata: author: arjunkmrm version: "0.4.1" license: MIT --- # /recall — Search Past Claude, Codex & pi Sessions Search all past Claude Code, Codex, and pi sessions using full-text search with BM25 ranking. ## Usage ```bash python3 ~/.claude/skills/recall/scripts/recall.py [QUERY] [--project PATH] [--days N] [--source claude|codex|pi] [--limit N] [--reindex] ``` ## Examples ```bash # List every session in the last day (no text search) python3 ~/.claude/skills/recall/scripts/recall.py --days 1 # List every pi session in the last week python3 ~/.claude/skills/recall/scripts/recall.py --days 7 --source pi # Simple keyword search python3 ~/.claude/skills/recall/scripts/recall.py "bufferStore" # Phrase search (exact match) python3 ~/.claude/skills/recall/scripts/recall.py '"ACP protocol"' # Boolean query python3 ~/.claude/skills/recall/scripts/recall.py "rust AND async" # Prefix search python3 ~/.claude/skills/recall/scripts/recall.py "buffer*" # Filter by project and recency python3 ~/.claude/skills/recall/scripts/recall.py "state machine" --project ~/my-project --days 7 # Search only Claude Code sessions python3 ~/.claude/skills/recall/scripts/recall.py "buffer" --source claude # Search only Codex sessions python3 ~/.claude/skills/recall/scripts/recall.py "buffer" --source codex # Search only pi sessions python3 ~/.claude/skills/recall/scripts/recall.py "buffer" --source pi # Force reindex python3 ~/.claude/skills/recall/scripts/recall.py --reindex "test" ``` ## Query Syntax (FTS5) - **Words**: `bufferStore` — matches stemmed variants (e.g., "discussing" matches "discuss") - **Phrases**: `"ACP protocol"` — exact phrase match - **Boolean**: `rust AND async`, `tauri OR electron`, `NOT deprecated` - **Prefix**: `buffer*` — matches bufferStore, bufferMap, etc. - **Combined**: `"state machine" AND test` - **CJK**: `issue化` — automatically uses trigram matching for Japanese/Chinese/Korean text ## After Finding a Match To resume a session, `cd` into the project directory and use the appropriate command: ```bash # Claude Code sessions [claude] cd /path/to/project claude --resume SESSION_ID # Codex sessions [codex] cd /path/to/project codex resume SESSION_ID # Pi sessions [pi] cd /path/to/project pi --session SESSION_ID # full or partial id; pi resolves prefix matches ``` Each result includes a `File:` path. Use it to read the raw transcript (auto-detects format): ```bash python3 ~/.claude/skills/recall/scripts/read_session.py <File-path-from-result> ``` If results are missing `File:` paths, run `--reindex` to backfill. ## Notes - Index is stored at `~/.recall.db` (SQLite FTS5, auto-migrated from `~/.claude/recall.db`) - Indexes three sources: `~/.claude/projects/` (Claude Code), `~/.codex/sessions/` (Codex), and `~/.pi/agent/sessions/` (pi) - First run indexes all sessions (a few seconds); subsequent runs are incremental - Only user and assistant messages are indexed (tool calls, thinking blocks, state snapshots skipped) - Results show `[claude]`, `[codex]`, or `[pi]` tags to indicate the source - Dual-table FTS: English queries use Porter stemming, CJK queries use trigram matching - Omit the query argument for **list mode** — every session in the window, sorted by recency, no FTS - Provide a query for full-text search; both modes accept `--project`, `--days`, `--source`, `--limit` - **Upgrading from 0.3.x**: run `--reindex` once to pull in pi sessions - **Upgrading from 0.2.x**: run `--reindex` once to build the CJK index
Creator's repository · arjunkmrm/recall