Pronounce / pronounce-mcp
π Try it in 30 seconds
git clone https://github.com/anzy-renlab-ai/pronounce.git
cd pronounce && ./install.sh
say-it kubectl
That's it. Now try say-it GIF, say-it nginx, say-it Pydantic, say-it --why JSON, or say-it quiz for a 10-question challenge. Linux users: install espeak-ng (sudo apt install espeak-ng) and the CLI just works. Windows: same CLI under WSL or git-bash + PowerShell. Or skip install and use the browser at pronounce.renlab.ai.
β If
say-it kubectlsaves you one cringey standup moment β star the repo. It nudges more devs to contribute their favorite mispronounced project name.
Related MCP server: wordorb
π The developer pronunciation scoreboard
1,848 entries β 1,229 carry a citable source β 86 settled by the creator themselves, 169 the community still argues about. The famous ones:
β Settled β the creator said so
Word | It'sβ¦ | β¦not | Settled by |
"jif" | "gif" (hard g) | Steve Wilhite (creator), NYT 2013 | |
"engine X" | "n-jinx" | NGINX official | |
"yam-ul" | "yammel" | yaml.org | |
"guh-NEW" (hard g) | "noo" | GNU Project | |
"lay-tek" | "lay-teks" | Lamport / LaTeX project | |
rhymes with "knoll" | "tom-el" | Tom Preston-Werner (creator) | |
"tickle" | "T-C-L" | John Ousterhout (creator) | |
"auk" (like the bird) | "A-W-K" | Aho / Weinberger / Kernighan |
βοΈ Still contested β both readings are in active use
Word | Camp A | Camp B |
"koob-control" | "cube-cuddle" | |
"sequel" | "S-Q-L" | |
"JAY-son" | "JEE-son" | |
"gooey" | "G-U-I" | |
"jot" (per RFC 7519) | "J-W-T" |
Every cell has IPA, audio, and the source. Hear all 1,848 β
Disagree with one? That's the whole point β open a PR with your reading and a source. The argument is the dataset.
What you're actually getting
1,848 entries β 1,229 carry a citable source. Confidence-tagged (
creator-clarified/community-consensus/contested), each with a citable URL where one exists (we'd rather leave it blank than fabricate one). Wilhite said GIF is "jif" at the 2013 Webby Awards. Crockford says JSON is "JAY-son" (RailsConf 2009). RFC 7519 says JWT is "jot". The dictionary cites them.Multi-reading audio. For words where the debate is real β GIF, SQL, GUI, char, regex β the CLI chains the alternates after the primary with a spoken "or:" so you hear the debate without staring at the terminal.
--soloskips the tail once you've internalized it.Zero deps. ~250 lines of Bash. No npm, no sudo, no surprises. Wraps the
sayengine that's already on your Mac. Ships a Claude Code skill and an MCP server so your AI answers "how do you pronounce X?" with audio, not a phonetic guess.
$ say-it --why JSON
word JSON
ipa /ΛdΚeΙͺsΙn/
respelling_us jay son
source Douglas Crockford (RailsConf 2009)
url https://www.youtube.com/watch?v=-C-JoyNuQJsWhy not just Google?
Because Google gives you 47 Reddit arguments and a YouTube clip you have to unmute. IPA gives you /ΛkuΛb kΙnΛtroΚl/ β a reference, not a teacher.
You don't need a phonetic transcription. You need to hear the word. Twice. Maybe three times. Done.
say-it ships a community-maintained dictionary of how engineers actually say the names that trip everyone up β and feeds the intended respelling to your OS's text-to-speech engine, so kubectl comes out as koob-control, not whatever your computer guessed from the letters.
Famous moments
Some pronunciations aren't opinions β the creators settled them. The dictionary cites every one:
Word | Reading | Source |
| "jif" (creator says so) | |
| "jay-son" | |
| "g-noo" (hard G, one syllable) | |
| "LIN-ux" (short i, schwa) | |
| "lay-tek" (or "lah-tek") | |
| "JANG-go" (silent D) | |
| "view" (one syllable) | |
| "veet" (French for quick) | |
| "KAY-native" (the K is voiced) | |
| "et-cee-dee" (et-cetera-distributed) |
Every dictionary entry includes a source_url. Run say-it --why <word> to see it.
Install (macOS)
brew install anzy-renlab-ai/tap/say-it # HomebrewOr the "Try it in 30 seconds" block above. ./install.sh drops:
the CLI at
~/.local/bin/say-it,the pronunciation dictionary at
~/.local/share/say-it/pronunciations.tsv,if you use Claude Code, a
pronounce-wordskill at~/.claude/skills/pronounce-word/so any "how do you say X?" prompt to your AI gets answered with audio instead of IPA,the same skill into
~/.agents/skills/(Codex CLI) and~/.kiro/skills/(Kiro) when those dirs exist β it's the cross-tool Agent Skills standard.
Make sure ~/.local/bin is on your $PATH. Linux also works β install espeak-ng (sudo apt install espeak-ng / brew install espeak-ng). Windows: WSL or git-bash + PowerShell. Or skip install entirely with the browser version at pronounce.renlab.ai.
Usage
say-it kubectl # primary Γ 3, then "or: <alt>" for each alternate
say-it --solo kubectl # primary only β silence the "or:" tail
say-it --alt GIF # focus on the first alternate
say-it --alt 2 GUI # focus on the Nth alternate (1-indexed)
say-it --all SQL # primary AND every alternate, each repeated
say-it --no-dict kubectl # bypass the dictionary entirely
say-it --why JSON # show IPA, source URL, category, confidence
say-it list # every word in the dictionary
say-it search redis # grep the dictionary (case-insensitive)
say-it -n 5 Pydantic # 5 repetitions instead of 3
say-it -r 110 Knative # slower (110 wpm; default is 130)
say-it -o /tmp/word.aiff Postgres # save to file instead of playing
say-it --list # all macOS voicesThe default voice is Samantha (General American). Pass -v <voice> for any other macOS voice β but the dictionary is GenAm-only, by design.
Claude Code integration
You: kubectl ζδΉθ―»οΌ
Claude: π (plays "koob-control" three times)
/ΛkuΛb kΙnΛtroΚl/ β "KOOB-control". Kelsey Hightower says it
this way (KubeCon talk). "Cube-cuddle" is an alternate β
try `say-it --alt kubectl` to hear it.Once installed, the pronounce-word skill auto-triggers on:
X ζδΉθ―»/X ζδΉει³/θ―»δΈδΈ Xhow do you pronounce X/pronounce X/how do you say X
Your AI replies with sound, not just a phonetic guess. Skill file: skills/pronounce-word/SKILL.md.
Not on Claude? Same skill drops into Codex CLI (codex plugin marketplace add anzy-renlab-ai/pronounce) and Kiro (~/.kiro/skills/), and the MCP server covers Claude Desktop, Cursor, Continue, Zed, Cline & friends β full matrix in integrations/.
VS Code extension

Hover over any tech word in any file β see the IPA, hear the pronunciation. Same 1,848-entry dictionary as the CLI, JSON-bundled at build (zero runtime parse cost).
# Cursor / VSCodium / Zed / Gitpod / Theia / code-server (Open VSX)
code --install-extension sayit.pronounce
# or the listing: https://open-vsx.org/extension/sayit/pronounceNow live on Microsoft Marketplace too: ext install sayit.pronounce in VS Code. See marketplace listing.
Hover over
kubectl,YAML,Ghostty,wagmiβ¦ β tooltip with IPA + π Play + β Star link.ββ§' β speak selection.
Status bar
π sayitβ click to speak the current selection.Welcome walkthrough β 4-step onboarding on first install.
Pronounce: Search dictionaryβ¦β fuzzy-find all 1,848 entries.
Source: integrations/vscode/. Cross-platform as of v0.3 β macOS say, Linux espeak-ng, Windows PowerShell.
Chrome / Edge / Brave extension
Click any tech word on any webpage β popup with IPA + audio. Same 1,848-entry dictionary; same Web Speech API as pronounce.renlab.ai. Sideload only for now (not yet on Chrome Web Store).
Download pronounce-chrome-0.3.0.zip β unzip β chrome://extensions/ β Developer mode β Load unpacked.
Source: integrations/chrome/.
How the dictionary works
data/pronunciations.tsv is the single source of truth β tab-separated, 1,848 entries, covering:
Cloud / DevOps:
kubectl,nginx,Kubernetes,helm,Istio,Envoy,Prometheus,Grafana,Terraform,Argo,Knative,etcd,containerd,runc,Podman, ...Languages / Frameworks:
Django,Vue,Vite,Pydantic,Bun,Deno,Hugo,Hono,Caddy,Svelte,Astro,Pinia, ...Databases:
PostgreSQL,Postgres,SQLite,MySQL,MongoDB,Cassandra,Redis,Ceph,ScyllaDB,ClickHouse,DuckDB, ...CS jargon / acronyms:
GIF,JSON,SQL,GUI,GNU,char,regex,sudo,tmux,chmod,WYSIWYG,ASCII,enum,NaN,SaaS,PaaS, ...Distros / tools:
Linux,Debian,Ubuntu,Arch,Nix,LaTeX,TeX,emacs,zsh, ...
Each entry has 10 columns: word | ipa | phon_us | alt_ipa | alt_phon_us | source_url | source_label | category | confidence | notes. The phon_us column is Apple's Speech Synthesis phoneme set, injected into say via [[inpt PHON]]β¦[[inpt TEXT]]. This is what gives the intended reading rather than whatever the TTS would have inferred from the letters.
Local override: drop a ~/.config/say-it/pronunciations.local.tsv and it takes precedence.
What works today
β macOS β any word, via the built-in
sayengine. Zero dependencies.β 1,229 of 1,848 entries carry a citable source β the rest are confidence-tagged, no fabricated citations.
β Audible multi-reading awareness β contested words audibly chain alternates with "or:".
β
--alt [N],--all,--solo,--why,--json,--md,--no-dict,list,search,quiz,repl,stream,doctor,export,benchmark,badge,cheatsheet.β Claude Code skill + MCP server for AI-side pronunciation questions.
β Browser PWA β installable, offline-capable, instant search, voice-mic search, interactive quiz.
β Editor integrations β Raycast, Alfred, VS Code, Cursor, Codex, Kiro, Continue.
β π Live site β pronounce.renlab.ai (every word browsable, audio, source citation) + /zh (Chinese landing).
What's coming
See DESIGN.md for the architecture.
βοΈ Cloud TTS (opt-in ElevenLabs / OpenAI) for the names native TTS still mangles.
π Anki export for vocabulary drills.
π Light theme on the v2 homepage (already shipped on word/SEO pages).
Shipped since this list was written: Windows (PowerShell) + Linux (
espeak-ng) backends, andsay-it update(now a fast dictionary refresh;--fullreinstalls the CLI).
Contributing
Two things we want most:
Pronunciation entries. Open a PR adding a row to
data/pronunciations.tsv. Required columns:word,ipa,phon_us. Highly preferred:source_url(creator interview, conf talk, official FAQ β anything verifiable). Contested readings are welcome; put the rival inalt_*columns and we'll wire--altthrough.Backend quality. macOS (
say) is the gold standard; the Linux (espeak-ng) and Windows (PowerShell) backends ship but are best-effort β help us close the gap. SeeDESIGN.mdΒ§Backends.
Keep it tiny. Keep it dep-free where possible. Keep the defaults opinionated (3 reps, GenAm, Samantha voice).
β Support β start with a star
The dictionary is free and MIT. The single highest-leverage thing you can do is star the repo β it's the signal that pulls in more contributors, more PRs, more creator-clarified entries.
β Star on GitHub β β one click, no signup, biggest effect.
Optional, if it's saved you real standup pain:
β Coffee on Ko-fi β pays for one new entry per cup.
π Sponsor on GitHub β recurring tier (pending Sponsors approval).
Dollars cover hosting (Vercel/Cloudflare/Open VSX), domain renewals, MiniMax narration credits for promo videos, and time to track down creator citations for new entries.
Contributors
Every entry, source upgrade, and skill fix counts. Open a PR β your face shows up here.
License
MIT β see LICENSE.
IPA is a reference. Audio is a teacher.
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/anzy-renlab-ai/pronounce'
If you have feedback or need assistance with the MCP directory API, please join our Discord server