Open-source, Memory-efficient & usable version of Windows Recall — lightweight background capture + timelapse summaries, built for daily use. 🚀
- 📸 Capture desktop screenshots as WebP (small, fast).
- 🔎 Detect meaningful changes using dhash_bits (OpenCV) — fast perceptual hash; ignores tiny cursor flickers.
- 🗄️ Store images + metadata (timestamp, session, wintitle, app name) in an SQLite index.
- 🎞️ Build 15-min detailed clips and a short daily timelapse summary (timelapse speed derived from summary FPS vs detailed FPS).
- 🔁 Robust backlog processing: missed videos/summaries are queued and created on next run.
- 🖱️ System tray app to control / exit the recorder easily.
-
📜 Scrollable Timeline View
- Navigate through your day visually with a smooth, zoomable timeline.
- Jump to exact sessions (15-min detailed clips or daily summaries).
- Filter by app name, window title, or time range.
-
🔎 Query the Database
- Built-in query console to search the SQLite metadata:
- Example: “Show all Chrome windows between 2–4 PM”
- Example: “List apps I used more than 30 mins today”
- Fast results with indexed lookups.
- Built-in query console to search the SQLite metadata:
-
📤 Export Data as CSV
- Export metadata (timestamp, app name, window title, etc.) into a clean CSV.
- Perfect for analytics in Excel / Power BI / Python notebooks.
- Optional: include file paths to screenshots for external use.
- Capture: lightweight background screenshots + metadata storage.
- Process: timelapse clips auto-generated daily.
- Explore: open the timeline view, scroll through your day.
- Query: filter/search by apps, titles, or times.
- Export: save your activity log to CSV for analysis or sharing.
-
🐣 Create venv & install:
uv init .venv\Scripts\activate uv sync
-
🛠️ Install ffmpeg and make sure it’s on your PATH.
-
⚙️ Edit
.config.yml(paths, fps, intervals) if needed. -
▶️ Run the tray app:uv run start_app.py
or run the
start.bator build a single exe with PyInstaller and add a shortcut to
shell:startupfor autostart. ✨
mss,Pillow,numpy,opencv-python,pystray(seepyproject.toml) ✅
- WebP for compact storage. 🗜️
- dhash_bits via OpenCV for quick, low-false-positive change detection (mouse wiggles ignored). 🧠
- SQLite DB for metadata + reliable backlog processing (never lose pending processing). 💾
- FFmpeg concat + per-image durations / fps-based timelapse to create short, watchable daily summaries. 🎬
- ⏱️ Productivity tracking — glance at a short visual timeline.
- 🎞️ Video/Recap generation — daily highlights in minutes.
- 💚 Digital wellbeing — understand app usage visually.
- Runs CPU-only (no GPU required). ⚙️
- All data stays local — privacy-first. 🔒
- Want the summary always X minutes? tweak
summary_fpsin.config.yml. ⚙️ - Want to change the capture interval? tweak
capture_intervalin.config.yml. ⚙️ - Want to change the WebP quality? tweak
webp_qualityin.config.yml. ⚙️
Sudharshan TK © 2025 — Built for simplicity & privacy. ❤️