🔊 say-it · Pronounce
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Stop saying "kub-cuttle". One Bash command pronounces 1,903 developer jargon names — most with a cited source.
🌐 pronounce.renlab.ai ·
🇨🇳 中文 ·
📖 Browse ·
🎯 Quiz ·
🎤 Voice search ·
🔌 MCP server
· ⚙️ GitHub Action
▶ Watch the 47-second promo (with voice) ·
🎯 Try the quiz ·
🎤 Voice search
---
🚀 Try it in 30 seconds
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 kubectl saves you one cringey standup moment — **star the repo**. It nudges more devs to contribute their favorite mispronounced project name.
---
🏆 The developer pronunciation scoreboard
**1,903 entries — 1,283 carry a citable source** — **108 settled by the creator themselves**, **175 the community still argues about.** The famous ones:
✅ Settled — the creator said so
| Word | It's… | …not | Settled by |
|------|-------|------|-----------|
| **GIF** | "jif" | "ghif" (hard-G speech cue) | Steve Wilhite (creator), NYT 2013 |
| **nginx** | "engine X" | "n-jinx" | NGINX official |
| **YAML** | "yam-ul" | "yammel" | yaml.org |
| **GNU** | "guh-NEW" (hard g) | "noo" | GNU Project |
| **LaTeX** | "lay-tek" | "lay-teks" | Lamport / LaTeX project |
| **TOML** | rhymes with "knoll" | "tom-el" | Tom Preston-Werner (creator) |
| **Tcl** | "tickle" | "T-C-L" | John Ousterhout (creator) |
| **awk** | "auk" (like the bird) | "A-W-K" | Aho / Weinberger / Kernighan |
⚔️ Still contested — both readings are in active use
| Word | Camp A | Camp B |
|------|--------|--------|
| **kubectl** | "koob-control" | "cube-cuddle" |
| **SQL** | "sequel" | "S-Q-L" |
| **JSON** | "JAY-son" | "JEE-son" |
| **GUI** | "gooey" | "G-U-I" |
| **JWT** | "jot" (per RFC 7519) | "J-W-T" |
Every cell has IPA and audio; 1,283 also carry a citable source. **Browse all 1,903 entries →**
> 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,903 entries — 1,283 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. --solo skips the tail once you've internalized it.
- **One Bash CLI, no npm runtime.** No sudo, no framework bootstrap, no surprises. It detects macOS say, Linux espeak-ng/espeak, or Windows PowerShell System.Speech. The repo also ships a Claude Code skill and an MCP server so your AI answers "how do you pronounce X?" with **audio**, not a phonetic guess.
- **A docs-native GitHub Action.** Scan Markdown changed by a pull request and emit a sourced pronunciation glossary in the job summary — no API key, dependency install, or network request.
- **Canonical website audio.** The site plays each committed canonical MP3 first and uses Web Speech only as a fallback if playback fails.
---
Why 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.