https://github.com/tks18/open-memory-lane
Open Source, Memory Efficient Version of Windows Recall made with Python
https://github.com/tks18/open-memory-lane
ffmpeg opencv python recall windows-recall
Last synced: about 2 months ago
JSON representation
Open Source, Memory Efficient Version of Windows Recall made with Python
- Host: GitHub
- URL: https://github.com/tks18/open-memory-lane
- Owner: tks18
- License: gpl-3.0
- Created: 2025-08-20T16:23:24.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-09-02T04:05:35.000Z (10 months ago)
- Last Synced: 2025-09-06T21:25:09.128Z (10 months ago)
- Topics: ffmpeg, opencv, python, recall, windows-recall
- Language: Python
- Homepage:
- Size: 475 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](http://commitizen.github.io/cz-cli/) [](https://github.com/semantic-release/semantic-release)
# π§ Open Memory Lane
**Open-source, Memory-efficient & usable version of Windows Recall** β lightweight background capture + timelapse summaries, built for daily use. π
---
## β¨ What it does
- πΈ 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.
---
## π₯οΈ Client-side features
- π **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.
- π€ **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.
---
## π§© End-to-end workflow
1. **Capture**: lightweight background screenshots + metadata storage.
2. **Process**: timelapse clips auto-generated daily.
3. **Explore**: open the timeline view, scroll through your day.
4. **Query**: filter/search by apps, titles, or times.
5. **Export**: save your activity log to CSV for analysis or sharing.
---
## βοΈ Quick start
1. π£ Create venv & install:
```bash
uv init
.venv\Scripts\activate
uv sync
```
2. π οΈ Install **ffmpeg** and make sure itβs on your PATH.
3. βοΈ Edit `.config.yml` (paths, fps, intervals) if needed.
4. βΆοΈ Run the tray app:
```bash
uv run start_app.py
```
or run the `start.bat`
or build a single exe with PyInstaller and add a shortcut to `shell:startup` for autostart. β¨
---
## π¦ Minimal dependencies
- `mss`, `Pillow`, `numpy`, `opencv-python`, `pystray`
(see `pyproject.toml`) β
---
## π― Key design choices
- **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. π¬
---
## π§° Use cases
- β±οΈ **Productivity tracking** β glance at a short visual timeline.
- ποΈ **Video/Recap generation** β daily highlights in minutes.
- π **Digital wellbeing** β understand app usage visually.
---
## π Notes
- Runs CPU-only (no GPU required). βοΈ
- All data stays local β privacy-first. π
- Want the summary always X minutes? tweak `summary_fps` in `.config.yml`. βοΈ
- Want to change the capture interval? tweak `capture_interval` in `.config.yml`. βοΈ
- Want to change the WebP quality? tweak `webp_quality` in `.config.yml`. βοΈ
---
Sudharshan TK Β© 2025 β Built for simplicity & privacy. β€οΈ
[](https://github.com/sudharshan-tk/open-memory-lane)
---