Skip to content

Repository files navigation

Smart Screenshot Manager

A local-first desktop application that automatically organizes, indexes, searches, and understands screenshots using OCR and AI.

Features

Implemented

  • Screenshot Folder Monitoring — Automatically detects new screenshots in a user-selected folder using filesystem watching (notify crate)
  • Auto-Indexing — SHA-256 hashing and SQLite storage with deduplication
  • OCR Text Extraction — Tesseract OCR integration with automatic text extraction on new screenshots, confidence scoring, and WebP format support
  • Full-Text Search — SQLite FTS5-powered search across OCR text and filenames with BM25 relevance ranking, debounced instant search, and snippet support
  • Advanced Filters — Date range, OCR status, OCR confidence threshold, file size range, category dropdown, tag search, and sort options (date/filename/size/relevance, ascending/descending) with a collapsible filter panel
  • AI Classification — OpenRouter-powered (GPT-4o-mini) automatic categorization, tag generation, and summary creation with auto-classify toggle, manual single/batch triggers, and Settings UI for API key management
  • Batch OCR — Run OCR on all previously indexed screenshots that lack OCR text
  • Screenshot Grid View — Responsive grid with thumbnails, file metadata, OCR status badges, category badges, tags, summaries, and collapsible OCR text preview
  • Dark/Light Theme — Toggle between dark and light themes with localStorage persistence, using Tailwind CSS dark: variant pattern
  • Keyboard Shortcuts — Extended shortcut set: / (focus search), Esc (clear/exit), Ctrl+B (sidebar), Ctrl+F (filters), Ctrl+1/2/3/4 (views), Ctrl+A (select all), Delete (delete selected), Ctrl+Shift+O (batch OCR), Ctrl+Shift+A (batch AI)
  • Bulk Actions — Multi-select mode with checkbox overlay, select all, and bulk delete
  • Settings — Change watched folder, view OCR engine status, trigger batch processing, toggle theme, view keyboard shortcuts reference, and monitor indexing statistics
  • Cloud Sync — Bidirectional sync of screenshot metadata and image files via Supabase, with email/password + GitHub OAuth authentication, cross-device access, auto-sync toggle, and cloud data management
  • Analytics Dashboard — Usage tracking with overview stats (total screenshots, storage, OCR/AI coverage), screenshots over time (30-day bar chart), activity by hour, category distribution (donut chart), top tags (horizontal bar chart), OCR confidence distribution, and file size distribution, all powered by Recharts
  • First Launch Setup — Native folder picker dialog for selecting the screenshot folder on first run
  • Persistent State — Watched folder path and SQLite database persist across app restarts

Planned

  • Public launch (Phase 8)

Tech Stack

  • Desktop: Tauri v2, React 19, TypeScript, Vite, Tailwind CSS v4
  • State: Zustand, TanStack Query
  • Cloud: Supabase (PostgreSQL, Auth, Storage)
  • Charts: Recharts
  • Database: SQLite (local, via rusqlite)
  • OCR: Tesseract OCR (subprocess-based, hybrid detection)
  • File Watching: notify crate with debounce
  • Image Processing: image crate (WebP conversion)

Prerequisites

  • Node.js 22+
  • Rust (stable)
  • Tesseract OCR — Install for OCR text extraction
    • Windows: winget install UB-Mannheim.TesseractOCR
    • The app auto-detects Tesseract at common install paths or via PATH

Setup

npm install
npm run dev          # Start Vite dev server
npx tauri dev        # Launch Tauri desktop app

Build

npm run build        # Build frontend (tsc + vite)
cargo build          # Build Rust backend only
npx tauri build      # Build complete desktop app for production

How It Works

  1. First Launch — Pick a folder to monitor (e.g., your Screenshots folder)
  2. Initial Scan — Existing screenshots are indexed with SHA-256 deduplication
  3. Live Monitoring — New screenshots are detected within ~1 second, hashed, and indexed
  4. OCR Processing — Tesseract extracts text from each new screenshot in a background thread
  5. Search — Search across all extracted OCR text from the screenshot grid

Architecture

See ARCHITECTURE.md for the full design.

Roadmap

See ROADMAP.md for the development roadmap.

About

A local-first desktop application that automatically organizes, indexes, searches, and understands screenshots using OCR and AI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages