ViệtTelex for iPhone & iPad
A Telex/VNI Vietnamese keyboard with word suggestions, swipe typing, snippets and clipboard.
- iOS / iPadOS 16 or later
- Free
- Runs entirely on device
After installing
- Settings → General → Keyboard → Keyboards → Add New Keyboard… → VietTelex.
- While typing, tap 🌐 to switch to VietTelex. Try it in the app:
vieejt→việt. - Optional: turn on Allow Full Access for haptics, VietTelex's own key sounds, the Paste button and clipboard history. Typing Vietnamese doesn't need it.
ViệtTelex for Android
BetaA Telex/VNI keyboard for phones, tablets and Chromebooks.
- Android 8.0 or later
- Free
- APK signed by the author
Installing the APK
- Open the downloaded
.apk; if asked, allow your browser to install unknown apps. - Open the VietTelex app → Enable VietTelex (Settings → System → Languages & input → On-screen keyboard), then Choose VietTelex.
- The “may be able to collect all the text you type” warning is Android's generic notice for every third-party keyboard — VietTelex runs entirely on your device.
The Google Play version will update itself; update the APK by installing a newer one over it. All Android releases · Full guide →
ViệtTelex for macOS
version …A native InputMethodKit input method: no underline, works in Terminal, iTerm and Chrome.
- macOS 13 Ventura or later
- Apple Silicon & Intel
- Signed & notarized by Apple
Other ways
Homebrew
brew install --cask ptrinh/viettelex/viettelexUpdate with brew upgrade.
One Terminal command
curl -fsSL https://viettelex.com/install.sh | bashUses Homebrew when present; otherwise downloads the .pkg, checks Apple's signature and installs it. Read the script.
Install through one channel only (.pkg or Homebrew) — both manage ~/Library/Input Methods/VietTelex.app.
After installing
- System Settings → Keyboard → Input Sources → Edit… → + → Vietnamese → ViệtTelex → Add (the installer opens this for you).
- To type in Terminal/iTerm/Chrome: grant Accessibility — Privacy & Security → Accessibility → tick VietTelex.
- Switch Vietnamese/English with 🌐 or
⌃Space. Settings: the Vᴛ icon in the menu bar → Settings….
ViệtTelex for Windows
version …A system Vietnamese keyboard (TSF) — pick it with Win+Space.
Or download the .msi installer directly:
- Windows 10 (1903) or 11
- Auto-updates via Microsoft Store
- Signed installer
- No restart needed
Downloading the .msi: which one?
Microsoft Store picks the right build for you. For the .msi: x64 for Intel/AMD PCs (most). ARM64 for Snapdragon/ARM PCs. Not sure: Settings → System → About → System type.
After installing
- Click Get in Microsoft Store (or run the
.msi); VietTelex's Settings window opens when it's done. - Pick VietTelex with
Win+Space. Not listed? Open VietTelex once from the Start menu. - Upgrading: Microsoft Store updates it automatically; with the .msi, install the new version over the old one, or click Check for updates in the app.
ViệtTelex for Linux
version …Ubuntu 22.04 / 24.04 and Ubuntu-based distros (amd64, arm64). Paste into a terminal:
curl -fsSL https://viettelex.com/install.sh | bashIt adds the signed APT repository, installs VietTelex (Fcitx5 by default; asks if you use IBus) and opens the setup guide. Run it again to update. Options: | bash -s -- --ibus (keep IBus) · --uninstall · --dry-run (show the steps only). Read the script before running it.
Fcitx5 or IBus?
Fcitx5 (recommended, the installer's default): smoother, fewer glitches in Chrome/Electron/terminals; the first time you need to log out and back in once. IBus is Ubuntu/GNOME's default — use --ibus to keep it.
Other ways
Add the APT repository manually
sudo install -d -m 0755 /etc/apt/keyrings curl -fsSL https://ptrinh.github.io/viettelex-apt/viettelex-archive-keyring.gpg \ | sudo tee /etc/apt/keyrings/viettelex.gpg >/dev/null sudo tee /etc/apt/sources.list.d/viettelex.sources >/dev/null <<EOF Types: deb URIs: https://ptrinh.github.io/viettelex-apt/ Suites: $(. /etc/os-release && echo "$VERSION_CODENAME") Components: main Signed-By: /etc/apt/keyrings/viettelex.gpg EOF sudo apt update sudo apt install viettelex-fcitx5 # or: sudo apt install viettelex-ibus
From then on it updates like any other package: sudo apt upgrade.
Manual download (.deb) with SHA256
Pick your series (~jammy1 = 22.04, ~noble1 = 24.04) and architecture (amd64 = Intel/AMD, arm64 = ARM), then run sudo apt install ./*.deb. This route does not update through apt; the app's “Check for updates” button still updates it.
Loading…
After installing
- Open VietTelex from the app menu (or run
viettelex-settings --onboarding) and follow the guide. - Fcitx5: log out and back in once, then click Add. IBus (GNOME): Settings → Keyboard → Input Sources → + → Vietnamese → VietTelex.
- Switch Vietnamese/English:
Ctrl+Space.
ViệtTelex for websites
JavaScript SDK · 1.0.0Embed Telex/VNI Vietnamese typing in any web page or web app — the same WebAssembly engine as the ViệtTelex apps (100% match on the 358,017-case test corpus). No network, no storage.
npm i @viettelex/core- MIT licensed
input,textarea,contenteditable- Zero dependencies
Attach to a text field
No bundler needed — load it straight from the CDN:
<textarea id="note"></textarea>
<script type="module">
import { attach } from 'https://cdn.jsdelivr.net/npm/@viettelex/core@1/dist/viettelex.mjs';
const vt = await attach(document.getElementById('note'));
// vt.setEnabled(false) · vt.setOptions({ inputMethod: 'vni' }) · vt() to detach
</script>With a bundler: import { attach } from '@viettelex/core'. Ctrl+Space toggles Vietnamese/English; password/email/number/tel fields stay literal; the SDK steps aside when the device already has a Vietnamese input method (UniKey, EVKey, the OS IME…). Custom editors, canvas, games: use createEngine().
Pick a build
| Build | import | gzip |
|---|---|---|
| Full, single file (default) | @viettelex/ | 28.1 KB |
| Lite, single file | @viettelex/ | 17.0 KB |
| Full, separate .wasm | @viettelex/ | 1.8 + 20.3 KB |
| Lite, separate .wasm | @viettelex/ | 1.8 + 11.2 KB |
Every build adds the SDK's JS (~5.9 KB gzip). Lite drops the English dictionaries: it keeps Telex/VNI, the syllable validator and rule-based auto-restore (google, github) and differs only on dictionary words (he is → “he í”). Separate .wasm builds let a CDN/browser cache the engine long-term.
Want to practise? Learn Telex — free, with games →