Live product · Chrome extension
Read Any Language
Highlight text anywhere on the web — in any language — and hear it read aloud in a natural voice. One button, right accent, no copy-pasting.
What's different
Vs. other read-aloud extensions
- ✓Reads in the text’s own language automatically — no language setting, and no wrong-accent robot voice mangling a foreign sentence.
- ✓Natural ElevenLabs voices from your own account, not the flat built-in system TTS most reader extensions fall back to.
- ✓Bring-your-own-key with nothing in between — your text and key go only to ElevenLabs; there’s no developer server in the middle logging what you read.
- ✓Highlight-to-listen on any site — a floating button on any selection, rather than a whole-page reader you have to launch.
The idea
Hear it, don't just read it
I read Chinese websites — and every so often I hit a character I can't pronounce and just want to hearit. And for the languages I am learning — Indonesian and Spanish — I don't want to read a sentence, I want to hear the whole thing spoken with real warmth and emotion, not the flat, robotic text-to-speech built into the browser.
The workaround was always the same clumsy dance: copy the text, paste it into some text-to-speech site, pick the language, hit play. So I built the thing I wanted instead: highlight any text, on any page, in any language, click once, and hear it — with the extension detecting the language for me.
v1
The smallest useful loop
The first version did one thing well: watch for a text selection on the page, pop a floating 🔊 button beside it, and on click send the text to ElevenLabs and play the audio back. A single multilingual model meant there was no language picker — it just matched whatever you highlighted. Your own API key, saved locally. No accounts, no backend, no build step.
Along the way
What it grew into
Always the latest models and voices
The model and voice lists are pulled live from ElevenLabs, not hardcoded — so the moment ElevenLabs ships a newer text-to-speech model (and with it broader language coverage) or adds new voices, they appear in settings automatically, no extension update required. Pick a model, see the languages it supports, and preview any voice with one click before you commit.
A spend guard
A per-selection character limit — with a live count on the button (“842 / 1000 chars”) — stops a giant accidental highlight from burning through your quota. The same cap is enforced again in the background, so an oversized request never even fires.
Speaks your language, too
Reading foreign text is the whole point — so it felt wrong for the extension’s own settings and popup to sit in English. The interface now localizes itself to the browser’s language across 30 locales — Arabic and Hebrew through Hindi, Thai, Japanese and Chinese — right-to-left layouts included, using Chrome’s built-in i18n so there’s no runtime cost.
Trade-offs
The judgment call I'm proud of
The decision I keep coming back to wasn't a feature — it was choosing not to sit in the middle of anyone's data.
Bring your own key, not my backend
I could have proxied everyone’s requests through my own ElevenLabs account and a server of mine. I deliberately didn’t: users paste their own key, and their text and key go straight to ElevenLabs and nowhere else. No backend to run, no bills to foot — and, the real win, no server of mine ever sees what anyone is reading.
Where it is now
Live on the Chrome Web Store
Read Any Language is published and installable from the Chrome Web Store: highlight text on any page, click the 🔊 button, and hear it in its own language through a natural ElevenLabs voice — with your key kept local, your quota in view, and — as of v1.2 — an interface that localizes itself into 30 languages. It's the tool I actually reach for to read through the languages I'm still learning.
Try it on your next tab
Add it to Chrome, drop in a free ElevenLabs key, and highlight a line in any language.
Add to Chrome ↗