Search & ResearchDocumentedScanned

clawdbot-logs

Analyze Clawdbot logs and diagnostics.

Share:

Installation

npx clawhub@latest install clawdbot-logs

View the full skill documentation and source below.

Documentation

Clawdbot Logs & Diagnostics

Analyze Clawdbot performance, errors, and session data.

Quick Commands

Response Times (last N messages)

scripts/response-times.sh [count]

Recent Errors

journalctl --user -u clawdbot-gateway.service --no-pager --since "1 hour ago" | grep -iE "(error|fail|invalid)" | tail -20

Session Stats

scripts/session-stats.sh

Gateway Status

systemctl --user status clawdbot-gateway.service --no-pager

Config Validation

cat ~/.clawdbot/clawdbot.json | jq . > /dev/null && echo "Config valid" || echo "Config invalid"

Log Sources

SourceLocationContains
Journaljournalctl --user -u clawdbot-gateway.serviceSession state, errors, tool exec
Daily log/tmp/clawdbot/clawdbot-YYYY-MM-DD.logDetailed JSON logs
Session file~/.clawdbot/agents/main/sessions/*.jsonlFull conversation, token usage, costs
Sessions meta~/.clawdbot/agents/main/sessions/sessions.jsonCurrent session state, model info

Common Diagnostics

Slow Responses

  • Check response times: scripts/response-times.sh 20
  • Check token count in sessions.json: jq '.["agent:main:main"].totalTokens' ~/.clawdbot/agents/main/sessions/sessions.json
  • If tokens > 30000, run /compact in Telegram or start new session
  • Config Errors

    journalctl --user -u clawdbot-gateway.service --no-pager --since "10 minutes ago" | grep -i "invalid config"

    API Costs (from session)

    scripts/session-stats.sh

    Useful Patterns

    Filter journal by category

    # Session state changes
    journalctl --user -u clawdbot-gateway.service | grep "session state"
    
    # Tool execution
    journalctl --user -u clawdbot-gateway.service | grep "\[tools\]"
    
    # Telegram activity
    journalctl --user -u clawdbot-gateway.service | grep "\[telegram\]"

    Parse session file for recent messages

    tail -20 ~/.clawdbot/agents/main/sessions/*.jsonl | jq -r 'select(.message.role=="user") | .message.content[0].text' 2>/dev/null | tail -10