screenpipe-logs
The screenpipe-logs skill retrieves and analyzes Screenpipe CLI backend and desktop app logs stored in the ~/.screenpipe/ directory for debugging purposes. Use it to locate errors, filter logs by time or content, track recording and processing status, and understand what occurred during specific operational periods when troubleshooting Screenpipe functionality.
git clone --depth 1 https://github.com/screenpipe/screenpipe /tmp/screenpipe-logs && cp -r /tmp/screenpipe-logs/.claude/skills/screenpipe-logs ~/.claude/skills/screenpipe-logsSKILL.md
# 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 Type | Pattern | Description | |----------|---------|-------------| | 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 ```bash ls -lht ~/.screenpipe/*.log | head -20 ``` ### Get Today's Logs ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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 ```bash grep -i "capture\|monitor\|screen\|permission" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | grep -i "error\|fail\|denied" ``` ### Audio Issues ```bash grep -i "audio\|microphone\|device\|whisper" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | grep -i "error\|fail" ``` ### Database Issues ```bash grep -i "sqlite\|database\|db\|insert\|query" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log | grep -i "error\|fail\|lock" ``` ### Memory/Performance ```bash grep -i "memory\|oom\|killed\|slow" ~/.screenpipe/screenpipe.$(date +%Y-%m-%d).log ``` ### Pipe Issues ```bash 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
Release the screenpipe monorepo. Bumps versions, triggers GitHub Actions for app, CLI, MCP, and JS packages.
Query the user's data via the local screenpipe REST API at localhost:3030 — screen recordings, audio, UI elements, usage analytics, meetings, connected services, and the user's persistent memory store. Use for questions about screen activity, meetings, apps, productivity, media export, retranscription, connections, OR to save / remember / store information for later (POST /memories — survives across sessions, queryable by external agents).
Manage screenpipe pipes (scheduled AI automations) and connections (Telegram, Slack, Discord, etc.) via the CLI. Use when the user asks to create, list, enable, disable, run, or debug pipes, or manage service connections from the command line.
Check Screenpipe health status, process state, and diagnose common issues
Add or change Tauri commands and TypeScript bindings in the screenpipe desktop app. Use when editing #[tauri::command] handlers, lib/utils/tauri.ts, or Rust types exported to the frontend.
Query the org's screenpipe telemetry as an enterprise admin — devices, members, recent activity, and substring search across the team's screen recordings and audio transcripts. Use when the user asks about their team, a teammate's activity, what their organization worked on, app usage across the org, or anything that requires seeing data beyond the user's own machine. The skill is only installed for enterprise admins; ordinary users won't see it.
Produce a human-facing visual report — a chart, dashboard, scorecard, or styled summary — that renders as a live page in the screenpipe viewer instead of plain text. Use when the task asks for a visual/graphical output rather than a plain note; do NOT use for plain text or raw data (prefer a markdown note for those).