Skip to content
Agent Memory
Skill

/recall

Search past Claude Code, Codex, pi and Grok sessions. Triggers: /recall, "search old conversations", "find a past session", "recall a previous conversation", "search session history", "what did we discuss", "remember when we"

BOOST
From plugin
recall
1461 skill
Install
$ npx -y skills add arjunkmrm/recall --skill recall --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/recall

Context preview

The summary Claude sees to decide when to auto-load this skill.

Search past Claude Code, Codex, pi and Grok sessions. Triggers: /recall, "search old conversations", "find a past session", "recall a previous conversation", "search session history", "what did we discuss", "remember when we"

SKILL.md

recall.SKILL.md
name: recall
description: >
  Search past Claude Code, Codex, pi and Grok 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 & Grok Sessions

Search all past Claude Code, Codex, pi and Grok sessions using full-text search with BM25 ranking.

Usage

python3 ~/.claude/skills/recall/scripts/recall.py [QUERY] [--project PATH] [--days N] [--source claude|codex|pi|grok] [--limit N] [--reindex]

Examples

# 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

# Search only Grok sessions
python3 ~/.claude/skills/recall/scripts/recall.py "buffer" --source grok

# 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:

# Claude Code sessions [claude]
cd /path/to/project
claude --resume SESSION_ID

# Codex sessions [codex]
cd /path/to/project
codex resume SESSION_ID

# Grok sessions [grok]
```bash
grok --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 four sources: `~/.claude/projects/` (Claude Code), `~/.codex/sessions/` (Codex), `~/.pi/agent/sessions/` (pi), and `~/.grok/sessions/**/chat_history.jsonl` (Grok)
  • 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]`, `[pi]`, or `[grok]` 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.4.x**: run `--reindex` once to pull in Grok sessions
  • **Upgrading from 0.2.x**: run `--reindex` once to build the CJK index
Read more
Ships withrecall

Ever lost a conversation session with Claude Code, Codex, pi or Grok and wish you could resume it? This skill lets your agents search across all your past conversations with full-text search.

Get the whole plugin
Stats
146
Stars
12
Forks
Maintained
Maintenance
Python
Language
MIT
License
2mo ago
Last commit
7mo ago
Created
13h ago
Added

Repo: arjunkmrm/recall