Your PC is the system of record
Screen frames, extracted text, search indexes, embeddings, settings, and local model files live under the app data directory on your Windows machine.
ScreenSearch keeps capture, OCR, storage, search, and AI inference on your Windows PC. Model downloads and signed update checks can use the network without uploading your screen history. This page explains what data exists, where it lives, and what controls are available.
Screen frames, extracted text, search indexes, embeddings, settings, and local model files live under the app data directory on your Windows machine.
ScreenSearch can skip locked sessions, excluded apps or titles, its own windows, and frames that do not pass capture rules.
The app does not rely on keyboard hooks, typed content, clipboard contents, or pointer input to build screen history.
AI inference runs locally. First-use model or binary downloads and signed release checks may use the network without sending captured context.
ScreenSearch uses the app data directory as the local boundary. The exact Windows path depends on the installed app, so this page uses <app-data> for that root.
Searchable local store
Frames metadata, extracted text, spans, search tables, vector indexes, jobs, settings, and reports live in screensearch.db.
Local screenshots
Changed frames are stored as lossless WebP files below frames/day-*/ until retention or deletion removes the image files.
Local AI files
Embedding and local answer/vision models are stored under local model directories after download.
Local inference runtime
The llama.cpp sidecar is stored locally and serves inference over loopback when local answers are enabled.
Operational diagnostics
Logs are local. Screen content and OCR text should not be written into info-level logs.
ScreenSearch treats capture as a gated pipeline. Configured app, process, and window-title exclusions are checked case-insensitively before a frame is stored.
The app initializes with capture off. Screen history starts only after the user enables capture.
Pause-on-lock, excluded apps, excluded window titles, and ScreenSearch's own windows can stop capture before text is read.
Password managers, banking apps, private browsers, medical records, client documents, and confidential work tools belong on the exclusion list.
Event-aware capture uses foreground and idle signals; it does not store typed keys, clipboard contents, clicks, scrolls, or pointer input.
The app reads accessible foreground-window text first and falls back to OCR when content only exists as pixels.
UIA can read foreground-window accessibility text without re-OCRing every pixel. Password fields are skipped, offscreen or occluded elements are dropped, and spans outside the target window are filtered out.
When useful text is only visible in an image, PDF, terminal, browser surface, or older app, native OCR turns visible pixels into local text spans for search.
The store separates raw extracted text from more useful content text, so app chrome and repeated surfaces do not have to dominate recall.
Keyword search, vector search, and retrieval metadata are built from local rows. Search answers are grounded in source frames you can inspect.
Current releases run AI through a bundled llama.cpp sidecar bound to the local machine. Network access supports model downloads and signed release checks, not remote inference over your captured context.
Text embeddings are generated locally after the model is available on the machine.
Answer and vision workflows can run through a local llama.cpp sidecar bound to loopback, such as 127.0.0.1 on an ephemeral port.
First-use model or binary setup may contact hosts such as GitHub or Hugging Face. These downloads do not upload your screen history.
The signed GitHub Releases update check uses the network to discover and download app releases without sending captured frames, OCR text, or search indexes.
Screen history can be useful and still deserve a short leash. The current app has separate behavior for screenshot images and searchable text.
Current builds default to retaining screenshot image files for 30 days. A retention value of 0 keeps image files until you delete them.
When image retention expires, the app removes the screenshot file and keeps searchable text, spans, and embeddings unless the frame itself is deleted.
Pause capture, exclude sensitive apps, and delete frames when history should not persist. For high-risk work, exclude first rather than cleaning up later.
These links point to the desktop app repository. Source evolves, so the page should be updated when privacy-relevant implementation details change.
A screen memory tool deserves scrutiny. ScreenSearch is designed so the answer to "where did my data go?" stays concrete.