Screenpipe: 24/7 local screen memory for AI agents via MCP

2 min read
screen-recordinglocal-firstmcp-servermemory-systems
View as Markdown
Originally from github.com
View source

My notes

Summary

Screenpipe is a source-available desktop app (YC S26) that continuously records screen and audio locally, turning it into a searchable memory layer AI agents can query via MCP. It runs “pipes”, markdown files with YAML frontmatter that act as scheduled AI agents (meeting summary, day recap, standup update) with deterministic, OS-level data permissions rather than prompt-based restrictions.

Key Insight

  • Captures via the accessibility tree first (structured OS text: buttons, labels, fields), falling back to OCR only when it is unavailable (remote desktops, games, some Linux apps). That is why CPU sits at 5-10% instead of the 20-30%+ typical of continuous OCR-based recorders.
  • Event-driven capture (app switch, click, typing pause, scroll) instead of constant frame grabs: roughly 300 MB per 8 hours versus about 2 GB for continuous recording, and 5-10 GB of storage per month in total.
  • “Pipes” are the differentiator: markdown files (~/.screenpipe/pipes/pipe.md) that define a prompt plus a schedule, and screenpipe runs an AI coding agent (Claude Code, pi, and similar) against the screen data to take actions, for example auto-updating Linear whenever work happens on a specific task.
  • Data permissions are enforced at three layers (skill gating so the AI never learns denied endpoints exist, agent interception before execution, and server middleware with per-pipe cryptographic tokens). This is explicitly not prompt-based, so a compromised agent still cannot read denied data. A relevant pattern for anyone building agent-with-file-access systems.
  • Pricing is a trap for casual use: the source is free for personal, non-commercial use, but the signed desktop app requires a subscription ($25/mo Standard, $50/seat Pro, $150/seat Enterprise). Existing lifetime licenses are honored, and no new lifetime licenses are sold.
  • Ships default telemetry via PostHog (installation ID, and possibly email once signed in) plus Sentry crash reports even in “local” mode, so it has to be disabled manually under Settings, Privacy, Analytics for a genuinely local-only setup.
  • Zero-config MCP install: claude mcp add screenpipe -- npx -y screenpipe-mcp@latest, after which any Claude, Cursor, or MCP client can be asked “what did I see in the last 5 mins?” or “summarize today’s conversations”.