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 asGET /search, so existingjqfilters work unchangedscreenpipe team devices/search/records— enterprise admins query teammates' history from any signed-in machine, no local daemon required. Uses yourteam_api_tokenfrom~/.screenpipe/enterprise.json- CLI flags for keystroke, clipboard, and scroll capture —
--capture-on-keystroke,--capture-on-clipboard,--capture-scrolllink 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/sdk0.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/resumedevents - Honor
ignored_windows/included_windows/ignored_urlsfrom SDK pipe code - Tauri SDK now a native plugin — exposes
dataDir,mp4Monitors,pairedMonitors,uiCapture
Filters
- Scoped window filters with
App::Titlesyntax —ignored_windowsandincluded_windowsnow acceptSlack::#hr(only the #hr window inside Slack),::Confidential(that title in any app), and bare entries likeSlackkeep 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_idon/searchinput 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_recorderstatus in/healthso 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_depth30 → 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 islow1280 /balanced1920 /high3840 /maxnative, 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
~/.screenpipefrom 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
/searchand 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
PATHto 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_atand explicit-null edge cases handled - ChatGPT shows a "session expired" warning with one-click reconnect
- Zoom desktop
client_idaligned with the deployed Marketplace app
Pipes
- Newly-installed and stale cron pipes no longer fire immediately
SCREENPIPE_LOCAL_API_KEYexported to scheduled pipe subprocesses (unified env var)- Pipes whose config lives in the encrypted
store.binresolve presets correctly at start screenpipe://viewdeep 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 screenpipeandnpm i -g @screenpipe/cliwired correctly via the wrapper bin
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
