Privacy-first, context-aware desktop assistant that analyzes your active window and provides contextual assistance using local LLMs.
Lens is a desktop AI assistant that helps you understand what's on your screen without sending your data to the cloud.
When you request assistance, Lens captures only the currently active window, extracts the visible text using OCR, and sends the extracted context to a locally running Large Language Model (LLM) through Ollama. The generated response is displayed in a lightweight desktop overlay, allowing you to get explanations, summaries, or coding assistance without leaving your workflow.
All processing happens locally on your machine. Screenshots are never saved unless explicitly enabled.
- 🖥️ Analyze only the active window
- 🤖 Local AI inference using Ollama
- 🔍 OCR-powered text extraction with Tesseract OCR
- 💬 Lightweight Electron overlay
- 🔒 Privacy-first local processing
- ⌨️ Toggle capture on or off instantly
- 📄 Screenshot saving disabled by default
- 🔐 Token-authenticated communication between components
- ⚡ Fast local responses with no cloud dependency
┌─────────────────────┐
│ Electron Desktop │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Flask Observer │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Capture Active │
│ Window │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ OCR (Tesseract) │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Prompt Generation │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Ollama (DeepSeek) │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Desktop Overlay │
└─────────────────────┘
Lens/
├── assistant-electron/ # Electron desktop application
├── assistant-observer/ # Flask backend, OCR pipeline and AI integration
├── assets/ # Screenshots and demo assets
├── docs/
│ ├── architecture.md
│ ├── installation.md
│ ├── privacy.md
│ ├── roadmap.md
│ └── troubleshooting.md
├── .gitignore
├── LICENSE
└── README.md
| Component | Technology |
|---|---|
| Desktop Application | Electron |
| Backend | Flask |
| AI Model | Ollama (DeepSeek R1) |
| OCR | Tesseract OCR |
| Screen Capture | MSS |
| Active Window Detection | PyGetWindow |
| Languages | Python, JavaScript |
| Communication | HTTP (localhost) |
See the complete installation guide in:
docs/installation.md
- Start Ollama.
- Start the Observer backend.
- Launch the Electron application.
- Open any application you want to analyze.
- Click Ask Assistant from the system tray.
- Read the generated summary in the desktop overlay.
Lens is designed with privacy as a core principle.
- Runs entirely on your local machine.
- No cloud APIs are used.
- Only the active window is analyzed.
- Screenshots are not saved by default.
- Communication is restricted to
127.0.0.1. - Electron and the Observer authenticate using a shared token.
For more information, see:
docs/privacy.md
Additional documentation is available in the docs directory.
- Architecture
- Installation
- Privacy
- Troubleshooting
- Roadmap
See:
docs/roadmap.md
This project is licensed under the MIT License.