A Lightweight web-browser extension to read any selected text or AI chat into natural sounding audio with real-time word highlighting. Perfect for reading articles, documentation, and long conversations hands-free.
- 🎯 Instant Text-to-Speech - Convert selected text to speech with one click
- 🎨 Word-by-Word Highlighting - Visual tracking as words are spoken
- ⚡ Lightning Fast - No delays, works completely offline
- 🎛️ Smart Controls - Play, pause, stop with intuitive shortcuts
- 🌐 Universal Compatibility - Works on articles, chats, PDFs, and more
- 🆓 Completely Free - No subscriptions, no limits, no tracking
- Download the latest
zipfile for Windows &tar.gzfile for Linux from thereleasessection. - Extract the zip file in your convenient location.
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked" and select the extension folder
- The ListenUp icon will appear in your toolbar
- Select any text on any webpage
- Right-click and choose "Read Selected Text"
- Sit back and listen!
ctrl + Shift + S- Read selected textAlt + X- Pause/Resume readingCtrl + Shift + X- Stop reading
- Click the ListenUp icon in your toolbar
- Use the control buttons:
- Start Reading - Read selected text
- Pause/Resume - Toggle playback
- Stop - Stop reading
- Speed Slider - Adjust speech rate (0.5x to 2.0x)
- Background Script - Manages extension state and messaging
- Content Script - Handles text selection and highlighting
- Offscreen Document - Processes text-to-speech audio
- Popup Interface - Provides user controls and settings
- Chrome Extension Manifest V3
- Web Speech API (built-in browser TTS)
- Vanilla JavaScript (no frameworks)
- CSS3 with smooth animations
activeTab- Access currently active tab for text selectionscripting- Inject highlighting functionalityoffscreen- Audio playback for text-to-speechstorage- Remember user settings locally
listenup-tts/
├── manifest.json # Extension configuration
├── background.js # Background service worker
├── content.js # Content script for highlighting
├── content.css # Highlighting styles
├── offscreen.js # Text-to-speech processing
├── offscreen.htm # Offscreen document
├── popup.html # Popup interface
├── popup.js # Popup functionality
└── icons/ # Extension icons
├── icon-16.png
├── icon-48.png
└── icon-128.png
- Chrome Browser (version 88+)
- Basic knowledge of JavaScript and Chrome Extensions
-
Clone the repository:
git clone https://github.com/Mahmud-Mahi/ListenUp.git cd ListenUp -
Load in Chrome:
- Go to
chrome://extensions/ - Enable Developer Mode
- Click "Load unpacked" and select the project folder
- Go to
manifest.json- Extension metadata and permissionsbackground.js- Core extension logic and message handlingcontent.js- DOM manipulation for text highlightingoffscreen.js- Web Speech API integrationpopup.js- User interface controls
- Listen to research papers and articles
- Proofread essays by hearing them read aloud
- Study while multitasking
- Consume long articles during commute
- Listen to documentation while coding
- Review emails and reports hands-free
- Help users with visual impairments
- Support those with reading difficulties
- Provide alternative content consumption
We welcome contributions! Please feel free to submit pull requests, report bugs, or suggest new features.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - 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 MIT License - see the LICENSE file for details.
ListenUp respects your privacy:
- ✅ No data collection
- ✅ No tracking
- ✅ No external servers
- ✅ All processing happens locally
- ✅ Your text never leaves your device
Speech not working?
- Ensure your system has text-to-speech capabilities
- Check if audio is not muted
- Try selecting different text
Highlighting not appearing?
- Some websites restrict DOM modification
- Try on different websites to test
Extension not loading?
- Verify Chrome is updated to version 88+
- Check Developer Mode is enabled
- Ensure all files are in the correct structure
- Create an Issue
- Check existing issues for solutions
- Describe your problem with steps to reproduce
Give your eyes a break. Let ListenUp do the reading. 🎧
⭐ Star this repo if you find it useful!