Local Lens is the AI-powered home for your photos. Sort by face, location, and date entirely offline.
macOS and Linux support coming soon
See how Local Lens organizes thousands of photos in seconds:
Screenshots are for illustration. UI evolves with every update.
| 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) |
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.
Manual photo sorting is tedious. Cloud solutions get expensive and risk your privacy.
Local Lens brings enterprise-grade AI directly to your desktop. No subscriptions, no upload times, no data harvesting.
- 🔒 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.
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.
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
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 │ |
│ └─────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────┘
- 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
- 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
- Geolocation:
reverse_geocoderfor location data - Server:
uvicornASGI server
- Python Bundling: PyInstaller for creating standalone executables
- Desktop Packaging: Tauri for cross-platform application packaging
- Installer Generation: Platform-specific installers (.msi, .dmg, .deb, .AppImage)
- No prerequisites - The distributed application includes all dependencies
- Visit the Releases page
- Download the installer for your platform:
- Windows:
Local_Lens_x.x.x_x64_en-US.msi - macOS: Releasing soon
- Linux: Releasing soon
- Windows:
- Run the installer and follow the setup wizard
- Launch Local Lens from your applications menu
This method is for developers who want to run the latest code or contribute to the project. It enables hot-reloading for both the frontend and backend.
First, ensure you have all the required software installed.
# 1. Clone the repository
git clone https://github.com/ashesbloom/LocalLens.git
cd LocalLens
# 2. Set up the Python backend
cd backend
python -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
# source venv/bin/activate
pip install -r requirements.txt
cd ..
# 3. Set up the Node.js frontend
cd frontend
npm install
cd ..You will need two separate terminals to run the application in development mode.
Terminal 1: Start the Backend Server
cd backend
# Activate your virtual environment if not already active
venv\Scripts\activate
# Start the server with hot-reloading
uvicorn main:app --reloadThe backend will be running on http://127.0.0.1:8000.
Terminal 2: Start the Frontend Application
cd frontend
npm run tauri devThis will open the Local Lens desktop application, which will automatically connect to your running backend server. Changes to the Python code will auto-reload the backend, and changes to the React code will auto-reload the frontend.
- Node.js (v18 or higher) - Download
- Rust (latest stable) - Install via rustup
- Python (3.11 or higher) - Download
- Git - Download
- Visual Studio Build Tools or Visual Studio Community
- Install "C++ CMake tools for Visual Studio" workload
- Or install standalone: Microsoft C++ Build Tools
- CMake - Download
- Xcode Command Line Tools - Install
- CMake - Install via Homebrew
brew install cmake- Build essentials and development tools
sudo apt update
sudo apt install build-essential cmake libopenblas-dev liblapack-dev
sudo apt install python3-dev python3-venv pkg-config- Development tools and dependencies
# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install cmake openblas-devel lapack-devel python3-devel
# Fedora
sudo dnf groupinstall "Development Tools"
sudo dnf install cmake openblas-devel lapack-devel python3-devellocal-lens/
├── backend/ # Python FastAPI backend
│ ├── main.py # Main FastAPI application
│ ├── organizer_logic.py # Core photo organization logic
│ ├── enrollment_logic.py # Face recognition training
│ ├── exceptions.py # Custom exception classes
│ ├── requirements.txt # Python dependencies
│ ├── long_path_manifest.xml # Windows long path support
│ └── venv/ # Python virtual environment
├── frontend/ # React + Tauri frontend
│ ├── src/ # React source code
│ │ ├── App.jsx # Main application component
│ │ ├── components/ # React components
│ │ └── assets/ # Static assets
│ ├── src-tauri/ # Tauri configuration
│ │ ├── src/ # Rust source code
│ │ │ └── lib.rs # Main Rust application
│ │ ├── tauri.conf.json # Tauri configuration
│ │ ├── Cargo.toml # Rust dependencies
│ │ └── icons/ # Application icons
│ ├── package.json # Node.js dependencies
│ └── vite.config.js # Vite configuration
├── docs/ # Documentation
├── LICENSE # MIT License
└── README.md # This file
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test thoroughly on your target platform(s)
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.
- face_recognition - Facial recognition library
- Tauri - Desktop application framework
- FastAPI - Modern Python web framework
- React - Frontend framework
- Vite - Build tool and development server
- 📧 Email: mayankpandeydk123@gmail.com
- 🐛 Bug Reports: GitHub Issues
- 📖 Documentation: Project Wiki
⛓️💥 Engineered with purpose by Mayank Pandey
If you found my project useful, please consider supporting me so I can build more projects like this, cuz I'm broke af:






