screenpipe #14 | your laptop battery just got a raise

8 min read
newsletterupdatesv2changelogclisdkmcpprivacypowerscreenpipe

get updates on screenpipe news and releases

Your laptop battery just got a raise

What's new on screenpipe this week?

The theme this week: do more, take less. screenpipe now runs from any terminal without a daemon, backs off automatically when your battery runs low, and redacts sensitive text on-device with a model that's 10× smaller than before.

Your agents can only act on what they can see. screenpipe is the local-first memory layer that captures it — now lighter on your machine and easier to reach from the command line.


Please update the app, it might be outdated

Or download it


⭐️ New features

CLI

  • screenpipe search — daemon-free local history queries from any terminal. Same flags and JSON shape as GET /search, so existing jq filters work unchanged
  • screenpipe team devices / search / records — enterprise admins query teammates' history from any signed-in machine, no local daemon required. Uses your team_api_token from ~/.screenpipe/enterprise.json
  • CLI flags for keystroke, clipboard, and scroll capture--capture-on-keystroke, --capture-on-clipboard, --capture-scroll link non-printable key events, clipboard rows, and scroll-stop triggers to the screen frame they fired on
  • Periodic CLI version-check nudge in the tip rotation so you don't miss fixes
  • Discord community link in the Help menu — jump into the screenpipe Discord from the in-app Help section

MCP

  • Bring-your-own MCP servers — register custom HTTP MCP servers (Brave Search, Linear, Notion, internal company MCPs) from settings → connections and call their tools from pipes and chat
  • MCP team telemetry tools — when authenticated with an enterprise key, the screenpipe MCP server exposes team telemetry tools to any MCP-compatible agent

Meetings

  • Search meetings by title, attendees, or note with explicit show-more pagination
  • Calendar-aware prewarm — 2–3 minutes before a calendar event, screenpipe surfaces a toast to start the live meeting note so you're never caught flat-footed
  • Deepgram live diarization — the live meeting transcript now labels each turn with a speaker (you on your input device, "speaker 2/3/…" for others) and adjacent turns from the same person collapse into one line

SDK

  • @screenpipe/sdk 0.4.x event stream — stable events (start/stop, recording_started/recording_stopped, paused/resumed, app_switched, frames_progress, permissions_changed, error) across Node, Electron, Tauri, and Swift bridges
  • Event-driven multi-monitor paired capture with full CLI parity — SDK sessions land in the same database your pipes already query
  • Runtime setFilters / filterStatus + paused/resumed events
  • Honor ignored_windows / included_windows / ignored_urls from SDK pipe code
  • Tauri SDK now a native plugin — exposes dataDir, mp4Monitors, pairedMonitors, uiCapture

Filters

  • Scoped window filters with App::Title syntaxignored_windows and included_windows now accept Slack::#hr (only the #hr window inside Slack), ::Confidential (that title in any app), and bare entries like Slack keep their original meaning

Privacy / redaction

  • v45 phase 3 ONNX text redactor — ~278 MB INT8, 90.2% HIPAA, sub-10 ms p50, with CoreML / DirectML / CPU execution providers. Replaces the previous 2.8 GB Candle model. First run auto-downloads with SHA verification
  • Memories continuously sync to Claude + Codex memory so your agents see what you've seen

Power

  • Aggressive low-battery tiers — auto power mode now pauses microphone capture at ≤20% battery and pauses all capture at ≤10%, then resumes when you're back on AC
  • Power profile downgrade notification — a desktop toast on each tier change so you know why capture quality changed
  • Auto power mode by default on new installs

Connections

  • Workflowy integration — connect Workflowy and use it from chat and pipes
  • Tile-ified Input Monitoring plus a new Featured row on connections
  • Multi-account for Google Docs / Sheets with a forced account picker on Google + Microsoft to disambiguate

App

  • Cmd+N / Ctrl+N opens a new chat from the home page
  • Ctrl+Tab recent chat switcher for chats
  • Simplified pipes view
  • macOS VoiceProcessingIO microphone — opt-in Apple AEC + noise suppression on your default mic; falls back to the standard HAL path if VPIO can't start
  • "Check for updates" card in Settings → General so you can pull on demand

Updates

  • Silent background download — banner only when ready; auto-update off by default so you stay in control
  • Enterprise update policy — admins pin app versions per org and control whether the consumer update banner shows for employees
  • Failed updates are retryable — the tray says "Update failed — click to retry"; transient failures auto-retry with backoff and surface as desktop notifications

API

  • frame_id on /search input results so pipes can join search hits back to the exact screen frame
  • UI events linked to the frames that triggered them — clicks, scrolls, and key presses paired with the frame they fired on (including on Windows)
  • ui_recorder status in /health so external monitors can check if clipboard/UI capture is on

AI gateway

  • Gemini 3.5 Flash added

Accessibility

  • VS Code terminal logs captured plus the correct terminal window name (session name shows in the label)
  • macOS depth budget reset at the AXWebArea boundary so Electron apps (VS Code, Slack, Discord, Obsidian, Notion) get the full walk budget inside the web area
  • Default max_depth 30 → 35 to capture VS Code terminal output
  • Windows: WM_MOUSEWHEEL coalesced into 500 ms scroll events so scroll bursts land as one event

Domain

  • Canonical domain switch to screenpipe.com — desktop app and CLI website links now point to screenpipe.com. Existing screenpi.pe links still work

⚡️ Performance

  • macOS capture coupled to your video_quality — capture width is low 1280 / balanced 1920 / high 3840 / max native, and the GPU does the downscale at source instead of reading back native-res frames. Biggest wins on external 4K/6K displays
  • Pause states actually release SCStream — when capture pauses (screen locked, critical battery, DRM-protected window, outside your schedule) screenpipe releases the underlying capture stream instead of just sleeping the reader, so WindowServer / replayd stop composing frames for a sleeping consumer. Recovery on the next trigger adds a one-time ~200 ms
  • Exclude ~/.screenpipe from Spotlight so the system isn't constantly re-indexing your timeline
  • ArcSwap for cloud token state — lock-free token reads on hot paths
  • Meeting detector skips AX IPC for attributes the profile doesn't need
  • DRM-aware pause on by default (Netflix, Disney+, Hulu, HBO Max), with reliable Safari + apps.disneyplus.com subdomain detection

🐞 Bug fixes

Meetings & audio

  • Background transcriber no longer fights live meeting notes — duplicate text gone
  • Duplicate transcript chunks across /search and meeting-transcript endpoints collapsed
  • Phantom meeting toast on the cal.com dashboard suppressed
  • "Join and take notes" button dropped from the in-progress meeting toast (it didn't do what it said)
  • Desktop app no longer misses system audio when following system defaults
  • macOS sample-rate fixes for VPIO and USB audio devices; falls back to system default input when a pinned mic disconnects
  • macOS prefers bundled ffmpeg over PATH to avoid version mismatch
  • TCC-denied retry spam quieted; missing ffmpeg no longer panics

Chat

  • Chat preset no longer snaps back to the default on send
  • Pipe-run titles preserved across tab switches and history sync
  • Silent model switch mid-stream no longer kills the active response
  • Source-citation noise collapsed in pipe-run transcripts; aggregation now generalizes to any agentic loop
  • Redundant [N] count dropped when a tool group is done
  • Empty-state hidden during pipe streaming; running-pipe spinner hidden when the sidebar is collapsed
  • Pointer cursor on markdown links in assistant messages; local media attachments render reliably
  • Chat input focuses on Cmd+N; the collapsed sidebar button no longer tab-cycles when all sections are empty

OAuth

  • Background refresh scheduler kills the Zoom 15-hour rotation bug
  • refresh_token + identity metadata preserved across refresh
  • Stale expires_at and explicit-null edge cases handled
  • ChatGPT shows a "session expired" warning with one-click reconnect
  • Zoom desktop client_id aligned with the deployed Marketplace app

Pipes

  • Newly-installed and stale cron pipes no longer fire immediately
  • SCREENPIPE_LOCAL_API_KEY exported to scheduled pipe subprocesses (unified env var)
  • Pipes whose config lives in the encrypted store.bin resolve presets correctly at start
  • screenpipe://view deep links route through the same handler everywhere (notifications → chat → viewer)
  • Local media markdown links and screenpipe markdown links preserved

Other

  • Shortcut-reminder error loop stopped; S3 upload reasons surfaced
  • UI events link to frames on content-dedup skip; timeline popover hit area expanded
  • Intel Mac Pi install ("Bad CPU type in executable") fixed
  • npx screenpipe and npm i -g @screenpipe/cli wired correctly via the wrapper bin

Download screenpipe

Update screenpipe

Questions? Reply to this email or join our Discord.

Using screenpipe in a team? Let's talk

Send us feedback: https://screenpi.pe/survey

Report a bug on GitHub

— Louis

get updates on screenpipe news and releases