Highlights text progressively at a set pace in Reading View — like the Speechify "follow along" effect, but with no TTS/audio, just a visual pacer you control.
- Two-tone highlighting — subtle wash across the current sentence, darker highlight on the active word/phrase, continuous (no gaps between words).
- Floating control panel (SVG icons, no emoji) — restart, previous/next
sentence, play/pause, speed −/+, progress (
sentence/total), exit. - Draggable panel — position persists across sessions.
- Collapsible — shrink to a small dot when you don't need it.
- Auto-hides after a few seconds of inactivity; reappears on movement, stays visible while paused.
- Right-click any word to jump reading to that point.
- Separate light/dark mode colors, customizable in settings.
- Markdown-aware: rendered math (KaTeX/MathJax), embeds, and checkboxes are treated as single atomic units instead of being shredded word-by-word; hidden accessibility mirrors (e.g. KaTeX's raw-LaTeX mirror) are skipped entirely so they can't silently stall playback.
- In your vault:
<vault>/.obsidian/plugins/read-along-highlighter/ - Copy
main.jsandmanifest.jsoninto that folder. - Settings → Community plugins → enable "Read-Along Highlighter".
- Open a note, switch to Reading View, then click the ribbon icon (scan-text) or run "Start read-along highlighting" from the command palette.
- Start / Stop / Toggle read-along highlighting
- Pause / resume
- Previous sentence / Next sentence
- Words per minute (80–500)
- Words per highlight step (1–6, single word vs. short phrase)
- Sentence & word highlight colors, separately for light and dark mode
npm install
npm run build # one-off build -> main.js
npm run dev # watch mode, rebuilds on saveAfter building, copy main.js + manifest.json into your vault's plugin
folder (or symlink the whole repo folder into .obsidian/plugins/ for a
tighter dev loop).
.
├── manifest.json # Obsidian plugin metadata
├── main.js # built bundle (tracked, so the repo works standalone)
├── src/main.ts # source
├── package.json
├── tsconfig.json
└── README.md
- Reading View only — Live Preview/Edit mode isn't supported (would need CodeMirror6 decorations).
- Leaving Reading View or switching notes while running auto-stops and restores the original rendered HTML.