Skip to content

Log Format

Every blocked tool call is logged to ~/.claude/patronum.log in JSONL format (one JSON object per line).

Format

Each blocked call is logged as a single JSON object:

json
{"ts":"2026-04-08T10:30:00Z","tool":"Read","target":"/Users/you/.ssh/id_rsa","pattern":"~/.ssh/*"}
FieldDescription
tsUTC timestamp of the blocked call
toolThe tool that was blocked (Read, Write, Edit, Bash, etc.)
targetThe file path or command that was blocked
patternThe pattern that matched

Viewing logs

These examples use jq (optional) for JSON formatting. Any JSONL-aware tool works.

Use standard Unix tools to inspect the log:

bash
# Last 10 blocked calls
tail -10 ~/.claude/patronum.log

# Watch in real time
tail -f ~/.claude/patronum.log

# Pretty-print with jq
cat ~/.claude/patronum.log | jq .

# Count blocks by pattern
cat ~/.claude/patronum.log | jq -r .pattern | sort | uniq -c | sort -rn

Why JSONL

JSONL (one JSON object per line) is append-friendly — the hook can write a new line without reading the entire file. It's also easy to process with jq, grep, and standard Unix tools.