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 local and synced-device data via the screenpipe REST API at localhost:3030 — recordings, audio, UI, meetings, connected services, and memory. Use for screen activity, other-device or cross-device history, productivity, media export, connections, or durable memory.
Set up and operate screenpipe from the terminal, including always-on recording, service modes, capture health, storage, local search, pipes, and connections. Use when the user asks to install, run, inspect, query, automate, or debug screenpipe without relying on the desktop app.
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.
Use the native Screenpipe CLI to query Enterprise team activity or safely preview, deploy, and schedule managed team Pipes. Injected only by the Enterprise app for active admins.
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).
Develop and test Screenpipe Windows-native changes on a disposable Azure VM created from the prepared Screenpipe Windows dev image. Use for Windows compiler, process, service, local API, desktop, capture, installer, or permission behavior. Do not use for React-only work proved by the browser mock.