An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

πŸ”Š say-it Β· Pronounce

Stop saying "kub-cuttle". One Bash command pronounces 544+ developer jargon names β€” with cited sources.


GitHub stars
Live site
License
Entries


🌐 pronounce.renlab.ai ·
πŸ‡¨πŸ‡³ δΈ­ζ–‡ Β·
πŸ“– Browse Β·
🎯 Quiz ·
🎀 Voice search ·
πŸ”Œ MCP server

say-it kubectl β€” terminal demo


β–Ά 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.

Star history

---

## 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

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.*