Skip to main content
⭐ If this saves you from saying "kub-cuttle" one more time — star us on GitHub
▶ 47-second promo with voice

▶ 47-second promo (with voice)

    $ say-it kubectl
    🔊 koob control. koob control. koob control. or: cube cuddle. or: kube C T L.

    $ say-it GIF
    🔊 jif. jif. jif. or: gif.          # with receipts — Wilhite at the Webby Awards, 2013

    $ say-it --why JSON
    word              JSON
    ipa               /ˈdʒeɪsən/
    respelling_us     jay son
    source            Wikipedia § Pronunciation
    url               https://en.wikipedia.org/wiki/JSON#Pronunciation

## 📜 Famous moments

Some pronunciations aren't opinions — the creators settled them on record.

nginx → engine X NGINX official
GIF → jif Steve Wilhite, NYT (2013)
GNU → guh new GNU Project official
etcd → et C D etcd FAQ
PostgreSQL → post gress Q L PostgreSQL FAQ
MySQL → my S Q L MySQL docs
Debian → deb ee un Debian about
Django → jang go Django FAQ
LaTeX → lay tek LaTeX project
TeX → tek Wikipedia § Pronunciation
Lua → loo ah Lua about
What's in the box
🗂

### 993+ entries, source-cited

Project names, product names, programmer jargon, acronyms. Every entry tagged with confidence (creator-clarified, community-consensus, contested) and linked to a real source where one exists.

🔊

### Multi-reading audio awareness

When a word is contested — GIF, SQL, GUI, kubectl — the CLI audibly chains the alternates ("…or: gif"), so you hear the debate without watching the terminal.

🤖

### Claude Code skill included

Ask Claude "how do you pronounce X?" — it replies with audio, IPA, and a source citation, not a phonetic guess.

⚡

### Zero deps, ~250 lines of bash

Wraps the macOS `say` engine you already have. No npm, no sudo, no surprises.

🔁

### Pluggable alternates

`--alt` for the rival reading, `--all` for every variant, `--solo` to skip the chain, `--why` shows the dict entry with source URL.

📦

### Community-owned

The dictionary is a TSV file you can edit. Open a PR with your favorite mispronounced project — see CONTRIBUTING.md.

Heard, not just read

IPA is a reference — like a dictionary entry for a foreign word. You don't learn how to pronounce `schadenfreude` by squinting at `/ˈʃɑːdənˌfrɔɪdə/`. You learn it by hearing someone say it three times. Pronounce wires your OS's TTS to a one-shot CLI so the answer is sound, not a phonetic transcription.

Try a few

Click ▶ to hear it in your browser. (Audio quality varies by browser — install the CLI for the macOS Samantha rendering.)

See all 993 entries →

## FAQ

Why not just listen to a YouTube video?

Because you'd have to hunt for the right clip, unmute, wait, and rewind. `say-it kubectl` plays the right reading three times in 4 seconds. The site is here for when you're not at a terminal.

Why is the audio in the browser different from the CLI?

The CLI uses macOS's built-in `say` with a tuned respelling. The site uses your browser's Web Speech API, whose voice and pronunciation rules vary by OS and browser. For a contested word like `GIF` they should agree; for projects with quirky readings the CLI is the canonical one.

How is this different from a regular pronunciation dictionary?

This one is for the names engineers actually use — `kubectl`, `nginx`, `Pydantic`, `Knative`, `Cilium`. Webster doesn't cover them; this does, with the additional value that each entry is tagged with a confidence level and (where possible) a citable source.

Why is GIF pronounced "jif" here? I always say "gif".

Both readings are real. The dictionary picks the creator's stated reading as primary ("jif", per Steve Wilhite at the 2013 Webby Awards) and surfaces "gif" as the alternate. Run `say-it --alt GIF` to hear the alternate. Same pattern for SQL, JSON, char, regex, and the other contested ones.

Will Windows or Linux be supported?

Yes — Windows (PowerShell + System.Speech) and Linux (espeak-ng / cloud TTS) are M2/M3 on the roadmap. The dictionary itself is platform-agnostic; only the playback engine needs the platform-specific backend. PRs welcome.

How do I add a missing project?

Open a PR adding a row to data/pronunciations.tsv. See CONTRIBUTING.md for the column format. There's also a pinned issue with a wishlist of words we want next.

Is the source URL field mandatory?

No. If no source exists, leave it blank and mark `confidence` as `community-consensus`. We'd rather under-claim than fabricate.

Why does the CLI play "or: gif" after the primary?

Multi-reading words carry context — you should know there's a debate. The audible `"or: <alt>"` tail makes that perceptible without watching the terminal. Use `--solo` to skip it once you've internalized the debate.

### ⭐ Like it? Star it.

The dictionary is community-maintained — every star nudges more devs to contribute their favorite mispronounced project name.

★ Star on GitHub
★ Star on GitHub