session-logs
This skill provides jq-based shell commands to search and analyze Claude conversation history stored in JSONL files. It helps users find past discussions, calculate costs, and extract specific message types from session logs located in ~/.clawdbot directories.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install clawdbot-clawdbot-session-logs
Repository
Skill path: skills/session-logs
This skill provides jq-based shell commands to search and analyze Claude conversation history stored in JSONL files. It helps users find past discussions, calculate costs, and extract specific message types from session logs located in ~/.clawdbot directories.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: Claude power users who need to analyze their conversation history, developers debugging agent interactions, users tracking conversation costs.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: clawdbot.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install session-logs into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/clawdbot/clawdbot before adding session-logs to shared team environments
- Use session-logs for productivity workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: session-logs
description: Search and analyze your own conversation history from session log files using jq.
metadata: {"clawdbot":{"emoji":"📜","requires":{"bins":["jq"]}}}
---
# session-logs
Search your complete conversation history stored in session JSONL files. Use this when you need to recall something not in your memory files.
## Location
Session logs live at: `~/.clawdbot/agents/main/sessions/`
- **`sessions.json`** - Index mapping session keys to session IDs
- **`<session-id>.jsonl`** - Full conversation transcript per session
## Structure
Each `.jsonl` file contains messages with:
- `type`: "session" (metadata) or "message"
- `timestamp`: ISO timestamp
- `message.role`: "user", "assistant", or "toolResult"
- `message.content[]`: Text, thinking, or tool calls
- `message.usage.cost.total`: Cost per response
## Common Queries
### List all sessions by date and size
```bash
for f in ~/.clawdbot/agents/main/sessions/*.jsonl; do
date=$(head -1 "$f" | jq -r '.timestamp' | cut -dT -f1)
size=$(ls -lh "$f" | awk '{print $5}')
echo "$date $size $(basename $f)"
done | sort -r
```
### Find sessions from a specific day
```bash
for f in ~/.clawdbot/agents/main/sessions/*.jsonl; do
head -1 "$f" | jq -r '.timestamp' | grep -q "2026-01-06" && echo "$f"
done
```
### Extract user messages from a session
```bash
jq -r 'select(.message.role == "user") | .message.content[0].text' <session>.jsonl
```
### Search for keyword in assistant responses
```bash
jq -r 'select(.message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl | grep -i "keyword"
```
### Get total cost for a session
```bash
jq -s '[.[] | .message.usage.cost.total // 0] | add' <session>.jsonl
```
### Daily cost summary
```bash
for f in ~/.clawdbot/agents/main/sessions/*.jsonl; do
date=$(head -1 "$f" | jq -r '.timestamp' | cut -dT -f1)
cost=$(jq -s '[.[] | .message.usage.cost.total // 0] | add' "$f")
echo "$date $cost"
done | awk '{a[$1]+=$2} END {for(d in a) print d, "$"a[d]}' | sort -r
```
### Count messages and tokens in a session
```bash
jq -s '{
messages: length,
user: [.[] | select(.message.role == "user")] | length,
assistant: [.[] | select(.message.role == "assistant")] | length,
first: .[0].timestamp,
last: .[-1].timestamp
}' <session>.jsonl
```
### Tool usage breakdown
```bash
jq -r '.message.content[]? | select(.type == "toolCall") | .name' <session>.jsonl | sort | uniq -c | sort -rn
```
### Search across ALL sessions for a phrase
```bash
grep -l "phrase" ~/.clawdbot/agents/main/sessions/*.jsonl
```
## Tips
- Sessions are append-only JSONL (one JSON object per line)
- Large sessions can be several MB - use `head`/`tail` for sampling
- The `sessions.json` index maps chat providers (discord, whatsapp, etc.) to session IDs
- Deleted sessions have `.deleted.<timestamp>` suffix