Memento  by apirrone

Python app for recording and LLM-based recall of computer activity

created 2 years ago
635 stars

Top 53.2% on sourcepulse

GitHubView on GitHub
Project Summary

Memento is a Python application designed for personal data recall, enabling users to record their computer activity, search through it, and interact with a Large Language Model (LLM) to find past information. It targets users who need to retrieve details about their digital history, offering a "time travel" experience for their computer usage.

How It Works

Memento captures screenshots every two seconds, compiling them into efficient h264 video segments. It then employs Optical Character Recognition (OCR) via Tesseract to extract text from these images. This extracted text is indexed in a SQLite3 database and a vector database, utilizing FTS5 for text searching. For conversational recall, it integrates with OpenAI's GPT API.

Quick Start & Requirements

  • Install via pip: pip install -e .
  • System dependency: Tesseract OCR (version 5.x.x recommended) with necessary language packs (e.g., tesseract-ocr-eng).
  • Environment variable: TESSDATA_PREFIX must be set to the Tesseract data path.
  • OpenAI API key required for LLM chat functionality, set as OPENAI_API_KEY.
  • Run background process: memento-bg
  • Run timeline interface: memento-timeline
  • Official assets: Demo Video

Highlighted Details

  • Records approximately 120MB of data per hour.
  • Timeline navigation with horizontal/vertical scrolling and zoom.
  • Hover previews and direct navigation to specific points in time.
  • Search functionality via Ctrl+F and chat interface via Ctrl+T.
  • Text selection and copying directly from screenshots.

Maintenance & Community

  • Project is open for contributions via pull requests to the dev branch.
  • No specific community channels or notable contributors are listed in the README.

Licensing & Compatibility

  • The README does not explicitly state a license.

Limitations & Caveats

The project is still under active development, with ongoing work to reduce disk space usage and optimize CPU performance. The TESSDATA_PREFIX environment variable setup might require system-specific path adjustments.

Health Check
Last commit

1 year ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
19 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.