Help us improve
Share bugs, ideas, or general feedback.
From bopen-tools
Searches Claude Code conversation history in Scribe DB (SQLite FTS5) or JSONL files to recall past discussions, decisions, code snippets, and context from prior sessions.
npx claudepluginhub b-open-io/claude-plugins --plugin bopen-toolsHow this skill is triggered — by the user, by Claude, or both
Slash command
/bopen-tools:remindThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Recall and search previous Claude Code conversation sessions to find past discussions, decisions, solutions, and context.
Searches Claude Code conversation history by topic or date filters, returning session IDs and project paths for resumption via 'claude --resume'. For queries like 'find conversation about X' or 'what did we do yesterday'.
Semantically searches past Claude Code sessions to recall commands, solutions, and context from prior conversations.
Share bugs, ideas, or general feedback.
Recall and search previous Claude Code conversation sessions to find past discussions, decisions, solutions, and context.
This skill searches conversation history using two backends:
~/.scribe/scribe.db with 141K+ indexed messages across all AI coding tool sessions. BM25-ranked results, grouped by session.~/.claude/projects/ JSONL conversation files when Scribe isn't available.The search script at scripts/search.py handles both backends automatically.
Run the search script with the user's query:
python3 "SKILL_DIR/scripts/search.py" "<query>" [options]
Options:
| Flag | Purpose |
|---|---|
--project <path> | Filter by project path (substring) |
--recent <days> | Only search last N days |
--limit <n> | Max results (default: 10) |
--full | Force JSONL search (skip Scribe DB) |
--json | Machine-readable output |
--session <id> | Read a specific session's messages |
--recency-weight <f> | Recency weight factor (default: 0.2) |
--half-life <days> | Recency half-life in days (default: 30) |
--no-recency | Disable recency weighting |
Results are ranked by a blend of BM25 relevance and recency. Recent conversations get a boost that decays exponentially (30-day half-life). Use --no-recency to disable.
Crafting good queries:
"stripe webhook", "bap identity", "deploy railway"--project or --recent filters--full for deeper searchSummarize what you found in a clear format:
If the user wants more detail from a specific session:
python3 "SKILL_DIR/scripts/search.py" --session <session-id> --json
This returns the full conversation transcript. Summarize the relevant portions — don't dump the whole thing.
If neither search backend returns results, you can read the JSONL files directly:
# List all project directories
ls ~/.claude/projects/
# List sessions in a specific project
ls ~/.claude/projects/-Users-satchmo-code-myapp/*.jsonl
# The JSONL format has one JSON object per line with these types:
# user — message.content is the user's input
# assistant — message.content is Claude's response (array of text/tool_use blocks)
# progress — tool execution progress
# system — system messages
Session index files (where available) provide quick metadata:
# Check for pre-built session index
cat ~/.claude/projects/<project-dir>/sessions-index.json
# Contains: sessionId, firstPrompt, summary, created, modified, gitBranch, messageCount
cd ~/code/scribe && bun run packages/cli/src/index.ts scan chat --provider claude--project to narrow.69ad65a8-7499-4fd1-9bae-a3f0fcbb11ed. When presenting results, include session IDs so the user can ask for deep dives.