Skip to content

Latest commit

 

History

History
110 lines (75 loc) · 2.5 KB

README.md

File metadata and controls

110 lines (75 loc) · 2.5 KB

SnipAI

SnipAI is your screenshot companion that runs entirely on your MacOS machine.

Take screenshots, let local AI describe and tag them, then find them instantly through semantic search - all without sending your data anywhere.

Youtube Demo below Demo Video

Graph View Graph View

Features

  • Take, organize, and search for screenshots in a PyQt application
  • All local small language models
  • Use ollama for all generation tasks:
    • moondream for generating description from images - super fast and accurate
    • qwen2:1.5b for image tagging - super fast and good at structured outputs
  • Search images by natural language using binary vector embeddings
  • Interactive graph view to explore similar screenshots (work in progress)

Installation

Prerequisites

  1. Install Python 3.11.10 using pyenv (recommended):
brew install pyenv

pyenv install 3.11.10

# Set Python 3.11.10 as your global version (optional)
pyenv global 3.11.10
  1. Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Install LLVM 14:
brew install llvm@14
  1. Install Poetry
curl -sSL https://install.python-poetry.org | python3 -
  1. Configure Poetry to use Python 3.11.10:
poetry env use 3.11.10

poetry run python --version  # Should output: Python 3.11.10
  1. Download ollama for MacOS

Setting up snipai

  1. Clone the repository:
git clone [email protected]:tisu19021997/snipai.git
cd snipai
  1. Install dependencies using Poetry:
poetry install
  1. Download required AI models using Ollama (or snipai will when app starts):
ollama pull moondream
ollama pull qwen2:1.5b
ollama pull mxbai-embed-large
  1. Activate the Poetry environment:
poetry shell
  1. Run SnipAI:
python -m snipai.app

Roadmap

  • Graph view improvements
    • UX
    • Switch to image embeddings from text descriptions
  • Native OS metadata integration - file over app
    • Sync tags to file system
  • Obsidian integration development