/openrewind

OpenRewind is a fully open-source, privacy-first alternative to rewind.ai. With OpenRewind, you can easily access your digital history, enhancing your memory and productivity without compromising your privacy.

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

OpenRewind

OpenRewind is an open-source alternative to rewind.ai, forked from OpenRecall.

As this project is still in its early stages, you might not see significant progress just yet.

To-dos

Update the OCR Engine

OpenRecall currently uses docTR as its OCR engine, but it performs inadequately. On my MacBook Air M2 (2022), processing a screenshot takes around 20 seconds, with CPU usage peaking at over 400%. During this time, screenshots cannot be captured, and the engine appears to recognize only Latin characters.

To address this, we plan to replace the OCR engine with a more efficient alternative that supports multiple writing systems. We are considering Tesseract, which supports multiple languages and is faster, though it still falls short of our desired results. (As reference, rewind.ai runs on same machine with avearge CPU usage of 40%)

Implement a Task Queue/Scheduler

Currently, OpenRecall's OCR recognition and database operations are synchronous (blocking). This results in increased screenshot frequency, as described in the previous section.

Our next goal is to introduce a task queue to handle high-load tasks (such as OCR, indexing, and archiving) asynchronously. This will ensure that time-sensitive tasks (like capturing screenshots) are prioritized.

Improve the Frontend

The current frontend of OpenRecall is quite basic. Given my expertise in web development, I will build a more robust frontend from scratch, using Python solely as a daemon/backend server.

We are also considering using Electron to deliver a near-native experience, aiming to match the functionality of rewind.ai.

Add More Features

We will be implementing the feature list proposed in the OpenRecall repository. Stay tuned for updates.

THE FURTHER FUTURE: Deployment & Refactoring

We are exploring ways to simplify the download, installation, and usage of this Python-based program, especially as we introduce new technologies (such as web dev / Electron).

Initially, we are considering Docker as a deployment solution. Docker Desktop is available for macOS and Windows users and offers a more user-friendly experience compared to command-line Python installations and dependency management.

However, Docker is a temporary solution. In the future, we plan to transition OpenRewind to the Electron technology stack and gradually migrate Python components to Node.js.