Windrecorder tackles a problem many of us face when trying to capture and later search through screen activity: how to do it efficiently, locally, and with useful indexing. Instead of dumping large videos or relying on cloud services, Windrecorder records your screen activity on Windows, extracts text via multiple OCR engines, and stores metadata locally to let you rewind and search your visual history.
What windrecorder does and how it is built
At its core, Windrecorder is a local-first screen recording and memory search engine tailored for Windows. It acts as an open-source alternative to Microsoft’s Recall/Rewind tools but with a strong emphasis on privacy and offline use.
The project is implemented in Python and uses SQLite to store metadata about screen captures. It supports two recording modes: one based on flexible screenshots (low resource overhead) and another that records video using FFmpeg directly (higher resource use but richer data). This dual approach lets users choose between lightweight capturing and more detailed video footage.
A key feature is its multi-engine OCR indexing. Windrecorder integrates RapidOCR, WeChat OCR, and Tesseract to extract text from captured frames, indexing changes in screen content rather than recording everything blindly. This selective capture reduces storage needs and increases search relevance.
The app also includes a web UI that allows users to rewind through recorded footage, query by OCR text or image descriptions, and generate activity summaries. Optionally, it can use large language model (LLM) support to tag and summarize activities, although this is not mandatory for its core functionality.
Under the hood, all processing happens locally. The database is automatically maintained during idle times, compressing videos and cleaning expired footage, which is a practical touch for long-term usability.
Technical strengths and tradeoffs in windrecorder
What distinguishes Windrecorder is its emphasis on efficient, local-first operation with multiple OCR engines to improve text extraction accuracy. Using several OCR systems is a tradeoff: it increases complexity and resource use, but improves indexing quality and robustness across different screen content types.
The architecture is pragmatic. Using SQLite for metadata keeps dependencies minimal and reliable, though it might limit scalability if used in very large environments. However, for a personal screen recorder, this is a sensible choice.
The recording modes offer flexibility but come with tradeoffs. The screenshot mode uses less CPU and disk, suitable for continuous use, but might miss fluid motion. The FFmpeg video mode captures richer data but requires more resources and storage. This design acknowledges real-world constraints and user needs.
The code quality is solid, with a clear separation between capture, OCR processing, indexing, and UI. The web UI adds a layer of accessibility without relying on external services. The project does require Windows and specific Python versions (3.11 recommended; 3.12 not supported yet), which may limit adoption across platforms.
Storage requirements are detailed: roughly 2-100 MB per hour depending on screen activity and monitors, scaling to 10-20 GB per month, with compression reducing this footprint significantly. These figures are realistic and help set user expectations.
How to get started with windrecorder
The installation is straightforward but requires attention to dependencies:
# 🦝 Installation
- Download ffmpeg (the download file name is: `ffmpeg-master-latest-win64-gpl-shared.zip`), extract all files in `bin` directory(excluding the bin directory itself) to `C:\Windows\System32` (or other directories located in PATH)
- Install Git, just keep clicking next step.
- Install Python, make sure to check `Add python.exe to PATH` when installing.
- **Currently, Python 3.12 is not supported**. It is recommended to use python 3.11, which is the version pointed to by the link above.
- In file explorer, navigate to the directory where you want to install Windrecorder (it is recommended to place it in a partition with sufficient space), and download the app through the terminal command `git clone https://github.com/yuka-friends/Windrecorder`
- You can open the folder you want to install, enter `cmd` in the path bar and press Enter, and you will be located into current directory in terminal, then paste the above command and press Enter to execute;
- Open `install_update.bat` in the directory to install dependencies and configure the app. If everything goes well, you can start using it!
# 🦝 How to use
- Open `start_app.bat` in the directory, the tool will run on the system tray and be used through the right-click menu;
- All data (video, database, statistical information) will be stored in `userdata` directory under Windrecorder. If you want to copy or move the app location (for example, if you change the computer), you can delete `.venv` in the directory and moved, then re-run `install_update.bat` to install the virtual environment to use it;
> [!TIP]
> Best practice: Set `Run on system startup` in webui to record everything without any fuss.
>
> **Recording will be automatically paused when there is no change in the picture or the screen is sleeping. When the computer is idle and no one is using it, the tool will automatically maintain the database, compress, and clean up expired videos.**
>
> _Just set it and forget it!_
This setup requires Windows, Git, Python (preferably 3.11), and FFmpeg installed in the PATH. The batch scripts handle dependency installation and environment setup, simplifying the process for users comfortable with command-line basics.
Once running, Windrecorder sits in the system tray and captures screen data according to the configured mode. The web UI provides controls and browsing capabilities.
who windrecorder is for
Windrecorder is a good fit if you need a locally controlled, private screen recording and searchable archive solution for Windows. Its multi-engine OCR indexing and flexible recording modes offer a nuanced balance between resource use and capture fidelity.
It’s ideal for users who want to track their screen activity without sending data to cloud services, whether for personal productivity, research, or compliance. The requirement for Windows and Python 3.11 limits cross-platform use, and the storage demands mean it’s best suited for desktops or laptops with ample disk space.
The project is well-maintained and thoughtfully architected, but it does require some setup and familiarity with Windows batch scripts and Python environments, which might be a barrier for less technical users.
Overall, Windrecorder solves a real problem with a clear, practical approach. The codebase is surprisingly clean and modular for a project juggling video capture, OCR processing, and UI. If local-first screen recording with searchable history matters to you, this repo is worth a look.
→ GitHub Repo: yuka-friends/Windrecorder ⭐ 3,833 · Python