LuxShot
Minimalist macOS OCR tool. Open-source, privacy-first, and built with SwiftUI.
Install / Use
/learn @lukebuild/LuxShotREADME
<div align="center">
<img src="LuxShot/Assets.xcassets/AppIcon.appiconset/icon_128x128.png" alt="LuxShot Icon" width="120">
<h1>LuxShot</h1>
<p>
<strong>A minimalist, native menu bar OCR & screen capture tool for macOS.</strong>
<br>
Built with SwiftUI & Vision Framework. Privacy-first & Open Source.
</p>
<p>
<img src="https://img.shields.io/badge/Platform-macOS_13+-000000?style=for-the-badge&logo=apple&logoColor=white" alt="Platform">
<img src="https://img.shields.io/badge/License-GPLv3-blue?style=for-the-badge&logo=gnu&logoColor=white" alt="License">
<img src="https://img.shields.io/badge/Swift-6.2-F05138?style=for-the-badge&logo=swift&logoColor=white" alt="Swift">
</p>
<br>
<img src="screenshot.webp" alt="LuxShot Screenshot" width="100%" style="border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,0.15);">
</div>
<br>
Features
- 🖥️ Menu Bar Workflow: Unobtrusive menu bar app that stays out of your way.
- ⚡ Instant OCR: Select any screen region to instantly recognize text using Apple's Vision framework.
- 📸 QR & Barcode Scanning: Automatically detects and decodes QR codes and barcodes.
- ✨ Smart Formatting:
- Keep/Remove Line Breaks: Toggle to preserve original formatting or flow text into a single paragraph.
- Auto-Open Links: Detects URLs in captured text and opens them in your browser.
- Auto-Copy: Automatically copies recognized text to clipboard.
- 🔊 Text-to-Speech (TTS): Read recognized text aloud with a single click.
- 📜 History Management: Keeps a history of recent scans for easy access.
- 🔒 Privacy First: All processing happens on-device. No data is sent to the cloud.
🚀 Installation for Users
Since LuxShot is an open-source project and not distributed via the App Store, you might encounter a security warning when opening it for the first time. This is normal for apps not notarized by Apple.
- Go to the Releases page and download the latest
.zipfile. - Drag
LuxShot.appto your Applications folder. - Right-click (or Control-click) on
LuxShot.appand select Open. - You will see a dialog saying "LuxShot cannot be opened because the developer cannot be verified".
- Click Open (or "Open Anyway").
- Note: If you don't see the "Open" option, go to System Settings > Privacy & Security > Scroll down to Security section > Click "Open Anyway" for LuxShot.
Once you do this once, macOS will remember your choice and you can open the app normally in the future.
🛠️ Usage
- Launch LuxShot: The app runs in your menu bar (look for the [ ] icon).
- Capture:
- Press
Cmd + Shift + E(Global Shortcut) - Or click "New Scan" in the menu bar popover.
- Press
- Select: Drag to select a region on your screen.
- Done: Text is instantly recognized and copied to your clipboard (if Auto-Copy is on).
🏗️ Technology Stack
- Language: Swift 6.2
- UI Framework: SwiftUI + AppKit (NSPopover, NSStatusItem)
- OCR Engine: Vision Framework (
VNRecognizeTextRequest) - Barcode Detection: Vision Framework (
VNDetectBarcodesRequest) - Audio: AVFoundation (
AVSpeechSynthesizer)
🔨 Building from Source
- Clone the repository.
- Open
LuxShot.xcodeprojin Xcode. - Ensure the Signing Team is set to your developer account (or None for local testing).
- Build and Run (Command + R).
📋 Requirements
- macOS 13.0 (Ventura) or later.
📜 License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
🤝 Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Maintained by @lukebuild
