A Manifest V3 Chrome extension that reads selected text or article-like page content aloud with persistent side panel controls.
Chrome TTS Reader is built for reading articles, blogs, and documentation pages with a workflow that stays lightweight: open the side panel, load the current page, listen paragraph by paragraph, and resume where you left off.
- Read selected text from the browser context menu
- Read article-like page content from the side panel
- Keep playback controls available in a persistent side panel
- Jump to the next or previous paragraph
- Pick a custom start position directly on the page
- Change voice and speech rate
- Highlight the active paragraph while reading
- Resume from the last paragraph on the same URL
- Use keyboard shortcuts for common playback actions
A quick look at the extension workflow and reader controls.
A high-level view of the project and extension experience.
The persistent side panel keeps playback actions and reading status within reach.
Switch available voices and adjust the reading speed to match your preference.
The current paragraph is highlighted on the page while playback moves forward.
Distribution channels are not published yet.
- GitHub Releases: coming soon
- Chrome Web Store: coming soon
Until packaged releases are available, use the source installation flow below.
- Chrome 114 or later
- Node.js and npm
-
Install dependencies:
npm install
-
Build the extension:
npm run build
-
Open
chrome://extensionsin Chrome. -
Enable Developer mode.
-
Click Load unpacked.
-
Select the
dist/directory.
- Click the extension action.
- The side panel opens automatically.
- Click Read Current Page.
- Use Play, Pause, Stop, Previous, and Next to control playback.
- Select text on a supported page.
- Right-click the selection.
- Choose Read selected text.
- Open the side panel.
- Click Pick Start Position.
- Click the paragraph where reading should begin.
- Choose a voice from the voice selector
- Change reading speed with the rate slider
- Reopen the same page later to continue from the saved paragraph
| Action | Windows / Linux | macOS |
|---|---|---|
| Toggle play or pause | Ctrl+Shift+Space |
Command+Shift+Space |
| Next paragraph | Ctrl+Shift+. |
Command+Shift+. |
| Previous paragraph | Ctrl+Shift+, |
Command+Shift+, |
Chrome TTS Reader uses a standard Manifest V3 split:
backgroundservice worker manages playback state, Chrome TTS integration, shortcuts, and context menu actionscontentscript extracts readable text, supports start-position picking, and manages in-page highlightingsidepanelUI provides persistent controls for reading and playback settingssharedmodules keep contracts, storage helpers, and text utilities consistent across extension parts
public/ Static extension assets, including the manifest
src/background/ Service worker and playback orchestration
src/content/ Text extraction, highlight, and start-position picking
src/sidepanel/ Side panel UI and interactions
src/shared/ Shared contracts, storage helpers, and utilities
tests/ Unit tests for playback, extraction, picking, and shared logic
npm run build— build the unpacked extension intodist/npm run dev— rebuild on file changesnpm test— run the test suite
- TypeScript
- Vite
- Vitest
- Chrome Extensions Manifest V3
@mozilla/readabilityfor article-style extraction support
- Chrome only for now
- Best suited to article, blog, and documentation pages
- Heuristic extraction may be less accurate on highly dynamic or app-like pages
- Restricted pages such as
chrome://are not supported - No cloud TTS providers
- No AI summarization, translation, or rewriting
- Publish packaged releases for easier installation
- Prepare Chrome Web Store distribution
- Improve extraction quality on more complex layouts
- Expand compatibility across a broader range of content-heavy pages
Chrome TTS Reader is licensed under the Apache License 2.0. See LICENSE for the full license text.
一个基于 Manifest V3 的 Chrome 扩展,可朗读选中文本或类文章页面内容,并提供常驻侧边栏控制。
Chrome TTS Reader 主要面向文章、博客和文档页面阅读场景,流程尽量保持轻量:打开侧边栏、加载当前页面、按段落连续朗读,并在下次回到同一页面时继续上次进度。
- 通过右键菜单朗读当前选中的文本
- 通过侧边栏朗读当前页面的正文内容
- 使用常驻侧边栏进行播放控制
- 支持上一段 / 下一段跳转
- 支持在页面中直接选择朗读起始段落
- 支持切换语音和调整语速
- 朗读时高亮当前段落
- 按 URL 记录并恢复上次朗读进度
- 提供常用播放快捷键
下面这些截图展示了扩展的主要阅读流程和控制界面。
用于快速了解项目和扩展的整体使用体验。
常驻侧边栏提供播放控制、阅读状态和当前进度信息。
可切换可用 voice,并按偏好调整朗读速度。
播放过程中,页面中的当前段落会同步高亮显示。
当前还没有发布正式分发渠道。
- GitHub Releases:即将提供
- Chrome Web Store:即将提供
在正式发布前,请先使用下面的源码安装方式。
- Chrome 114 或更高版本
- Node.js 和 npm
-
安装依赖:
npm install
-
构建扩展:
npm run build
-
在 Chrome 中打开
chrome://extensions -
打开 Developer mode(开发者模式)
-
点击 Load unpacked(加载已解压的扩展程序)
-
选择
dist/目录
- 点击扩展图标
- 侧边栏会自动打开
- 点击 Read Current Page
- 使用 Play、Pause、Stop、Previous、Next 控制播放
- 在支持的网页中选中文本
- 右键点击选区
- 选择 Read selected text
- 打开侧边栏
- 点击 Pick Start Position
- 点击希望开始朗读的段落
- 在语音选择器中切换 voice
- 使用 rate 滑块调整朗读速度
- 之后重新打开同一页面时,可从已保存的段落继续朗读
| 操作 | Windows / Linux | macOS |
|---|---|---|
| 播放 / 暂停切换 | Ctrl+Shift+Space |
Command+Shift+Space |
| 下一段 | Ctrl+Shift+. |
Command+Shift+. |
| 上一段 | Ctrl+Shift+, |
Command+Shift+, |
Chrome TTS Reader 采用标准的 Manifest V3 结构:
backgroundservice worker 负责播放状态、Chrome TTS 集成、快捷键和右键菜单动作contentscript 负责提取可读文本、支持起始段落选择,并处理页面内高亮sidepanelUI 提供常驻阅读控制和播放设置shared模块统一维护消息协议、存储辅助函数和文本工具
public/ 扩展静态资源,包括 manifest
src/background/ Service worker 与播放编排逻辑
src/content/ 文本提取、高亮与起始段落选择
src/sidepanel/ 侧边栏界面与交互
src/shared/ 共享协议、存储辅助函数与工具方法
tests/ 播放、提取、选择和共享逻辑相关测试
npm run build— 构建可加载的扩展产物到dist/npm run dev— 监听文件变化并自动重建npm test— 运行测试
- TypeScript
- Vite
- Vitest
- Chrome Extensions Manifest V3
@mozilla/readability,用于文章类内容提取支持
- 当前仅支持 Chrome
- 最适合文章、博客和文档页面
- 基于启发式规则的正文提取,在高度动态或应用型页面上可能不够稳定
- 不支持
chrome://等受限页面 - 不包含云端 TTS 服务集成
- 不包含 AI 摘要、翻译或改写能力
- 发布可直接安装的打包版本
- 准备 Chrome Web Store 分发
- 提升复杂页面布局下的正文提取质量
- 扩展对更多内容型页面的兼容性
本项目采用 Apache License 2.0 许可协议。 完整内容见 LICENSE。



