session-logs
Bitterbot-AI/bitterbot-desktop/skills/session-logs/SKILL.md
Search and analyze your own session logs (older/parent conversations) using jq.
Skill2.5k starsChanged 4 months ago
What's in it
- session-logs
- Trigger
- Location
- Structure
- Common Queries
- List all sessions by date and size
- Find sessions from a specific day
- Extract user messages from a session
- Search for keyword in assistant responses
- Get total cost for a session
- Daily cost summary
- Count messages and tokens in a session
- Tool usage breakdown
- Search across ALL sessions for a phrase
- Tips
- Fast text-only hint (low noise)
---
name: session-logs
description: Search and analyze your own session logs (older/parent conversations) using jq.
metadata: { "bitterbot": { "emoji": "📜", "requires": { "bins": ["jq", "rg"] } } }
---
# session-logs
Search your complete conversation history stored in session JSONL files. Use this when a user references older/parent conversations or asks what was said before.
## Trigger
Use this skill when the user asks about prior chats, parent conversations, or historical context that isn't in memory files.
## Location
Session logs live at: `~/.bitterbot/agents/<agentId>/sessions/` (use the `agent=<id>` value from the system prompt Runtime line).
- **`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 (filter `type=="text"` for human-readable content)
- `message.usage.cost.total`: Cost per response
## Common Queries
### List all sessions by date and size
```bash
for f in ~/.bitterbot/agents/<agentId>/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 ~/.bitterbot/agents/<agentId>/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[]? | select(.type == "text") | .text' <session>.jsonl
```
### Search for keyword in assistant responses
```bash
jq -r 'select(.message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl | rg -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 ~/.bitterbot/agents/<agentId>/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
rg -l "phrase" ~/.bitterbot/agents/<agentId>/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
## Fast text-only hint (low noise)
```bash
jq -r 'select(.type=="message") | .message.content[]? | select(.type=="text") | .text' ~/.bitterbot/agents/<agentId>/sessions/<id>.jsonl | rg 'keyword'
```
More agent context in Bitterbot-AI/bitterbot-desktop
66 other files this repository gives its agents, the first 60 shown.
AGENTS.md
Skill
- 1passwordskills/1password/SKILL.md
- apple-notesskills/apple-notes/SKILL.md
- apple-remindersskills/apple-reminders/SKILL.md
- bear-notesskills/bear-notes/SKILL.md
- blogwatcherskills/blogwatcher/SKILL.md
- blucliskills/blucli/SKILL.md
- bluebubblesskills/bluebubbles/SKILL.md
- calibrate-claim-confidenceskills/calibrate-claim-confidence/SKILL.md
- camsnapskills/camsnap/SKILL.md
- canvasskills/canvas/SKILL.md
- circles-protocolskills/circles-protocol/SKILL.md
- clawhubskills/clawhub/SKILL.md
- coding-agentskills/coding-agent/SKILL.md
- curiosity-loopskills/curiosity-loop/SKILL.md
- discordskills/discord/SKILL.md
- eightctlskills/eightctl/SKILL.md
- finance-dataskills/finance-data/SKILL.md
- food-orderskills/food-order/SKILL.md
- forage-economyskills/forage-economy/SKILL.md
- geminiskills/gemini/SKILL.md
- gifgrepskills/gifgrep/SKILL.md
- githubskills/github/SKILL.md
- gogskills/gog/SKILL.md
- goplacesskills/goplaces/SKILL.md
- healthcheckskills/healthcheck/SKILL.md
- himalayaskills/himalaya/SKILL.md
- imsgskills/imsg/SKILL.md
- mcporterskills/mcporter/SKILL.md
- memory-architectureskills/memory-architecture/SKILL.md
- model-usageskills/model-usage/SKILL.md
- moltbookskills/moltbook/SKILL.md
- nano-banana-proskills/nano-banana-pro/SKILL.md
- nano-pdfskills/nano-pdf/SKILL.md
- notionskills/notion/SKILL.md
- notteskills/notte/SKILL.md
- obsidianskills/obsidian/SKILL.md
- openai-image-genskills/openai-image-gen/SKILL.md
- openai-whisper-apiskills/openai-whisper-api/SKILL.md
- openai-whisperskills/openai-whisper/SKILL.md
- openhueskills/openhue/SKILL.md
- oracleskills/oracle/SKILL.md
- ordercliskills/ordercli/SKILL.md
- peekabooskills/peekaboo/SKILL.md
- pre-action-interceptorsskills/pre-action-interceptors/SKILL.md
- protocol-quiet-in-groupsskills/protocol-quiet-in-groups/SKILL.md
- recall-before-claimskills/recall-before-claim/SKILL.md
- route-by-query-shapeskills/route-by-query-shape/SKILL.md
- sagskills/sag/SKILL.md
- sherpa-onnx-ttsskills/sherpa-onnx-tts/SKILL.md
- skill-creatorskills/skill-creator/SKILL.md
- slackskills/slack/SKILL.md
- social-dataskills/social-data/SKILL.md
- songseeskills/songsee/SKILL.md
- sonoscliskills/sonoscli/SKILL.md
- spotify-playerskills/spotify-player/SKILL.md
- summarizeskills/summarize/SKILL.md
- things-macskills/things-mac/SKILL.md
- tmuxskills/tmux/SKILL.md
- trelloskills/trello/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
Reports can't be read right now.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.

