A Chrome extension that reads Reddit posts and comments aloud with visual highlighting, voice selection, speed control, and keyboard navigation.
- Reads Reddit post titles, body text, and all comments aloud
- Natural-sounding voices with preference for enhanced TTS voices
- Adjustable speech speed (0.5x - 2x)
- Voice selection from all available system voices
- Persists your voice preference across sessions
- Highlights the currently read content on the page
- Automatic smooth scrolling to keep highlighted content visible
- 9 color themes: Auto, Orange, Gold, Blue, Green, Purple, Pink, Cyan, Sunset
- Visual theme swatches for easy selection
- Adaptive colors for light and dark Reddit themes
- Synchronized popup theme matches your highlight selection
| Shortcut | Action |
|---|---|
Enter |
Start reading |
Space |
Pause / Resume |
Escape |
Stop |
← / → |
Previous / Next item |
Shift + ←/→ |
Previous / Next top-level comment |
Ctrl + ←/→ |
Previous / Next reply |
Alt + ←/→ |
Previous / Next nested reply |
- Automatically extracts post title, body, and all comments
- Reads post author username with title (when enabled)
- Tracks comment depth (comment, reply, nested reply)
- Reads upvote counts for posts and comments
- Reads comment author usernames (optional)
- Works with Reddit's new (shreddit) interface
- Opens as a side panel for easy access while browsing
- Icon-based playback controls (prev, pause/resume, stop, next)
- Collapsible accordion sections for navigation, settings, and shortcuts
- Real-time progress indicator (X of Y items)
- Status badge with animated indicator (Ready, Playing, Paused)
- Responsive design works at any panel width
- Accessibility-first with ARIA labels and keyboard navigation
- Toggle upvotes: Choose whether to read vote counts for posts and comments
- Toggle usernames: Optionally read the author's username for the post and each comment
- Skip long comments: Set a character limit to automatically skip overly long comments (keeps highlighting in sync)
- Clone or download this repository
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked"
- Select the
voice_redditfolder
voice_reddit/
├── manifest.json # Extension configuration (Manifest V3)
├── background.js # Service worker for message routing
├── content.js # Content extraction and highlighting
├── popup.html # Side panel UI with accordions
├── popup.js # Side panel controls and state management
├── popup.css # Modern CSS with design tokens
├── offscreen.html # Offscreen document for TTS
├── offscreen.js # TTS engine and queue management
├── icons/
│ ├── icon16.png # Toolbar icon
│ ├── icon48.png # Extension page icon
│ └── icon128.png # Chrome Web Store icon
├── README.md # Documentation
└── LICENSE # MIT License
- Navigate to any Reddit post (https://www.reddit.com/...)
- Click the Reddit Reader extension icon in your toolbar
- The side panel will open on the right side of your browser
- Click "Read Thread" or press Enter to start reading
- Use the navigation buttons or keyboard shortcuts to control playback
- Voice Dropdown: Select from available TTS voices on your system
- Theme Swatches: Click a color swatch to choose your highlight theme
- Speed Slider: Adjust reading speed from 0.5x to 2x with visual markers
| Option | Default | Description |
|---|---|---|
| Read Upvotes | ON | Include vote counts when reading posts and comments |
| Read Usernames | OFF | Read the author's username for the post title and each comment |
| Max Comment Length | 0 | Skip comments longer than this character count (0 = read all) |
- Manifest V3: Uses modern Chrome extension APIs
- Offscreen Document: Required for Web Speech API in Manifest V3 (service workers don't have access to
speechSynthesis) - Side Panel API: Opens as a persistent side panel instead of popup
- Storage API: Persists user preferences (voice, theme, speed, reading options)
- Element Index Tracking: Maintains proper highlighting sync even when comments are skipped
- CSS Custom Properties: Design system with variables for consistent theming
- Accessibility: ARIA labels, focus states, reduced motion support
activeTab: Access to the current Reddit tabscripting: Inject content script for highlightingoffscreen: Create offscreen document for TTSstorage: Save user preferencessidePanel: Open as side panel
| Browser | Minimum Version | Notes |
|---|---|---|
| Chrome | 114+ | Full support |
| Edge | 114+ | Chromium-based, full support |
| Brave | 114+ | Chromium-based, should work |
Contributions are welcome! Please feel free to submit issues or pull requests.
- Fork the repository
- Create your 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.
Made with ❤️ for Reddit users who prefer listening over reading