Skip to content

Ahmed-Rahil/Visual-Memory-Search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 Visual Memory Search

A powerful tool to search your screenshot history using natural language, understanding both text and visual content.

Python Version Status License


Visual Memory Search GUI

✨ Features

  • 🧠 Hybrid Search: Combines AI analysis of image pixels and OCR text for highly accurate results.
  • 🖥️ Intuitive GUI: A simple and clean web interface built with Streamlit for easy searching.
  • ⌨️ Powerful CLI: A full-featured command-line interface for scripting and power users.
  • 🤖 Automated Indexing: A background "watcher" automatically detects and indexes new screenshots.
  • 🔒 Local First: All models and data are processed locally on your machine. Nothing is sent to the cloud.

🚀 Getting Started

Follow these steps to get the project running on your local machine.

Prerequisites

  • Python 3.9 or higher
  • Git

Installation

  1. Clone the Repository:

    git clone https://github.com/Ahmed-Rahil/Visual-Memory-Search.git
    
    cd visual-memory-search
  2. Create and Activate a Virtual Environment:

    # macOS / Linux
    python3 -m venv .venv
    source .venv/bin/activate
    
    # Windows
    python -m venv .venv
    .\.venv\Scripts\activate
  3. Install Dependencies:

    pip install -r requirements.txt
  4. Add Your Screenshots: Place any images you want to index into the screenshots/ folder.


🖥️ How to Use

You can run this project in two ways. The GUI is recommended for the best experience.

GUI Application (Recommended)

This method requires two separate terminals running simultaneously.

  1. Start the Automated Watcher (Terminal 1): This script monitors your screenshots folder and automatically indexes new images. Keep it running in the background.

    python watcher.py
  2. Launch the GUI (Terminal 2): This will start the Streamlit web server and open the application in your browser.

    streamlit run app.py

Command-Line Interface (CLI)

For scripting or terminal-based workflows, use the unified CLI.

  • Index a Folder (One-Time Scan):

    python vms/main.py index --path /path/to/screenshots
  • Search from the Terminal:

    python vms/main.py search "a python function with a for loop"
  • Watch a Folder (CLI version):

    python vms/main.py watch

🛠️ Configuration

Project settings can be modified in the config.yaml file:

  • embedding_model: The AI model to use.
  • database: The path for the vector database.
  • default_screenshots_folder: The default folder to index and watch.

Contibution

Contribution is most welcome. Create an Issue if you have suggestion and create a pull request if you have some contibution.

About

Search your screenshot history using natural language queries for both text content AND visual elements.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages