Skip to content

2026-08-23

Screenpipe Desktop Capture — Built & Installed

Built screenpipe from source for passive screen content logging (OCR what you see, not just which window was open).

What was done

  1. Rust toolchain installed via rustup (system Pacman had no Rust/Cargo)
  2. Cloned screenpipe (--depth 1) to /tmp/screenpipe
  3. Patched build: antirez-asr-sys/build.rs — changed -std=c11 to -std=gnu11 (fixes strdup implicit declaration in C11 mode)
  4. Built release binary (~20 min on 8 cores) — 78MB ELF at ~/.local/bin/screenpipe
  5. Autostart configured — added to ~/.config/hypr/modules/autostart.lua:
    hl.exec_cmd("bash -c 'sleep 15 && screenpipe record --port 3030 &'")
    
  6. Verified working:
  7. Health endpoint: localhost:3030 — healthy
  8. Wayland capture: grim capturing both 2560x1440 monitors
  9. OCR: Tesseract 5.5.3 extracting text from frames
  10. CLI search: screenpipe search "drive" — found news.com.au article content
  11. DB: ~/.screenpipe/db.sqlite — frames + OCR text stored

Key commands

Command What
screenpipe search "query" Find text you saw on any screen
screenpipe record --port 3030 Start capture + API
curl localhost:3030/health Health check
screenpipe status Capture freshness, storage

Relevant files

  • ~/.local/bin/screenpipe — binary (78MB, built from source)
  • ~/.screenpipe/db.sqlite — capture database
  • ~/.config/hypr/modules/autostart.lua — autostart line added
  • /tmp/screenpipe/ — build source (can be deleted)

Build notes

  • Dependencies: tesseract 5.5.3, grim, ffmpeg, at-spi2-core, libxcb, cmake, base-devel — all pre-installed
  • Storage: ~300MB per 8hr session
  • Privacy: 100% local, no cloud, no account