Skip to content

Releases: ilyafainberg/TotalRecall

TotalRecall v1.2.0

Choose a tag to compare

@ilyafainberg ilyafainberg released this 30 Jun 01:02

TotalRecall v1.2.0

A big browse-experience + performance release. The Browse pane is faster and simpler on large databases, screenshots load lazily, and there's an in-app updater.

What's new

Search & browse

  • Simpler, faster search. The fiddly start-date + count + Day/Week/Month controls are gone. There's now a single Time range dropdown — Any time · Today · Last 24 hours · Last 7 days · Last 30 days · This year · Custom… — that defaults to Last 7 days so opening the app never scans your whole database. Picking a range searches immediately (no separate Filter button). Custom… reveals two date pickers and tolerates an inverted from/to range.
  • Sortable columns. Click the When / Title / App headers to sort, with a ▲/▼ indicator.
  • Clear loading state. While a query runs, the panels clear and show a plain "Loading…" label instead of a spinning wait-cursor, and overlapping searches (e.g. rapid range changes) no longer get stuck in a loading loop.
  • Single Start / Stop button. The two header buttons are now one toggle, and Quit moved into the ☰ menu.

Performance

  • Screenshots split into their own table. JPEG blobs moved out of the main windows table into a 1:1 window_images side table. The windows b-tree stays small, so metadata/search scans are dramatically faster on multi-GB databases. Existing databases keep working — old inline images still render via a fallback.
  • Lazy image loading. The results list and search never carry image bytes; a screenshot is fetched only when you actually select a row.
  • Query tuning. Newest-first ordering now walks the primary key instead of sorting a joined column, plus temp_store=MEMORY and a larger page cache — the difference between an instant Browse load and a multi-second hang on a large DB.

Updates & polish

  • In-app updater. ☰ → Check for updates… queries the GitHub Releases API, and downloads the new portable build with a live progress bar.
  • Clickable About with the project link and author credit.
  • Result limit moved to Settings (out of the search bar).
  • JPEG-quality slider ignores the mouse wheel so scrolling Settings can't nudge it; the Store JPEGs checkbox is no longer clipped.
  • Cleaner splitter — the chunky Win32 "barbell" cursor is replaced by the standard resize cursor, shown only over the divider.
  • Activity log now trims to the last 4,000 lines (matching its ring buffer).
  • Corrected encryption note — changing the encryption mode/passphrase re-encrypts the existing database in place.

Artifacts

  • 🟢 Inno Setup installer (recommended) — TotalRecall-1.2.0-Setup.zip. Unzip, then run the installer inside. Single-file, per-user install, no admin/UAC. (Shipped inside a ZIP so SmartScreen / Edge / Chrome don't flag the raw .exe as "not commonly downloaded".)
  • Portable ZIP — TotalRecall-1.2.0-Portable-win-x64.zip. Extract anywhere stable, run TotalRecall\TotalRecall.exe. Self-contained, no install, no Add/Remove Programs entry.
  • MCP server only — TotalRecall-Mcp-1.2.0-win-x64.zip. Standalone MCP server bundle for users who already have a TotalRecall DB and only need the AI-agent integration.

All artifacts are self-contained — no .NET runtime required.

Upgrading from 1.1.x

settings.json and the MCP tool surface are unchanged. The database schema gains the window_images table automatically on first open; your existing captures (including old screenshots) keep working. New captures store images in the side table — the existing file only shrinks as retention runs.

TotalRecall v1.1.1

Choose a tag to compare

@ilyafainberg ilyafainberg released this 15 Jun 18:44

TotalRecall v1.1.1

UX polish + stability fixes that surfaced after v1.1.0 went live.

What's new

  • Smooth tray transitions. Hiding the window to the system tray no longer flickers (window briefly reappearing before vanishing) and restoring from the tray no longer suffers a slow, staggered repaint. The previous code toggled Form.ShowInTaskbar, which forces WinForms to destroy and recreate the HWND of every control in the window — that's gone now, replaced by a plain Hide() / Show() pair.
  • No more Save & Close stutter / crash. Saving Settings without changing the encryption mode used to trigger a full capture-stop, services teardown, DB reopen, and capture restart — freezing the UI for up to 10 seconds and occasionally crashing on a second Save. The Settings handler now takes a fast path when nothing encryption-related changed: it just repaints the header summary and refreshes the Browse panel. The full teardown/rekey/restart cycle only fires when the encryption mode or passphrase actually changes.
  • Window title is just "TotalRecall". The encryption-state suffix in the title bar (TotalRecall (User Account Encrypted)) was only refreshed at startup, so it would lie after any encryption change. Removed entirely — current encryption state lives in the header summary, which is always up to date.

Artifacts

  • 🟢 Inno Setup installer (recommended) — TotalRecall-1.1.1-Setup.zip. Unzip, then run the installer inside. Single-file, per-user install, no admin/UAC. (Shipped inside a ZIP so SmartScreen / Edge / Chrome don't flag the raw .exe as "not commonly downloaded".)
  • Portable ZIP — TotalRecall-1.1.1-Portable-win-x64.zip. Extract anywhere stable, run TotalRecall\TotalRecall.exe. Self-contained, no install, no Add/Remove Programs entry.
  • MCP server only — TotalRecall-Mcp-1.1.1-win-x64.zip. Standalone MCP server bundle for users who already have a TotalRecall DB and only need the AI-agent integration.

All artifacts are self-contained — no .NET runtime required.

Upgrading from 1.1.0

Database schema, settings.json, and the MCP tool surface are unchanged. Drop the new build over the old one and your existing DB will open as-is.

TotalRecall v1.1.0

Choose a tag to compare

@ilyafainberg ilyafainberg released this 15 Jun 13:20

TotalRecall v1.1.0

Stability release focused on encryption changes, shutdown safety, and smoother window dragging. If you ever changed the encryption mode in v1.0.x and ended up staring at a hung window or an "unable to open database" error, this is the fix.

What's new

  • Modal re-encryption with progress. Switching the encryption mode (None / User Account / Password) on a 100+ MB database used to freeze the UI for tens of seconds with no feedback. Now you get a proper modal dialog with a real progress bar driven by the rekey's temp-file growth, plus a Quit button that lets you walk away — the rekey keeps running and the app exits cleanly when it's done.
  • Encryption-change bugfix. Saving Settings with a new encryption mode could leave the database in a state that wouldn't open on the next launch (SQLite Error 14: unable to open database). The rekey path now pre-seeds the destination file with the correct cipher state so SQLCipher's ATTACH DATABASE accepts it in both directions (encrypted ↔ plaintext).
  • Auto-refresh restored after rekey. After a successful re-encryption, the results list now repopulates immediately and capture resumes if it was running — no more empty Browse pane until the next manual F5.
  • Settings: Save & Close + Cancel. Settings now has explicit Save & Close and Cancel buttons. Esc cancels. No more "did anything happen" after clicking save.
  • Smoother window dragging. Reduced UI work during the WM_NCLBUTTONDOWN / move loop so dragging the window no longer stutters when capture is running.
  • Graceful shutdown. Closing the app while a capture tick or retention sweep is in flight now waits up to 5 seconds for those tasks to drain before disposing the database. Fixes the occasional "background tasks still running" crash on exit.
  • Persistent app log. Every activity-log line is also mirrored to %LOCALAPPDATA%\TotalRecall\app.log (auto-rolled at 1 MB) and unhandled exceptions on every thread are now logged. Makes post-mortem debugging actually possible.

Artifacts

  • 🟢 Inno Setup installer (recommended) — TotalRecall-1.1.0-Setup.zip. Unzip, then run the installer inside. Single-file, per-user install, no admin/UAC. (Shipped inside a ZIP so SmartScreen / Edge / Chrome don't flag the raw .exe as "not commonly downloaded".)
  • Portable ZIP — TotalRecall-1.1.0-Portable-win-x64.zip. Extract anywhere stable, run TotalRecall\TotalRecall.exe. Self-contained, no install, no Add/Remove Programs entry.
  • MCP server only — TotalRecall-Mcp-1.1.0-win-x64.zip. Standalone MCP server bundle for users who already have a TotalRecall DB and only need the AI-agent integration.

All artifacts are self-contained — no .NET runtime required.

Upgrading from 1.0.x

Database schema, settings.json, and the MCP tool surface are unchanged. Drop the new build over the old one and your existing DB will open as-is.

TotalRecall v1.0.1

Choose a tag to compare

@ilyafainberg ilyafainberg released this 14 Jun 23:59

TotalRecall v1.0.1

A local, searchable, encrypted index of everything that happens on your computer — with an optional MCP server so AI agents can query it.

100% on-device. No cloud. No telemetry. No AI in the loop unless you wire the optional MCP server into one.

What it does

Every N seconds (default 10), TotalRecall walks every visible top-level window, takes a screenshot, runs OCR over the pixels, and stores the result (title, app, JPEG preview, full text) in an encrypted SQLite database on your machine. Then you can search across years of activity in milliseconds with SQLite FTS5 — by free text, by app, by date range — and see the original screenshot for any hit.

If you want, you can also point an AI agent at the included MCP server and ask things like "what was that error message I saw in VS Code last Tuesday around 4pm" in natural language.

Highlights

  • Encrypted at rest. SQLite + SQLCipher (AES-256). Three key modes: none, Windows-account (DPAPI, silent unlock), or passphrase (prompted at launch).
  • Single-window WinForms UI. Compact capture status bar in the header (status pill, interval / JPEG / encryption summary, last-snapshot stamp, Start/Stop). Browse-first three-pane workspace: results · zoomable preview · collapsible OCR text. Hamburger menu for Activity Log, Settings, Open DB Folder.
  • Zoomable preview with pan. Fit / 25 / 50 / 75 / 100 / 150 / 200% via slider, Ctrl + + / Ctrl + - / Ctrl + 0, and Ctrl + mouse wheel. When zoomed past the viewport, a hand cursor lets you click-and-drag to pan the image.
  • Full-text search over the entire archive via SQLite FTS5 with highlighted snippets. Filter by app, by free text, by sliding time window.
  • MCP server included (TotalRecall.Mcp.exe) — 6 tools (search_recall, get_window, list_snapshots, get_snapshot, list_apps, stats) for Microsoft Scout, GitHub Copilot CLI, Claude Desktop, VS Code Copilot Chat, Cursor, and any other MCP-aware client.
  • Background-friendly. System tray, Start at sign-in, auto-resume capture state across restarts.
  • Smart capture. PrintWindow with PW_RENDERFULLCONTENT (captures occluded, off-screen, and DirectComposition surfaces). A cheap visual hash skips OCR on unchanged windows. Configurable retention strips old images, then old rows, then auto-VACUUMs.
  • GPLv3. Code's on GitHub. Every non-Designer source file ships with XML doc comments and contributor notes (AppSettings has a "how to add a setting" checklist; Database has a schema overview; SnapshotService has the capture-algorithm narrative). PRs welcome.

Install

Three options — pick whichever you prefer:

  • 🟢 Inno Setup installer (recommended) — TotalRecall-1.0.1-Setup.exe. Single-file, per-user install, no admin/UAC, proper Add/Remove Programs entry.
  • Portable ZIP — TotalRecall-1.0.1-Portable-win-x64.zip. Extract anywhere stable (e.g. C:\Tools\TotalRecall\), run TotalRecall\TotalRecall.exe. No install, no registry, no Add/Remove entry.
  • MCP server only — TotalRecall-Mcp-1.0.1-win-x64.zip. Standalone MCP server bundle for users who already have a TotalRecall DB on the machine and only need the AI-agent integration. Ships its own README + a paste-into-an-agent one-shot install prompt.

All packages are self-contained — no .NET runtime required. Until binaries are Authenticode-signed, SmartScreen will flag first launch (More info → Run anyway).

Requirements

  • Windows 10 or 11, x64
  • ~120 MB free disk for install, plus database growth (~1–5 MB / hour of active capture at default settings)
  • Optional: any MCP-capable AI client if you want the natural-language query layer

Known caveats

  • DRM-protected video surfaces and some hardware-accelerated games come back as black frames from PrintWindow. Window metadata is still recorded.
  • App allow-list / block-list isn't implemented yet — if you don't want a window captured, minimise it or pause capture.

Thanks

Tesseract, SQLite + SQLCipher, ModelContextProtocol C# SDK, and the .NET team for making WinForms-on-.NET-10 actually pleasant.