Effortlessly scan QR codes and extract text from your screen. SayaLens is a streamlined cross-platform system tray app that makes screen scanning simple and efficient. Available for both macOS and Windows, just select any area of your screen and let SayaLens do the work instead of manually typing URLs or copying text from images.
Built with privacy in mind, all processing happens locally on your device. Whether you're capturing text from documents, scanning QR codes from presentations, or extracting information from screenshots, SayaLens provides quick, accurate results without the hassle.
- π QR Code Scanning: Quickly scan QR codes from any part of your screen
- π Fast OCR: Instant text recognition and extraction from images
- π₯οΈ Screen Area Selection: Intuitive drag-to-select interface with React UI
- πΌοΈ Multi-Display Support: Automatically detects and captures from the active monitor where your cursor is located
- π₯οΈ Cross-Platform Support: Lives in your system tray on both macOS and Windows for instant access
- π Clipboard Integration: Automatically copy results to clipboard
- π Privacy First: All processing happens locally on your device - no data leaves your machine
- β‘ Lightweight: Minimal system resources usage for optimal performance
- π¨ Clean UI: Beautiful, intuitive interface with modern shadcn/ui components
- π Multi-Language Support: OCR supports 14+ languages including English, Arabic, Chinese, and more
- π Dark/Light Mode Support: Automatically adapts tray icon to system appearance on macOS and Windows
- π· TypeScript: Full type safety and better development experience
Get the latest version of SayaLens:
If you find SayaLens useful, consider supporting the development:
- Linux Support: Expand platform compatibility to include Linux alongside the current macOS and Windows support
- Framework: Electron with electron-vite
- Frontend: React 19 with TypeScript
- UI Components: shadcn/ui with Tailwind CSS
- OCR Engine: Tesseract.js
- QR Scanner: jsQR
- Image Processing: Sharp
- macOS 10.15 or later
- Node.js 18 or later
- Yarn package manager (recommended) or npm
- Windows 10 or later
- Node.js 18 or later
- Yarn package manager (recommended) or npm
-
Clone the repository
git clone https://github.com/nafplann/SayaLens.git cd SayaLens -
Install dependencies
yarn install # or npm install -
Run in development mode
yarn dev # or npm run dev -
Build for production
yarn build # or npm run build -
Create distributable packages
yarn dist # or npm run dist
-
Launch the app - The SayaLens icon will appear in your system tray (menu bar on macOS, system tray on Windows)
-
Grant permissions - When first running, you may be prompted to grant screen recording permissions:
- Open System Preferences (or System Settings on macOS 13+)
- Navigate to Privacy & Security β Screen Recording
- Add and enable SayaLens
- Restart the application
- No additional permissions required - SayaLens works out of the box
- Windows may show a security warning on first launch - click "More info" and "Run anyway" to trust the application
- Click the SayaLens icon in your system tray
- Select "Scan QR"
- Drag to select the area containing the QR code
- Release to scan - the result will be displayed in a modern React UI and copied to your clipboard
- Click the SayaLens icon in your system tray
- Select "Capture Text"
- Drag to select the text area
- Release to extract - the text will be displayed in a beautiful interface
SayaLens automatically detects which monitor you're actively using and provides seamless multi-display support:
- Smart Display Detection: The capture window automatically appears on the display where your mouse cursor is located
- Accurate Screen Capture: Captures content from the correct monitor, even with different resolutions and scaling factors
- Consistent Window Positioning: Result and about windows appear on the same display where you performed the capture
- Cross-Monitor Compatibility: Works perfectly with mixed display setups (different resolutions, orientations, and DPI settings)
How it works:
- When you trigger a capture (via menu or keyboard shortcut), SayaLens detects your cursor position
- The capture overlay appears on the active monitor
- Screen capture is performed from the correct display with proper scaling
- Result windows appear on the same monitor for a consistent workflow
- macOS: Cmd+Shift+1 (QR scan) / Cmd+Shift+2 (text capture)
- Windows: Ctrl+Shift+1 (QR scan) / Ctrl+Shift+2 (text capture)
- Escape: Cancel current selection
- Drag & Release: Select area and process
- Click Copy: Copy result to clipboard
- Copy and Close: Copy result and close the window
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for new functionality
- Run type checking (
yarn typecheck) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow existing code style and patterns
- Use TypeScript for type safety
- Follow React best practices and hooks patterns
- Use shadcn/ui components when possible
- Add unit tests for new features
- Update documentation for user-facing changes
- Test on multiple platforms (macOS and Windows) when possible
This project is licensed under the MIT License - see the LICENSE file for details.
- electron-vite - Fast build tool for Electron apps
- React - UI framework
- shadcn/ui - Beautiful UI components
- Tailwind CSS - CSS framework
- Tesseract.js - OCR functionality
- jsQR - QR code detection
- Sharp - Image processing
- Electron - Cross-platform desktop framework
- TypeScript - Type safety
Made with β€οΈ from Makassar, Indonesia for users who need quick access to modern screen scanning tools.
