Skip to content

Vietnamese input method for macOS

Type Vietnamese on your Mac, and English still comes out right.

Telex or VNI, an offline Vietnamese dictionary, and English words like database, camera or userName restored when the word is committed. Every keystroke is handled on your Mac.

  • macOS 13 or later · Apple Silicon and Intel
  • No Accessibility permission
  • Developer ID signed, notarized by Apple

Why ZKey

Type as you always do. ZKey handles the rest.

English words stay English

A 7,232-syllable dictionary and a list of English terms let ZKey recognise database, camera or userName and give back exactly the keys you typed.

Terminal is left alone

In Terminal, iTerm2, Warp, Ghostty, Alacritty, kitty, Hyper, Termius, keys go straight to the terminal. Switch to another app and ZKey is back the way it was.

Keystrokes stay on your Mac

Keys are handled on your Mac and never sent anywhere. ZKey needs no Accessibility permission or keyboard monitoring; it types through macOS's standard marked text.

How ZKey types

From keys to words

Vietnamese words are shaped as you type. English words and names in code go back to the keys you pressed when the word is committed.

  • tieengstiếngVietnamese
  • VieetjViệtVietnamese

    A capital first letter still types Telex

  • chuyenerchuyểnVietnamese

    An e after the final consonant: chuyên → chuyển

  • databasedatabaseEnglish kept

    No longer becomes “dât”

  • userNameuserNameName in code

    camelCase stays when every part is an English word

Examples with Telex and the dictionary on (the defaults).

See the full key table

Settings

Telex or VNI, tone marks your way

Open “Cài đặt ZKey…” (ZKey Settings) from the input menu. Changes apply from the next word — no restart.

  • Telex and VNISwitch with one control. Precomposed Unicode.
  • hòa or hoàOld or new tone placement: hòa/hoà, khỏe/khoẻ, thủy/thuỷ.
  • Control + Shift + SpaceTurns Vietnamese on and off. Change it to Option + Shift + Space, or turn the shortcut off.

Dictionary

Names and terms — add once, type forever

Words outside the dictionary go back to their keys, so English is not given marks. Add a missing name or term under Custom words — one word or phrase per line.

  • Offline dictionary7,232 syllables and tone variants, split from the 31,327 headwords of VNTK. Built into the app.
  • Your words come firstA word you add beats the English list when the two collide.
  • Looser when you wantAllow valid syllables that are not in the dictionary, or turn the dictionary check off.

Apps

Out of the way in Terminal and the apps you pick

In an excluded app, keys and command shortcuts go straight through; the ZKey shortcut is ignored there too.

  • 8 terminals recognisedTerminal, iTerm2, Warp, Ghostty, Alacritty, kitty, Hyper, Termius — by bundle ID.
  • Add your own appsPick an .app or type a bundle ID, one per line.
  • A note on VS CodeVS Code's built-in terminal cannot be told apart from its editor; excluding com.microsoft.VSCode turns ZKey off in all of VS Code.

Key table

Telex and VNI in one table

Press a mark key again to undo it: ass → as.

Telex and VNI keys
Mark / letterTelexVNIExample
Acute (sắc)s1as → á · a1 → á
Grave (huyền)f2af → à · a2 → à
Hook (hỏi)r3ar → ả · a3 → ả
Tilde (ngã)x4ax → ã · a4 → ã
Dot below (nặng)j5aj → ạ · a5 → ạ
Remove markz0asz → a · a10 → a
â ê ôaaeeoo6aa → â · e6 → ê
ăaw8aw → ă · a8 → ă
ơ ưowuww7ow → ơ · u7 → ư · tw → tư
đdd9dd → đ · d9 → đ

Read the typing guide

Details

Small things that make typing pleasant

Smart Backspace

Removes one key and works the word out again: giwx ← giư ← gi.

Esc restores

Esc turns the word being typed back into the keys you pressed, and commits it.

Universal

One installer for Apple silicon and Intel Macs.

C++20 engine

The typing engine is C++20, with InputMethodKit for macOS and SwiftUI for settings.

Thoroughly tested

6,559 dictionary fixtures in both Telex and VNI, and 2,000 random type/delete runs, on every build.

Tidy install

One .pkg that installs into /Library/Input Methods and registers the input source.

Privacy

An input method sees everything you type. ZKey keeps it on your Mac.

Works offline

Typing, the dictionary and settings run entirely on your Mac. The only connection is a once-a-day update check — no keystrokes, no text, no usage statistics.

No special permissions

No event tap, no Accessibility, no Input Monitoring. Just a macOS input source.

Dictionary on your Mac

The dictionary and your own words live on your Mac and are never downloaded or synced.

Read the privacy policy

Download

ZKey for macOS

One .pkg installer for Apple silicon and Intel Macs. ZKey ships outside the Mac App Store because Apple does not distribute input methods there.

Download ZKey for macOSVersion 1.0 · macOS 13+ · Apple Silicon & Intel

Developer ID signed and notarized by Apple

Version
1.0 (build 1)
Installer
ZKey-1.0-universal.pkg
Size
≈ 4 MB
Requires
macOS 13 Ventura or later
SHA-256
994dd8c875569af2aa6c795c157eeea4911f518e4ec910d5093b15cfdb074108
  • No need to turn off Gatekeeper
  • Install over the old version to upgrade
  • No data collected

Step-by-step install guide

FAQ

Frequently asked questions

Why is ZKey not on the Mac App Store?

Apple does not distribute input methods through the Mac App Store: an input method has to live in /Library/Input Methods, while App Store apps can only be installed into /Applications, where macOS does not load input methods. So ZKey ships as a .pkg signed with Developer ID and notarized by Apple — the standard way to distribute Mac software outside the App Store.

macOS says “the developer can access anything you type”. Should I worry?

macOS shows this notice for every third-party input method, because any input method has to receive keys to do its job. ZKey handles keys on your Mac, never sends what you type over the network, and never writes it to a log.

Does typing “database” turn into “dât”?

No. ZKey only applies aa/ee/oo to adjacent vowels and returns strings that are not valid syllables to their keys while you type. Words on the English list, like database, camera or banana, stay as typed without extra keys.

What about typing commands in Terminal?

ZKey leaves Terminal, iTerm2, Warp, Ghostty, Alacritty, kitty, Hyper, Termius alone: keys and command shortcuts go straight to the terminal. Switch to another app and the previous on/off state comes back. You can turn this off under ZKey Settings → Ứng dụng (Apps).

See every question

Ready?

Install ZKey in two minutes

Download the installer, run it, then pick ZKey in the menu bar. The guide has a screenshot for every step.