원클릭으로
session-logs
Search and analyze your own Lemon session logs (older/parent conversations) using jq.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Search and analyze your own Lemon session logs (older/parent conversations) using jq.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Interact with Discord via a bot: read channels, send messages, list guilds/channels, upload files, manage threads. Uses the Discord REST API with a bot token stored in ~/.zeebot/api_keys/discord.txt.
Debug and stress-test lemon gateway behavior by acting as both sides of Telegram conversations: run lemon-gateway with debug logs, then use Telethon with user credentials to send/reply messages in a dedicated topic while watching gateway logs and runtime state. Use for stuck runs, delivery failures, scheduler/lock contention, async delegation bugs, and context overflows.
Connect to a running Lemon or lemon-gateway BEAM node, run recompile() for hot code reload, and execute Elixir code in that live runtime via IEx remsh or rpc-eval.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Capture and automate macOS UI with the Peekaboo CLI.
Pin files and JSON to IPFS via Pinata (JWT auth + helper scripts).
| name | session-logs |
| description | Search and analyze your own Lemon session logs (older/parent conversations) using jq. |
| metadata | {"lemon":{"emoji":"📜","requires":{"bins":["jq","rg"]}}} |
Search your complete conversation history stored in Lemon session JSONL files. Use this when a user references older/parent conversations or asks what was said before.
Use this skill when the user asks about prior chats, parent conversations, or historical context that isn't in current memory files.
Session logs live under ~/.lemon/agent/sessions/ and are organized by encoded working directory name:
<encoded-cwd>/*.jsonl - Full conversation transcript per sessionFor example: ~/.lemon/agent/sessions/--home-user-project--/2026...jsonl
The first line in each .jsonl is a session header with metadata.
Each .jsonl file contains messages with:
type: "session" (metadata header) or "message" (conversation entries)timestamp: Epoch timestampmessage.role: "user", "assistant", etc.message.content[]: Text, thinking, or tool calls (filter type=="text" for human-readable content)message.usage.cost.total: Cost per responsefor f in ~/.lemon/agent/sessions/*/*.jsonl; do
ts=$(jq -r 'select(.type=="session") | .timestamp' "$f")
size=$(wc -c <"$f")
started="$(date -r "$((ts / 1000))" '+%F %T' 2>/dev/null || printf 'ts=%s' "$ts")"
echo "$started $size $(basename "$f")"
done | sort -r
for f in ~/.lemon/agent/sessions/*/*.jsonl; do
ts=$(jq -r 'select(.type=="session") | .timestamp' "$f")
day="$(date -r "$((ts / 1000))" '+%F' 2>/dev/null || true)"
[[ "$day" == "2026-01-06" ]] && echo "$f"
done
jq -r 'select(.type=="message" and .message.role == "user") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl
jq -r 'select(.type=="message" and .message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' <session>.jsonl | rg -i "keyword"
jq -s '[.[] | select(.type=="message") | .message.usage.cost.total // 0] | add' <session>.jsonl
for f in ~/.lemon/agent/sessions/*/*.jsonl; do
day="$(date -r "$(( $(jq -r 'select(.type=="session") | .timestamp' "$f") / 1000 ))" '+%F' 2>/dev/null || continue)"
cost=$(jq -s '[.[] | select(.type=="message") | .message.usage.cost.total // 0] | add' "$f")
echo "$day $cost"
done | awk '{a[$1]+=$2} END {for(d in a) print d, "$"a[d]}' | sort -r
jq -s '{
messages: length,
user: [.[] | select(.type=="message" and .message.role == "user")] | length,
assistant: [.[] | select(.type=="message" and .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" ~/.lemon/agent/sessions/*/*.jsonl
head/tail for sampling~/.lemon/agent/sessions is the session root in Lemonsessions.json index file exists for logsjq -r 'select(.type=="message") | .message.content[]? | select(.type=="text") | .text' ~/.lemon/agent/sessions/*/*.jsonl | rg 'keyword'