mirror of
https://github.com/farcasclaudiu/openclaw.git
synced 2026-06-29 11:02:12 +03:00
chore: Also format scripts and skills.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: session-logs
|
||||
description: Search and analyze your own session logs (older/parent conversations) using jq.
|
||||
metadata: {"openclaw":{"emoji":"📜","requires":{"bins":["jq","rg"]}}}
|
||||
metadata: { "openclaw": { "emoji": "📜", "requires": { "bins": ["jq", "rg"] } } }
|
||||
---
|
||||
|
||||
# session-logs
|
||||
@@ -22,6 +22,7 @@ Session logs live at: `~/.openclaw/agents/<agentId>/sessions/` (use the `agent=<
|
||||
## Structure
|
||||
|
||||
Each `.jsonl` file contains messages with:
|
||||
|
||||
- `type`: "session" (metadata) or "message"
|
||||
- `timestamp`: ISO timestamp
|
||||
- `message.role`: "user", "assistant", or "toolResult"
|
||||
@@ -31,6 +32,7 @@ Each `.jsonl` file contains messages with:
|
||||
## Common Queries
|
||||
|
||||
### List all sessions by date and size
|
||||
|
||||
```bash
|
||||
for f in ~/.openclaw/agents/<agentId>/sessions/*.jsonl; do
|
||||
date=$(head -1 "$f" | jq -r '.timestamp' | cut -dT -f1)
|
||||
@@ -40,6 +42,7 @@ done | sort -r
|
||||
```
|
||||
|
||||
### Find sessions from a specific day
|
||||
|
||||
```bash
|
||||
for f in ~/.openclaw/agents/<agentId>/sessions/*.jsonl; do
|
||||
head -1 "$f" | jq -r '.timestamp' | grep -q "2026-01-06" && echo "$f"
|
||||
@@ -47,21 +50,25 @@ 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 ~/.openclaw/agents/<agentId>/sessions/*.jsonl; do
|
||||
date=$(head -1 "$f" | jq -r '.timestamp' | cut -dT -f1)
|
||||
@@ -71,6 +78,7 @@ 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,
|
||||
@@ -82,11 +90,13 @@ jq -s '{
|
||||
```
|
||||
|
||||
### 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" ~/.openclaw/agents/<agentId>/sessions/*.jsonl
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user