📦 Sessionログ
過去の会話履歴(セッションログ)をjqを使って検索・分析するためのSkill。
📜 元の英語説明(参考)
Search and analyze your own session logs (older/parent conversations) using jq.
🇯🇵 日本人クリエイター向け解説
過去の会話履歴(セッションログ)をjqを使って検索・分析するためのSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o session-logs.zip https://jpskill.com/download/5368.zip && unzip -o session-logs.zip && rm session-logs.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/5368.zip -OutFile "$d\session-logs.zip"; Expand-Archive "$d\session-logs.zip" -DestinationPath $d -Force; ri "$d\session-logs.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
session-logs.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
session-logsフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
💬 こう話しかけるだけ — サンプルプロンプト
- › Session Logs の使い方を教えて
- › Session Logs で何ができるか具体例で見せて
- › Session Logs を初めて使う人向けにステップを案内して
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[Skill 名] session-logs
セッションログ
セッションの JSONL ファイルに保存されている完全な会話履歴を検索します。ユーザーが以前の会話や親となる会話を参照したり、以前に何が話されたかを尋ねたりする場合に使用してください。
トリガー
ユーザーが、メモリファイルにない以前のチャット、親となる会話、または履歴のコンテキストについて尋ねるときに、このスキルを使用してください。
場所
セッションログは次の場所にあります: ~/.clawdbot/agents/<agentId>/sessions/ (システムプロンプトの Runtime 行から agent=<id> の値を使用してください)。
sessions.json- セッションキーをセッションIDにマッピングするインデックス<session-id>.jsonl- セッションごとの完全な会話トランスクリプト
構造
各 .jsonl ファイルには、以下の情報を含むメッセージが含まれています。
type: "session" (メタデータ) または "message"timestamp: ISOタイムスタンプmessage.role: "user"、"assistant"、または "toolResult"message.content[]: テキスト、思考、またはツール呼び出し (type=="text"で人間が読めるコンテンツにフィルタリングしてください)message.usage.cost.total: 応答ごとのコスト
よくあるクエリ
すべてのセッションを日付とサイズで一覧表示する
for f in ~/.clawdbot/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
特定の日のセッションを見つける
for f in ~/.clawdbot/agents/<agentId>/sessions/*.jsonl; do
head -1 "$f" | jq -r '.timestamp' | grep -q "2026-01-06" && echo "$f"
done
セッションからユーザーメッセージを抽出する
jq -r 'select(.message.role == "user") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl
アシスタントの応答からキーワードを検索する
jq -r 'select(.message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl | rg -i "keyword"
セッションの合計コストを取得する
jq -s '[.[] | .message.usage.cost.total // 0] | add' <session>.jsonl
日ごとのコストの概要
for f in ~/.clawdbot/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
セッション内のメッセージとトークンの数をカウントする
jq -s '{
messages: length,
user: [.[] | select(.message.role == "user")] | length,
assistant: [.[] | select(.message.role == "assistant")] | length,
first: .[0].timestamp,
last: .[-1].timestamp
}' <session>.jsonl
ツールの使用状況の内訳
jq -r '.message.content[]? | select(.type == "toolCall") | .name' <session>.jsonl | sort | uniq -c | sort -rn
すべてのセッションでフレーズを検索する
rg -l "phrase" ~/.clawdbot/agents/<agentId>/sessions/*.jsonl
ヒント
- セッションは追記専用の JSONL (1行に1つのJSONオブジェクト) です。
- 大規模なセッションは数MBになることがあります。サンプリングには
head/tailを使用してください。 sessions.jsonインデックスは、チャットプロバイダー (discord、whatsappなど) をセッションIDにマッピングします。- 削除されたセッションには
.deleted.<timestamp>サフィックスが付きます。
高速なテキストのみのヒント (低ノイズ)
jq -r 'select(.type=="message") | .message.content[]? | select(.type=="text") | .text' ~/.clawdbot/agents/<agentId>/sessions/<id>.jsonl | rg 'keyword' 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
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: ~/.clawdbot/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 timestampmessage.role: "user", "assistant", or "toolResult"message.content[]: Text, thinking, or tool calls (filtertype=="text"for human-readable content)message.usage.cost.total: Cost per response
Common Queries
List all sessions by date and size
for f in ~/.clawdbot/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 ~/.clawdbot/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 ~/.clawdbot/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" ~/.clawdbot/agents/<agentId>/sessions/*.jsonl
Tips
- Sessions are append-only JSONL (one JSON object per line)
- Large sessions can be several MB - use
head/tailfor sampling - The
sessions.jsonindex 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' ~/.clawdbot/agents/<agentId>/sessions/<id>.jsonl | rg 'keyword'