Screenpipe screenpipe-logs

Retrieve and analyze Screenpipe CLI backend logs and desktop app logs for debugging

install
source · Clone the upstream repo
git clone https://github.com/screenpipe/screenpipe
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/screenpipe/screenpipe "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/screenpipe-logs" ~/.claude/skills/screenpipe-screenpipe-screenpipe-logs && rm -rf "$T"
manifest: .claude/skills/screenpipe-logs/SKILL.md
source content

Screenpipe Logs Agent

You are a specialized agent for retrieving and analyzing Screenpipe logs. Use this to debug issues, find errors, or understand what happened at a specific time.

Log Locations

All logs are stored in

~/.screenpipe/
:

Log TypePatternDescription
CLI/Backend
~/.screenpipe/screenpipe.YYYY-MM-DD.log
Core recording engine logs (OCR, audio, frames)
Desktop App
~/.screenpipe/screenpipe-app.YYYY-MM-DD.log
Tauri app logs (UI, settings, pipes)

Common Commands

List Available Logs

ls -lht ~/.screenpipe/*.log | head -20

Get Today's Logs

# Today's date
TODAY=$(date +%Y-%m-%d)

# CLI logs (last 100 lines)
tail -100 ~/.screenpipe/screenpipe.$TODAY.log

# App logs (last 100 lines)
tail -100 ~/.screenpipe/screenpipe-app.$TODAY.log

Find Errors

# Errors in CLI logs
grep -i "error\|failed\|panic" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | tail -50

# Errors in app logs
grep -i "error\|failed\|panic" ~/.screenpipe/screenpipe-app.$(date +%Y-%m-%d).log | tail -50

Search for Specific Issues

# Search for text in recent logs
grep -i "SEARCH_TERM" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log

# Search with context (5 lines before/after)
grep -i -B5 -A5 "SEARCH_TERM" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log

Filter by Time

# Get logs from specific hour (e.g., 14:00-14:59)
grep "^2026-01-22T14:" ~/.screenpipe/screenpipe.2026-01-22.log

# Get logs from last N minutes
SINCE=$(date -v-30M +%Y-%m-%dT%H:%M)
awk -v since="$SINCE" '$0 >= since' ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | tail -100

Log Analysis

# Count errors by type
grep -io "error[^:]*:" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | sort | uniq -c | sort -rn

# Check recording status
grep -i "recording\|started\|stopped" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | tail -20

# Check OCR processing
grep -i "ocr\|frame" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | tail -20

# Check audio processing
grep -i "audio\|transcription\|whisper" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | tail -20

Log Format

Logs use tracing format:

2026-01-22T10:30:45.123456Z  INFO screenpipe_core::capture: Starting capture
2026-01-22T10:30:45.234567Z ERROR screenpipe_audio::transcription: Failed to transcribe: timeout
2026-01-22T10:30:45.345678Z DEBUG screenpipe_vision::ocr: Processing frame 12345

Fields:

  • Timestamp (ISO 8601 with microseconds)
  • Level: TRACE, DEBUG, INFO, WARN, ERROR
  • Target: module path
  • Message

Common Issues to Look For

Recording Issues

grep -i "capture\|monitor\|screen\|permission" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | grep -i "error\|fail\|denied"

Audio Issues

grep -i "audio\|microphone\|device\|whisper" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | grep -i "error\|fail"

Database Issues

grep -i "sqlite\|database\|db\|insert\|query" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | grep -i "error\|fail\|lock"

Memory/Performance

grep -i "memory\|oom\|killed\|slow" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log

Pipe Issues

grep -i "pipe\|plugin" ~/.screenpipe/screenpipe-app.$(date +%Y-%m-%d).log | grep -i "error\|fail"

Response Guidelines

When analyzing logs:

  1. Start with the most recent errors/warnings
  2. Provide timestamp and context for issues found
  3. Suggest potential causes and fixes
  4. If logs are large, summarize patterns rather than dumping everything
  5. Note if screenpipe service appears to be running or stopped