A mind of its own

Your screen,
remembered.

Thousands of screen-moments, connected like neurons — running entirely on your machine.

pip install screenmind
1,500+ downloads · MIT · runs on 4 GB VRAM
Understand

Every synapse
is a moment.

One local model reads every frame — apps, text, mood, layout — and remembers what it means.

Learn how it works ↯
Automate

Agents that live
in your memory.

Drop a Markdown file and it runs on your screen history — no code needed.

Build an agent ↯
Private

All in your
head. Literally.

Zero cloud. Zero telemetry. Your mind stays yours.

See how it stays private ↯
Deep dive

Under the hood

A quick tour of how ScreenMind turns a screen into memory — enough to understand it, without the internals you'd need to rebuild it.

┌ Capture ───┐   ┌ Analyze · one GPU ───┐   ┌ Store ───┐
│ dedup      │──▶│ OCR → Gemma 4 → embed │──▶│ SQLite   │──▶  Search · Chat
│ a11y+redact│   └───────────────────────┘   │ + FTS5   │      Agents · MCP
└────────────┘          ▲                     └──────────┘
                        └── Chat · Voice · Meetings share the same model

Capture → memory

1
Smart capture
A worker watches the screen and only saves when it meaningfully changes (perceptual hashing), auto-pausing on games/editors and skipping blocked apps.
2
Read the screen
Accessibility APIs and OCR pull the on-screen text, handed to the model as context so it spends its budget understanding, not reading.
3
Redact secrets
A filter strips cards, SSNs, API keys and passwords before anything is stored or sent to the model.
4
Understand
Gemma 4 turns the frame + text into structured meaning — app, activity, summary, mood, layout.
5
Index
A MiniLM embedding (on CPU) plus a full-text index land in local SQLite, powering hybrid semantic + keyword search.

One model, one GPU

Everything — screen vision, meeting audio, chat and summaries — runs on a single local Gemma 4 model. The interesting part is sharing one GPU gracefully:

Footprint

Fun fact: “fast” mode pre-fills an empty <think></think> block so the model skips its own reasoning and answers immediately — that's most of the jump from ~76s down to ~12s per frame.
GitHubPyPIWalkthroughRaise an issueXLinkedInEmail
ScreenMind — 100% local, MIT-licensed.
↯ back to the brain