plugins/sjawhar/skills/find-session/SKILL.md
--- description: "Find a Claude Code or OpenCode session by topic, change ID, bookmark, or keywords" argument-hint: [search-terms] [--after DATE] [--project DIR] [--source claude|opencode|all] --- Find session(s) matching: **$ARGUMENTS** **If no search terms provided**, list the 5 most recent sessions from each source. ## Sources Search **both** Claude Code and OpenCode sessions by default. | Source | Storage | Method | |--------|---------|--------| | Claude Code | `~/.dotfiles/.claude/proj
npx skillsauth add sjawhar/dotfiles plugins/sjawhar/skills/find-sessionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Find session(s) matching: $ARGUMENTS
If no search terms provided, list the 5 most recent sessions from each source.
Search both Claude Code and OpenCode sessions by default.
| Source | Storage | Method |
|--------|---------|--------|
| Claude Code | ~/.dotfiles/.claude/projects/*/*.jsonl | grep on JSONL files |
| OpenCode | ~/.local/share/opencode/storage/ | Built-in session_search / session_list tools |
Use --source claude or --source opencode to limit to one source.
Step 1: Parse arguments
--after DATE, --project DIR, or --source flags if presentStep 2a: Search Claude Code sessions
Search strategy (flexible):
grep -l -i "thread inversion" ...# Search ALL projects (don't filter by assumed project names)
grep -l -i "SEARCH_PHRASE" ~/.dotfiles/.claude/projects/*/*.jsonl 2>/dev/null
For each matching file, extract:
grep -c)Step 2b: Search OpenCode sessions (in parallel with 2a)
Use built-in tools:
session_search(query="SEARCH_PHRASE") — searches across all OpenCode session messagessession_list(limit=5) — lists recent sessionsFor each result, use session_info(session_id=...) to get metadata (message count, date range, agents used).
Critical rules:
--project flag for explicit project filteringStep 3: Output
Merge results from both sources. Sort by: match count (desc), then date (desc). Limit to top 10 per source.
Format:
[Claude Code] Session: <session-id>
Project: <project-name>
Date: <timestamp>
Topic: "<first user message snippet>..."
Matches: <count>
Resume: claude -r <session-id>
[OpenCode] Session: <session-id>
Date: <date-range>
Messages: <count>
Agents: <agent-list>
Resume: opencode -r <session-id>
If no matches: "No sessions found matching '<terms>'. Try broader search terms."
--after DATE: filter by mtime (Claude Code) or from_date param (OpenCode)--project DIR: limit to specific project directory--source claude|opencode|all: limit to one source (default: all)development
Use when searching flights, hotels, or rental cars; comparing fares across flexible dates; discovering cheap destinations from a fixed origin; or hunting hidden-city ticketing deals. Trigger on multi-city itineraries, fare calendars, "where can I fly cheaply", price-sensitive trip planning, or any time the user wants a sanity-check against Google Flights pricing — Skiplagged surfaces hidden-city deals other engines deliberately hide.
development
Search the web via Ceramic Search (lexical/keyword-based). Use when looking up current events, recent news, time-sensitive facts, specific people/products/companies, technical docs, or any topic requiring fresh web results. Triggers on "search the web", "look up", "find recent", "latest news", "current", or when built-in knowledge is likely stale.
tools
Use when reading WhatsApp messages, searching conversations, sending messages, listing chats, or interacting with WhatsApp workspaces
tools
Watch CI status, fix failures, and merge when green