
Markdown Read Aloud
Free neural text-to-speech (TTS) for Markdown — no API key, no sign-up.
Listen to your Markdown instead of reading it. Markdown Read Aloud turns any
.md file into a beautiful reader view and reads it as clean, natural speech using
high-quality neural voices — for free. Built for the age of AI-generated docs,
when you have more Markdown to get through than time to read it: skim long READMEs,
specs and ADRs by ear, or proofread your own writing by listening to it.

Free neural voices, no API key
A free, no-sign-up alternative to ElevenLabs, Speechify and Azure TTS for reading
Markdown aloud. Every other way to get natural voices in VS Code makes you pay or sign
up; the free options sound robotic. Markdown Read Aloud gives you neural quality for free,
with zero setup.
|
Voice quality |
Cost |
Setup |
| Markdown Read Aloud |
🟢 Neural |
🟢 Free |
🟢 None |
| ElevenLabs / Speechify / Azure |
🟢 Neural |
🔴 Paid API key |
🟡 Account + key |
| System / OS-voice extensions |
🔴 Robotic |
🟢 Free |
🟢 None |
It uses Microsoft Edge's neural voices — the same models behind Azure's "natural" voices —
through the same endpoint Edge's own Read Aloud uses. No account, no key, nothing to configure.
Natural text-to-speech, built for Markdown
- 🎧 Cloud-quality voices, free. Genuinely expressive neural text-to-speech, not the robotic system voice.
- 📖 A real reader, not a raw preview. Your document renders as clean, styled prose —
no
#/*/[]() noise — with the spoken sentence highlighted in place and gentle
auto-scroll that follows the voice.
- 🌍 Automatic language detection. Reads German with a German voice, English with
an English voice, and so on across 75 languages — detected from the file itself.
One consistent voice per document by default; optional per-paragraph switching for
mixed-language files.
- ♀ ♂ Curated voices, not a wall of options. One great female and one great male
voice per language by default. Power users can still pick any voice.
- ⏩ Speed & start point you control. 0.5×–2.5× live, start from the cursor, a
selection, any heading — or click any sentence to read from exactly there.
- 🔖 Picks up where you left off. Every document remembers your last position.
- 🧹 Handles messy Markdown. Headings, lists, links, tables, code fences and
special characters become prose for the voice, never syntax.
- 🎚️ Keeps playing in the background — with a play/pause mini-player in the
VS Code status bar, the reader tab doesn't even need to be visible.
Automatic language detection across 75 languages
The document's language is detected from its text and matched to a native voice
automatically — including German, Spanish, French, Italian, Portuguese, Dutch, Polish,
Russian, Japanese, Chinese, Korean and more. No setting to flip. By default one
consistent voice reads the whole document (easiest to follow); for mixed-language files
you can switch the voice per paragraph to match each paragraph's language.
Read aloud from cursor, selection, or any heading
- Open a Markdown file.
- Run a command (Command Palette, or the 🔊 speaker icon in the editor title bar):
- Read Aloud: Read Whole Document
- Read Aloud: Read from Cursor —
Ctrl+Alt+R (Cmd+Alt+R on macOS)
- Read Aloud: Read Selection (right-click a selection)
- The reader opens beside your editor and starts speaking. Click any sentence to read
from there, hover a heading for ▶ Read section, drag the progress bar (headings
appear as chapter ticks) to jump anywhere.
- Play/Pause from anywhere:
Ctrl+Alt+Space, or click the status-bar mini-player.
- In the reader:
Space play/pause, ←/→ sentences, +/− speed, M mute,
F reading font, Esc stop.
A reading room inside VS Code
The reader is built for long sessions, not five-second glances:
- Follows your VS Code theme by default, with three hand-tuned reading themes —
Study (dark), Daylight (light) and Paper (sepia).
- Four bundled reading fonts — Literata, Inter, Atkinson Hyperlegible (built for
maximum legibility) and IBM Plex Mono — plus Compact / Cozy / Wide comfort presets.
- Reading follows you, not the other way around. Scroll wherever you like while
listening; a quiet “Back to reading” pill glides you back to the spoken sentence.
- Ambient focus dims everything but the sentence being read.
- Collapsible sections with per-section reading times, and a sleep timer
(stop after the current section, or 15/30/60 minutes with a gentle fade).
Proofread with your ears, fix with one click
Hearing your own text catches the mistakes your eyes skip. When you hear one:
- Alt+Click the sentence → the editor opens at exactly that source line.
- Or hit the ✏️ edit button → the source opens beside the reader at your current
sentence, and the reader re-renders live as you type — without losing your place or
interrupting playback.
- Teach the voices your jargon with the pronunciation dictionary
(
markdownReadAloud.pronunciations, e.g. { "nginx": "engine x" }) — put it in
workspace settings and your whole team shares it.
Accessibility & proofreading
Hearing text instead of reading it helps with dyslexia, low vision and reading
fatigue, and catches mistakes the eye skips — so it doubles as a proofreader for
your own docs. It's a lightweight read-aloud / screen-reader companion for the one format
developers write most: Markdown.
Engines — offline & system-voice fallback
| Engine |
Quality |
Network |
Notes |
| Edge (default) |
★★★ neural |
online |
Free, no key. Recommended. |
| Supertonic |
★★★ neural |
offline |
Fully on-device (downloads models on first use). Coming in a later update. |
| Browser |
★ system |
offline |
Your OS voices. Automatic fallback if Edge is unreachable. |
Switch via the markdownReadAloud.engine setting.
Settings
| Setting |
Default |
Description |
markdownReadAloud.engine |
edge |
TTS engine to use. |
markdownReadAloud.preferredGender |
female |
Default voice gender. |
markdownReadAloud.speed |
1.0 |
Default playback speed (0.5–2.5). |
markdownReadAloud.autoDetectLanguage |
true |
Detect the document's main language and pick a matching voice. |
markdownReadAloud.perParagraphLanguage |
false |
Switch voice per paragraph to match each paragraph's language (mixed-language docs). Off = one consistent voice (easier to follow). |
markdownReadAloud.fallbackLanguage |
en-US |
Used when detection is unreliable. |
markdownReadAloud.voiceOverrides |
{} |
Per-language voice override, e.g. { "de-DE": "de-DE-KatjaNeural" }. |
markdownReadAloud.announceHeadings |
false |
Say "Heading" before headings. |
markdownReadAloud.codeBlocks |
announce |
skip / announce / read code blocks. |
markdownReadAloud.tables |
skip |
skip / read tables. |
markdownReadAloud.highlightWhileReading |
true |
Highlight the current sentence in the reader. |
markdownReadAloud.volume |
1.0 |
Default playback volume (0–1). |
markdownReadAloud.pronunciations |
{} |
Pronunciation overrides, e.g. { "nginx": "engine x", "kubectl": "kube control" }. |
Privacy & note on the Edge engine
The Edge engine sends the text to be spoken to Microsoft's public Edge "Read Aloud"
endpoint to synthesize audio. No account or key is required and nothing else is
collected by this extension. This endpoint is the same one Microsoft Edge uses; it is
unofficial for third-party use and could change. If it becomes unavailable, the
extension automatically falls back to your system voices. For a fully offline,
no-network experience, an on-device engine (Supertonic) is planned.
❤️ Support This Project
If Markdown Read Aloud saves you time, you can support its continued development — completely optional, always appreciated:

License
MIT © Robin Reiche. See LICENSE.
| |