About cline-session-history
cline-session-history is an agent skill for finding and reviewing Cline sessions stored on the local machine. It filters session metadata and transcripts, with options to inspect or export matching records.
Key features
- 01Filter sessions by time, prompt, status, model, and other fields
- 02Search prompts with text or regular expressions
- 03Display transcripts with selected content types and message limits
- 04Export matching session files
- 05Read JSON files and an optional SQLite database
Use cases
- 01Find a past session by its prompt or date
- 02Review a session transcript or its model
- 03Locate failed or cancelled sessions
- 04Export sessions matching a time range
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ cline/ skills --skill cline-session-historyAfter installing, type/cline-session-historyin Claude Code to confirm it loaded.
Bundled filesscripts/search_sessions.py
Details
From the project READMECline Session History
Search and browse Cline session history stored on the local machine. Sessions live in ~/.cline/data/sessions/ as individual JSON metadata files and conversation transcript (.messages.json) files. Older sessions may also be in a sessions.db SQLite database.
When to Use This Skill
- "Find my session from the last hour about..."
- "Find my session that started with this prompt..."
- "Find the session where I asked about..."
- "Show me sessions that used model X"
- "What sessions failed yesterday?"
- "Show me the transcript for session "
- "Export sessions from last week to a folder"
- "What was that session where..."
- Any request involving past Cline conversation history
How to Use
The search script lives alongside this file at scripts/search_sessions.py, relative to the skill's own directory. Resolve it against the directory that contains this SKILL.md — not the current working directory — so it works regardless of where the command is run from.
Script path: scripts/search_sessions.py (relative to this skill's directory)
The examples below use scripts/search_sessions.py; prefix it with the skill directory's absolute path when running from elsewhere.
All filters are optional and combine with AND logic.
Quick Examples
# Sessions from the last 10 minutes
python3 scripts/search_sessions.py --since 10m
# Sessions between two dates with "chatgpt" in the prompt
python3 scripts/search_sessions.py --since 2026-06-01 --until 2026-06-21 --prompt chatgpt
# Find a session by its starting prompt (quoted substring match)
python3 scripts/search_sessions.py --since 1d --prompt "find some code that should be improved" --full-prompt
# Non-interactive sessions that failed
python3 scripts/search_sessions.py --no-interactive --status failed
# VS Code extension sessions using Claude models, full prompts
python3 scripts/search_sessions.py --source vscode --model "claude" --full-prompt
# Full transcript of a specific session
python3 scripts/search_sessions.py --session-id 1781991507587_pozk0 --transcript
# Export matching sessions to a directory
python3 scripts/search_sessions.py --since 1d --export ~/tmp/exported-sessions
Time Filters
Both --since and --until accept:
- Relative:
10m,30min,2h,1d,1w(minutes, hours, days, weeks) - ISO 8601:
2026-06-20,2026-06-20T21:30:00Z,2026-06-20T21:30:00+00:00
All Available Filters
| Filter | Description |
|---|---|
--since <time> | Sessions started after this time |
--until <time> | Sessions started before this time |
--prompt <text> | Case-insensitive substring search in prompt |
--prompt-regex <pattern> | Regex search in prompt (case-insensitive) |
--status <status> | running, idle, completed, cancelled, failed |
--source <source> | cli, vscode, etc. (exact match) |
--provider <name> | Provider name, exact match (e.g. cline) |
--model <text> | Model name substring, case-insensitive (e.g. claude) |
--mode <mode> | plan or act |
--cwd <path> | Working directory substring match |
--session-id <id> | Exact session ID lookup |
--interactive / --no-interactive | Filter by interactive flag |
--team-only / --no-team | Filter by team session flag |
--subagents / --no-subagents | Include/exclude subagent sessions |
Output Options
| Option | Description |
|---|---|
--full-prompt | Show full prompt text instead of truncated |
--transcript | Print full conversation transcript |
--max-messages <n> | Limit messages in transcript output |
--content-types <types> | Comma-separated: text,thinking,tool_use,tool_result,image |
--export <dir> | Copy matching session files to a directory |
--limit <n> | Max number of sessions to return |
--json | Output as JSON |
Data Source Options
| Option | Description |
|---|---|
--sessions-dir <path> | Custom sessions directory (default: ~/.cline/data/sessions) |
--db-path <path> | Custom sessions.db path |
--no-db | Skip SQLite DB, only scan JSON files |
Workflow
- Start by running the search with the user's criteria to get a list of matching sessions.
- If the user wants to see details, use
--full-promptor--transcript. - For transcript inspection, consider
--max-messagesand--content-typesto focus on relevant parts. - For bulk export, use
--export <dir>to copy session files.
Session Data Structure
Each session on disk has:
<session_id>.json— Metadata: session_id, started_at, status, source, provider, model, cwd, prompt, metadata (mode, systemPrompt, cost, usage), etc.<session_id>.messages.json— Full conversation transcript with messages containing content blocks (text, thinking, tool_use, tool_result, image).
The SQLite sessions.db may contain older sessions with similar fields plus transcript_path, hook_path, parent_session_id, agent_id, is_subagent.