LocalLens
Local Lens is a privacy-first, AI-powered photo organizer for your PC. Sort and group photos by faces, dates, and locations—all locally, with no cloud upload. Enjoy a modern, intuitive UI and keep your memories organized and secure on your own device.
Install / Use
/learn @ashesbloom/LocalLensREADME
Local Lens
Quick Install ⇣
macOS (Homebrew) — Recommended
brew install local-lens
Homebrew handles Gatekeeper automatically — no extra steps needed!
macOS (Manual DMG)
- Download the
.dmgfrom Releases - Drag Local Lens to Applications
- Fix Gatekeeper (required for unsigned apps):
- Download and double-click
Fix_Local_Lens.commandfrom the release
- Download and double-click
- If macOS blocks double-click:
bash ~/Downloads/Fix_Local_Lens.command - Or: Right-click the app → Open → Click "Open"
- Or run in Terminal:
xattr -cr "/Applications/Local Lens.app" && codesign --force --deep --sign - "/Applications/Local Lens.app"
Windows
Download and run the .msi or .exe installer from Releases.
🖥️ Software Preview
See how Local Lens organizes thousands of photos in seconds:
<p align="center"> <img src="https://github.com/ashesbloom/LocalLens/blob/main/assets/preview1.png?raw=true" alt="Local Lens Main Dashboard" width="250"/> <img src="https://github.com/ashesbloom/LocalLens/blob/main/assets/preview2.png?raw=true" alt="Face Recognition in Local Lens" width="250"/> <img src="https://github.com/ashesbloom/LocalLens/blob/main/assets/preview3.png?raw=true" alt="Photo Organization by Location" width="250"/> </p>Different Modes & Themes
<p align="center"> <img src="https://github.com/ashesbloom/LocalLens/blob/main/assets/preview4.png?raw=true" alt="Different Modes of Local Lens" width="520" style="display:block; margin: 0 auto 16px auto;"/> </p> <p align="center"> <img src="https://github.com/ashesbloom/LocalLens/blob/main/assets/preview5.png?raw=true" alt="Dark Mode Interface" width="250"/> <img src="https://github.com/ashesbloom/LocalLens/blob/main/assets/preview6.png?raw=true" alt="Light Mode Interface" width="250"/> </p>Screenshots are for illustration. UI evolves with every update.
🆚 Why Local Lens?
| Feature | ☁️ Cloud Services (Google/iCloud) | 🔒 Local Lens | | :--- | :--- | :--- | | Privacy | Your photos are scanned for ads/data | 100% Private. Zero data leaves your PC. | | Cost | Monthly Subscription ($$$) | Free & Open Source | | Storage | Limited (15GB cap) | Unlimited (Limited only by your HDD) | | Speed | Depends on Internet speed | Instant (Local Processing) | | AI Processing | Server-side | On-Device (CNN & HOG Models) |
🎯 Vision & Purpose
Local Lens revolutionizes photo management with intelligent, privacy-first automation. Designed for photographers, data hoarders, families, and anyone with terabytes of digital memories, it transforms overwhelming photo organization into an effortless, secure experience.
The Problem
Manual photo sorting is tedious. Cloud solutions get expensive and risk your privacy.
The Solution
Local Lens brings enterprise-grade AI directly to your desktop. No subscriptions, no upload times, no data harvesting.
Core Features
- 🔒 100% Offline AI: All facial recognition and analysis runs on your hardware.
- 👤 Face Recognition: Train the AI to recognize friends and family.
- 🗺️ Location Intelligence: Visualizes where your photos were taken (GPS clustering).
- 📅 Smart Timeline: Auto-sorts messy folders into chronological order.
- ⚡ Lightning Search: Dynamic filtering by date, location, or person.
- 🔄 Non-Destructive: Your original files are never modified; we only organize.
🧠 Under the Hood: The "Enhanced Automatic Strategy"
How do we keep it fast without crashing your PC? Local Lens uses an adaptive, two-pass strategy:
- The Speed Pass (HOG): We scan images using a lightweight algorithm (Histogram of Oriented Gradients). If a face is clearly visible, we log it.
- The Precision Pass (CNN): If the first pass is unsure, we escalate to a Convolutional Neural Network (CNN) for high-precision detection.
- Intelligent Fallback: If your hardware runs out of memory, the system automatically adjusts to a lighter model instantly.
This guarantees the best possible result for every photo, adapting to your specific hardware.
🖼️ Supported Formats
Whether you shoot on an iPhone or a DSLR, we've got you covered:
.jpg, .jpeg, .png, .gif, .bmp, .tiff, .webp, .heic, .heif
RAW Support: .dng, .cr2, .cr3, .nef, .arw, .raf, .avif, .psd
🏗️ Architecture
Local Lens uses a hybrid architecture combining the best of web and desktop technologies:
┌───────────────────────────────────────────────────┐
│ Tauri Desktop App │
│ ┌─────────────────────────────────────────────┐ │
│ │ React Frontend (UI) │ |
│ │ • Modern React with Hooks │ |
│ │ • Vite for fast development │ |
│ │ • Real-time communication with backend │ |
│ └─────────────────────────────────────────────┘ │
│ | | |
│ ┌─────────────────────────────────────────────┐ │
│ │ Python Backend (Sidecar) │ |
│ │ • FastAPI REST server │ |
│ │ • AI face recognition engine │ |
│ │ • Image processing pipeline │ |
│ │ • Metadata extraction & analysis │ |
│ └─────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────┘
🛠️ Technology Stack
Frontend
- Framework: React.js with modern hooks
- Build Tool: Vite for fast development and building
- Desktop Framework: Tauri (Rust-based) for native desktop integration
- UI Components: Custom components with CSS modules
- State Management: React hooks with localStorage persistence
Backend
- Language: Python 3.11+
- API Framework: FastAPI for high-performance REST API
- AI/ML Libraries:
face_recognition- Facial detection and recognitiondlib- Computer vision and machine learning toolkitnumpy- Numerical computing
- Image Processing:
Pillow- Python Imaging LibraryPillow-HEIF- HEIF/HEIC format supportrawpy- RAW image format support (Windows)Wand- ImageMagick binding for RAW support (macOS/Linux)
- Geolocation:
reverse_geocoderfor location data - Server:
uvicornASGI server
Build & Distribution
- Python Bundling: PyInstaller for creating standalone executables
- Desktop Packaging: Tauri for cross-platform application packaging
- Installer Generation: Platform-specific installers (.msi, .dmg, .deb, .AppImage)
📋 Prerequisites
For Normal Users
- No prerequisites - The distributed application includes all
Related Skills
bluebubbles
353.1kUse when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
slack
353.1kUse when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
claude-opus-4-5-migration
111.6kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
111.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
