https://github.com/anzy-renlab-ai/pronounce
π Pronounce developer jargon out loud. 544+ entries (kubectl, GIF, JSON, JWT, β¦), sourced with confidence levels. Bash CLI + interactive quiz + voice search + MCP server + Claude Code skill.
https://github.com/anzy-renlab-ai/pronounce
bash claude-code cli community-driven developer-experience developer-tools devops dictionary kubectl kubernetes macos mcp mcp-server open-source pronunciation pwa raycast speech-synthesis sre tts
Last synced: 13 days ago
JSON representation
π Pronounce developer jargon out loud. 544+ entries (kubectl, GIF, JSON, JWT, β¦), sourced with confidence levels. Bash CLI + interactive quiz + voice search + MCP server + Claude Code skill.
- Host: GitHub
- URL: https://github.com/anzy-renlab-ai/pronounce
- Owner: anzy-renlab-ai
- License: mit
- Created: 2026-05-16T04:56:52.000Z (19 days ago)
- Default Branch: main
- Last Pushed: 2026-05-17T09:06:39.000Z (18 days ago)
- Last Synced: 2026-05-18T10:47:40.391Z (17 days ago)
- Topics: bash, claude-code, cli, community-driven, developer-experience, developer-tools, devops, dictionary, kubectl, kubernetes, macos, mcp, mcp-server, open-source, pronunciation, pwa, raycast, speech-synthesis, sre, tts
- Language: Shell
- Homepage: https://pronounce.renlab.ai
- Size: 25.5 MB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
- Support: SUPPORT.md
Awesome Lists containing this project
README
π say-it Β· Pronounce
Stop saying "kub-cuttle". One Bash command pronounces 544+ developer jargon names β with cited sources.
π pronounce.renlab.ai Β·
π¨π³ δΈζ Β·
π Browse Β·
π― Quiz Β·
π€ Voice search Β·
π MCP server

βΆ Watch the 47-second promo (with voice) Β·
π― Try the quiz Β·
π€ Voice search
---
## π Try it in 30 seconds
```bash
git clone https://github.com/anzy-renlab-ai/pronounce.git
cd pronounce && ./install.sh
say-it kubectl
```
```
π koob control. koob control. koob control. or: cube cuddle. or: kube C T L.
```
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. Not on macOS? The dictionary works in the browser at **[pronounce.renlab.ai](https://pronounce.renlab.ai)** β same audio, no install.
> β If `say-it kubectl` saves you one cringey standup moment β **[star the repo](https://github.com/anzy-renlab-ai/pronounce)**. It nudges more devs to contribute their favorite mispronounced project name.
---
## What you're actually getting
- **544+ entries, every one sourced.** Confidence-tagged (`creator-clarified` / `community-consensus` / `contested`) with a citable URL where one exists. 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.
- **Zero deps. ~250 lines of Bash.** No npm, no sudo, no surprises. Wraps the `say` engine that's already on your Mac. Ships a [Claude Code skill](skills/pronounce-word/SKILL.md) and an [MCP server](mcp-server/) so your AI answers "how do you pronounce X?" with **audio**, not a phonetic guess.
```bash
$ 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-JoyNuQJs
```
---
## 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.
## Famous moments
Some pronunciations aren't opinions β the creators settled them. The dictionary cites every one:
| Word | Reading | Source |
|------|---------|--------|
| `GIF` | "jif" (creator says so) | [Steve Wilhite, Webby Awards 2013](https://www.nytimes.com/2013/05/22/business/media/creator-of-the-gif-says-its-pronounced-jif.html) |
| `JSON` | "jay-son" | [Douglas Crockford, RailsConf 2009](https://www.youtube.com/watch?v=-C-JoyNuQJs) |
| `GNU` | "g-noo" (hard G, one syllable) | [GNU Project official](https://www.gnu.org/gnu/pronunciation.html) |
| `Linux` | "LIN-ux" (short i, schwa) | [Linus Torvalds himself](https://www.youtube.com/watch?v=5IfHm6R5le0) |
| `LaTeX` | "lay-tek" (or "lah-tek") | [Leslie Lamport, official](https://www.latex-project.org/about/) |
| `Django` | "JANG-go" (silent D) | [Django FAQ](https://www.djangoproject.com/foundation/faq/) |
| `Vue` | "view" (one syllable) | [Evan You, Vue docs](https://vuejs.org/) |
| `Vite` | "veet" (French for *quick*) | [Vite docs](https://vitejs.dev/) |
| `Knative` | "KAY-native" (the K is voiced) | [Knative docs](https://knative.dev/) |
| `etcd` | "et-cee-dee" (et-cetera-distributed) | [etcd FAQ](https://etcd.io/docs/v3.5/faq/) |
Every dictionary entry includes a `source_url`. Run `say-it --why ` to see it.
## Install (macOS)
The "Try it in 30 seconds" block above has the full install. `./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](https://claude.com/claude-code), a `pronounce-word` skill at `~/.claude/skills/pronounce-word/` so any "how do you say X?" prompt to your AI gets answered with **audio** instead of IPA.
Make sure `~/.local/bin` is on your `$PATH`. Not on macOS? Use the browser version at **[pronounce.renlab.ai](https://pronounce.renlab.ai)** β same dictionary, same audio.
## Usage
```bash
say-it kubectl # primary Γ 3, then "or: " 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 130 Knative # slower (130 wpm; default is 175)
say-it -o /tmp/word.aiff Postgres # save to file instead of playing
say-it --list # all macOS voices
```
The default voice is `Samantha` (General American). Pass `-v ` 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 ζδΉει³` / `θ―»δΈδΈ X`
- `how 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`](skills/pronounce-word/SKILL.md).
## How the dictionary works
`data/pronunciations.tsv` is the single source of truth β tab-separated, 70+ entries at v0.1, 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 `say` engine. Zero dependencies.
- β
**544+** project / product / jargon entries with cited sources.
- β
**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, Continue.
- β
**π Live site** β [pronounce.renlab.ai](https://pronounce.renlab.ai) (every word browsable, audio, source citation) + [/zh.html](https://pronounce.renlab.ai/zh.html) (Chinese landing).
## What's coming
See [`DESIGN.md`](DESIGN.md) for the architecture.
- **πͺ Windows support** via PowerShell + `System.Speech.SpeechSynthesizer`, same CLI flags.
- **βοΈ Cloud TTS** (opt-in ElevenLabs / OpenAI) for the names native TTS still mangles.
- **π§ Linux backend** (`espeak-ng`, then cloud).
- **π `say-it update`** to pull the latest dictionary without reinstalling.
- **π Anki export** for vocabulary drills.
## Contributing
Two things we want most:
1. **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 in `alt_*` columns and we'll wire `--alt` through.
2. **Non-Mac backends.** Windows and Linux are top priority. See `DESIGN.md` Β§Backends.
Keep it tiny. Keep it dep-free where possible. Keep the defaults opinionated (3 reps, GenAm, Samantha voice).
## Contributors
Every entry, source upgrade, and skill fix counts. Open a PR β your face shows up here.
## License
MIT β see [LICENSE](LICENSE).
---
> *IPA is a reference. Audio is a teacher.*