‹ 首页

session-logs

@bitterbot-ai · 收录于 1 周前 · 上游提交 1 周前

Search and analyze your own session logs (older/parent conversations) using jq.

适合你,如果需要从大量历史对话中快速查找和提取信息

/ 通过 npx 安装 校验哈希
npx oh-my-skill add bitterbot-ai/bitterbot-desktop/session-logs
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- bitterbot-ai/bitterbot-desktop/session-logs
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify bitterbot-ai/bitterbot-desktop/session-logs
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
2425GitHub stars
~839上下文体积 · 单文件
索引托管

怎么用

商店整理自技能原文 · 版本 867a130 · 表述以原文为准
它做什么

安装后,Claude 可以搜索和分析你之前的对话记录(会话日志)。它能帮你查找历史消息、统计对话成本、按日期或关键词筛选会话等。

什么时候触发

当你询问之前的对话内容、历史上下文或提到旧会话时触发。

装好后可以这样说
Claude 会搜索指定日期的会话文件。
Claude 会跨会话搜索关键词。
Claude 会计算各会话的成本并汇总。
技能原文 SKILL.md作者撰写 · MIT · 867a130

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
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
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
jq -r 'select(.message.role == "user") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl
Search for keyword in assistant responses
jq -r 'select(.message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl | rg -i "keyword"
Get total cost for a session
jq -s '[.[] | .message.usage.cost.total // 0] | add' <session>.jsonl
Daily cost summary
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
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
jq -r '.message.content[]? | select(.type == "toolCall") | .name' <session>.jsonl | sort | uniq -c | sort -rn
Search across ALL sessions for a phrase
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)
jq -r 'select(.type=="message") | .message.content[]? | select(.type=="text") | .text' ~/.bitterbot/agents/<agentId>/sessions/<id>.jsonl | rg 'keyword'
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。