Lekho (লেখো) — Avro Phonetic Bangla Keyboard for macOS
The only Avro Phonetic keyboard built natively for Apple Silicon Macs.
Lekho brings Avro Phonetic-style Bangla (Bengali) typing to Apple Silicon Macs natively (M1, M2, M3, M4, M5) — no Rosetta required. If you used Avro Keyboard on Windows, iAvro on macOS, or OpenBangla Keyboard on Linux, Lekho is your native Apple Silicon alternative.
Why Lekho?
The existing Bangla keyboard options for macOS each have limitations on Apple Silicon:
- Avro Keyboard (OmicronLab) — Windows-focused, no native macOS build
- iAvro — Intel-only macOS build that runs on Apple Silicon through Rosetta. Apple has announced Rosetta support is being wound down — fully available in macOS 27, then limited to legacy games starting in macOS 28. macOS already shows a deprecation warning on Intel-only input methods.
- OpenBangla Keyboard — Linux only (Qt-based), no macOS port
- macOS built-in Bengali — Apple's own layout, not Avro phonetic
Features
- Avro Phonetic typing — type
ami banglay gan gai→ আমি বাংলায় গান গাই - 150k word dictionary with smart suggestions and autocorrect
- Smart emoji suggestions — type কান্না and get 😢, বাংলাদেশ and get 🇧🇩, right in the candidate panel
- Three typing modes — Phonetic-first (default: your exact spelling by default with the suggestion list still one keypress away), Smart (suggestions, autocorrect, and emoji pick the word for you), or Phonetic-only (pure character-by-character control, no popup). Switch anytime in Settings.
- Your font, your size — draw the suggestion popup in any installed Bangla font (July, Ekush, Noto Sans Bengali, …) at the size you like. Nothing bundled, so the app stays tiny.
- Native Apple Silicon — ~2.2 MB, instant startup, zero CPU when idle
- Works on all Apple Silicon Macs — MacBook Air, MacBook Pro, iMac, Mac Mini, Mac Studio (M1/M2/M3/M4/M5)
- Works everywhere — built with Apple's InputMethodKit framework
- Completely offline — no internet, no data collection, no telemetry
- Signed and notarized — signed with an Apple Developer ID and notarized by Apple, so it installs like any other Mac app, no security warnings
- Free and open source (MPL-2.0) — no ads, no subscription
Install
Option A — Download the DMG (recommended)
- Download the latest
.dmgfrom Releases - Open the DMG and double-click Install Lekho.pkg
To update later, download the new DMG and run the installer again. No log out needed.
Option B — Homebrew
brew install --cask arahim3/lekho/lekho
That single command auto-taps and installs Lekho. Then jump to step 3 below to add the input source.
To update later: brew upgrade --cask lekho. To uninstall: brew uninstall --cask lekho.
After brew upgrade, Lekho may disappear from the input menu. Homebrew removes the old app a few seconds before it installs the new one, and macOS takes Lekho off the menu in the meantime. To bring it back, open System Settings → Keyboard → Input Sources → Edit, remove Lekho with −, and add it again with +. Your settings and learned words are kept. Updating with the DMG installer doesn't cause this.
Final steps (both options)
- Go to System Settings → Keyboard → Input Sources → Edit, click +, find Lekho, and add it
- Use Globe key or Ctrl+Space to switch to Bangla
Typing modes
Open the Settings tab in the Lekho window to pick how typing behaves:
- Phonetic-first (default) — your exact phonetic spelling is committed by default, but the suggestion list is still one keypress away. Lekho remembers the words you deliberately pick.
- Smart suggestions — dictionary, autocorrect, and emoji pick the best-matching word when you press space.
- Phonetic-only — pure transliteration, no suggestion popup, autocorrect, or emoji.
Changes apply immediately — no restart needed.
Fonts
The Fonts tab lets you pick which installed Bangla font draws the suggestion popup, and how big. Only the popup changes — apps show the words you type in their own font. Only fonts installed on your Mac are listed; the tab links to a few good free ones (July, Ekush, Google's Noto Sans Bengali) and re-scans every time you open the list.
Requirements
- macOS 13 (Ventura) or later
- Apple Silicon Mac (M1/M2/M3/M4/M5)
Build from Source
Prerequisites: Rust toolchain, Xcode (for Swift and InputMethodKit).
# Install Rust (if not already)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add aarch64-apple-darwin
Build
make build
Install to ~/Library/Input Methods/
make install
Create distributable .dmg
bash scripts/create_dmg.sh
Local builds are ad-hoc signed and work fine on your own Mac. Official releases are signed with a Developer ID and notarized; the scripts only do that when those certificates are in your keychain.
Architecture
Swift (InputMethodKit) ←→ Rust Engine (riti) via C FFI
- Rust engine (
engine/) — wraps OpenBangla/riti, compiled as a static library - Swift IMK layer (
Lekho/) — subclassesIMKInputController, handles key events, candidate window, and text commits - No Xcode project — built with
swiftc+cargo+ shell scripts
Contributing
Contributions are highly welcome! Whether it's reporting a bug, suggesting a feature, or submitting a pull request to improve the Swift or Rust codebases, feel free to get involved.
For anything bigger than a small bug fix, please open an issue before writing code — see CONTRIBUTING.md.
Credits
Lekho is powered by OpenBangla's riti engine — the same Bengali transliteration engine behind OpenBangla Keyboard on Linux.
Feedback
Found a bug or have a suggestion? Open an issue.
License
Keywords: Avro keyboard Mac, Bangla keyboard macOS, Bengali typing MacBook, Avro phonetic Apple Silicon, অভ্র কিবোর্ড ম্যাক, বাংলা টাইপিং ম্যাক
Maintained by Abdur Rahim