Conversation Search
Find past conversations in your Claude Code history and get the commands to resume them.
MANDATORY FIRST STEP - CREATE TODO CHECKLIST
Before doing ANYTHING else, you MUST use the TodoWrite tool to create this exact checklist:
- Ensure cc-conversation-search tool is installed and upgraded
- Classify query type (temporal/topic/hybrid)
- Execute Level 1: focused search with cc-conversation-search
- Execute Level 2: broader search if Level 1 fails
- Execute Level 3: manual exploration if Level 1 and 2 fail
- Present results to user
CRITICAL CONSTRAINTS:
- DO NOT use grep, find, cat, or any manual file operations on .jsonl files
- DO NOT skip the todo creation step
- DO NOT jump to Level 3 without attempting Levels 1 and 2
- ONLY use cc-conversation-search commands for all search operations
Mark each todo as in_progress when starting it, completed when done.
Prerequisites & Auto-Installation
The skill requires the cc-conversation-search CLI tool (v0.4.0+ minimum).
First todo: Ensure tool is installed and upgraded
# Check if installed and upgrade
if command -v cc-conversation-search &> /dev/null; then
uv tool upgrade cc-conversation-search 2>/dev/null || pip install --upgrade cc-conversation-search
echo "Upgraded to: $(cc-conversation-search --version)"
else
# Install if needed
if command -v uv &> /dev/null; then
uv tool install cc-conversation-search
else
pip install --user cc-conversation-search
export PATH="$HOME/.local/bin:$PATH"
fi
# Initialize database
cc-conversation-search init --days 7
fi
If installation fails, guide the user:
The conversation-search plugin requires the cc-conversation-search CLI tool.
Install it manually:
uv tool install cc-conversation-search (recommended)
OR
pip install --user cc-conversation-search
Then initialize:
cc-conversation-search init
Do not proceed with search until installation is confirmed.
Query Type Classification
Second todo: Classify the user's query
Determine which type before executing search:
Type 1: Temporal Queries
User asks about time periods WITHOUT specific topics:
- "What did we work on yesterday?"
- "Summarize this week"
- "Show today's conversations"
Action: Use list command with date filters
Type 2: Topic Queries
User asks about CONTENT/TOPICS:
- "Find that Redis conversation"
- "Where did we discuss authentication?"
- "Show me where we worked on the API"
Action: Use search "topic" command
Type 3: Hybrid Queries
User asks about TOPIC + TIME:
- "Show me yesterday's authentication work"
- "Find Redis discussions from last week"
- "How many times did you say X in the past week?"
Action: Use search "topic" with date filters
Three-Level Search Workflow
Execute in order. Do not skip levels.
Level 1: Focused Search (ALWAYS START HERE)
Based on query classification:
For Topic or Hybrid queries:
cc-conversation-search search "search terms" --days 14 --json
For Temporal queries:
cc-conversation-search list --date yesterday --json # or --days N, --since, --until
Parse the JSON output. If you find relevant matches → skip to Level 4 (present results).
Note: Search auto-indexes recent conversations for fresh data.
Level 2: Broader Search
Only if Level 1 found nothing useful.
For topic/hybrid queries:
- Remove time constraints:
cc-conversation-search search "terms" --json - Try alternative keywords: "auth" vs "authentication"
- Try broader terms: "database" vs "postgres"
For temporal queries:
- Expand time range:
--days 30instead of--days 7
If matches found → skip to Level 4.
Level 3: Manual Exploration
Only if Levels 1 and 2 both failed.
- List conversations:
cc-conversation-search list --days 30 --json - Review conversation summaries in JSON
- For promising sessions:
cc-conversation-search tree <SESSION_ID> --json - Read message summaries to locate content
Level 4: Present Results
Format results for the user:
For found conversations:
**Session Details**
- **Session**: abc-123-session-id
- **Project**: /home/user/projects/myproject
- **Time**: 2025-11-13 22:50
- **Message**: def-456-message-uuid (if applicable)
**To Resume This Conversation**
```bash
cd /home/user/projects/myproject
claude --resume abc-123-session-id
For counting/analysis queries:
- Parse JSON results
- Filter by message_type if needed (user vs assistant)
- Count matches
- Present clear answer with evidence
**If not found after all 3 levels:**
- "No matching conversations found after exhaustive search"
- Suggest: `cc-conversation-search index --days 90` to reindex older history
- "The conversation may not exist or may be older than indexed range"
## Command Reference
### Search (for topic and hybrid queries)
```bash
# With time scope
cc-conversation-search search "query" --days N --json
# Specific date
cc-conversation-search search "query" --date yesterday --json
cc-conversation-search search "query" --date 2025-11-13 --json
# Date range
cc-conversation-search search "query" --since 2025-11-10 --until 2025-11-13 --json
# All time
cc-conversation-search search "query" --json
Date filter options:
--days N: Last N days from now--date DATE: Specific calendar day--since DATE: From date onwards--until DATE: Up to date (inclusive)- DATE formats:
yyyy-mm-dd,yesterday,today - Cannot mix
--dayswith--date/--since/--until
List (for temporal queries)
cc-conversation-search list --date yesterday --json
cc-conversation-search list --days 7 --json
cc-conversation-search list --since 2025-11-10 --until today --json
Context & Tree
cc-conversation-search context <UUID> --json
cc-conversation-search tree <SESSION_ID> --json
Always use --json for structured output.
Examples
Example 1: Topic query
User: "Find that conversation where we fixed the authentication bug"
Todo workflow:
- ✓ Tool installed/upgraded
- ✓ Classify: TOPIC query
- ✓ Level 1:
cc-conversation-search search "authentication bug" --days 14 --json - If no results → Level 2:
cc-conversation-search search "auth bug" --json - Present results with resume commands
Example 2: Temporal query
User: "What did we work on yesterday?"
Todo workflow:
- ✓ Tool installed/upgraded
- ✓ Classify: TEMPORAL query
- ✓ Level 1:
cc-conversation-search list --date yesterday --json - Parse conversations, group by project
- Present organized summary
Example 3: Hybrid query
User: "Show me yesterday's authentication work"
Todo workflow:
- ✓ Tool installed/upgraded
- ✓ Classify: HYBRID query (topic + time)
- ✓ Level 1:
cc-conversation-search search "authentication" --date yesterday --json - Present matching sessions
Example 4: Counting/analysis query
User: "How many times did you say 'absolutely right' in the past week?"
Todo workflow:
- ✓ Tool installed/upgraded
- ✓ Classify: HYBRID query (phrase + time)
- ✓ Level 1:
cc-conversation-search search "absolutely right" --days 7 --json - Parse JSON, filter
message_type == "assistant", count results - Present count with context snippets
Error Handling
Tool not installed:
- Guide user through installation (see Prerequisites section)
- Do not proceed until confirmed
Database not found:
- User must run:
cc-conversation-search init - Creates
~/.conversation-search/index.db
Empty results:
- Follow Level 1 → 2 → 3 progression
- Do not give up after Level 1
- Only report "not found" after Level 3 fails