OPEN PEOPLE INPUT · LOCAL-FIRST

Input,
back to input.

opi is one Rust engine with six native clients.
Offline, ad-free and auditable — it just gets the characters right.

1Rust engine
12Opi forms
937,780Simplified entries
139,355Traditional entries
9 / 14 / 26key layouts
689OpenMoji expressions

01 / MEET OPI

A keycap,
taken seriously.

Opi is the project pet of opi and a keycap sprite. It looks like a single key on a keyboard — because an input method should be nothing more than that.

Its body is a keycap, its mouth the letter O (Open), its antenna the pinyin tone mark ˉ, its side legend opi. The ripples below spread only on this machine. None of this is decoration: it is how the project thinks about input.

  • Open: open engine, open dictionaries, transparent and auditable.
  • People: designed for everyone; input is never used for anything else.
  • Input: back to the essence — just get the characters right.
  • No cloud sync, accounts, ads or telemetry.
Born from frustration, built with passion.— the opi origin story
See Opi's original vector artwork

How input travels through opi

Keys enter the engine, candidates return to the host, and composition finishes locally. No cloud round-trip.

Keys
26-key9-key14-keyStrokeShiftChinese punctuation
Rust engine
ComposerPinyin segmentationTrie dictionaryCandidate rankingLocal learning
Candidates
PinyinShuangpinWubiStrokeSimplified / TraditionalFuzzy pinyinJianpinPer-character confirm
Native host
Android IMEfcitx5Windows TSFInputMethodKitKeyboard extensionHarmonyOS N-API
Commit
commitTextNamed pipeC ABIOn-device

02 / FEATURES

Small things,
done right.

No pop-ups, no accounts, no "you may also like". One clear input path and a deliberately small toolkit. Cloud sync is decided against; the README records the boundaries.

One engine, six native clients

A Rust core with native shells: Android IME, fcitx5, Windows TSF, macOS / iOS keyboard extensions and HarmonyOS N-API. The same dictionaries and keycodes; each UI is its own.

RustC ABIAndroidWindowsLinuxmacOSiOSHarmonyOS

Android (emulator) and Linux (container / local) have runtime verification. The other four have buildable artifacts but no real-device acceptance.

Offline first, privacy you can check

Input, candidates and user words stay on the device. No login, cloud sync or telemetry; the only network access fetches version.json and carries no input data.

0 cloudNo accountNo telemetryUpdate check only

Chinese input, one pipeline

Pinyin / Simplified–Traditional / Shuangpin / Wubi / stroke, with 26 / 9 / 14-key layouts; fuzzy pinyin, jianpin, per-character confirmation and local learning switch inside the IME. Traditional support varies by client.

PinyinShuangpinWubiStroke9 / 14 / 26 keys

A living dictionary

The main Simplified and Traditional dictionaries are separate tracks; Kangxi, modern Traditional phrases and common vocabulary keep merging in. Dictionary changes have gates and regression tests.

Simplified 937,780Traditional 139,355Simplified dictionary GPL-3.0

Opi and expressions

Twelve animated Opi stickers, 689 OpenMoji expressions and 390 kaomoji. Opi stickers carry an Opi label and never collide with emoji names.

12 forms689 emoji390 kaomoji

A restrained desktop experience

The Linux / Windows status bar appears only while OPI is active; Windows upgrades in place without signing out; Android / HarmonyOS gears open an in-keyboard settings page; every client can check for updates.

Status barIn-place upgradeIn-keyboard settingsSkins / candidatesUpdate check

Seven installers, direct download

Android / Windows / Linux / macOS / iOS / HarmonyOS files live on this site under download/, not behind GitHub. Code is MIT; the main Simplified dictionary is GPL-3.0.

7 filesMIT codeunsigned builds need your signature

03 / TIMELINE

From one keycap
to six platforms.

Not a straight line: engine, dictionaries, platform shells and the expression system grew together. These are a few moments worth keeping.

  1. 2026.08

    Engine begins

    Rust core, pinyin parsing and the dictionary pipeline take shape; the Android native IME completes its first input path.

  2. 2026.09

    Desktop lands

    fcitx5 plugin, Compose candidate window and settings, Windows TSF skeleton; Linux becomes the first desktop target with runtime verification.

  3. 2026.10.17–18

    Opi is born

    Twelve forms, OpenMoji, kaomoji, Opi stickers and English normal / pro modes; the input method takes the name Opi.

  4. 2026.10.19–20

    More clients

    iOS host app and unsigned IPA, HarmonyOS HAP, Windows registration fixes, unified status-bar scaling; website and v1.16.0.

  5. 2026.10.21

    Candidates and installers

    iOS 9-key read-out / tiled candidates / in-IME switching; Windows TSF upgrade replacement and uninstall without reboot; Apple moves to one self-contained package.

  6. 2026.10.22

    In-place upgrades and in-keyboard settings

    Windows interactive upgrades restart the user shell; function and special keys pass through; IME switch releases the status bar; Android / HarmonyOS gear opens an in-keyboard settings page.

04 / TWELVE FORMS

Twelve Opis,
twelve moods.

It lives beyond the settings page: candidate bar, empty states, launcher icon, status bar. Click any card to see its mood.

All twelve forms are original opi assets, not built-in emoji. The IME inserts them as animated GIF / PNG stickers with an Opi label; hosts that reject images fall back to a text label.

05 / RELEASES

Every commit,
on the record.

Versions use vMAJOR.MINOR.PATCH; the current release is v1.23.0. The newest note sits on top; this compact history links to GitHub. The full annotated log remains on the Chinese site.

Older notes: GitHub releases · full scrollable history on the Chinese site.

06 / DOWNLOAD

Bring Opi
to your keyboard.

Windows 10 / 11 x64. Apple and HarmonyOS artifacts are unsigned and need your own signing.

VERIFICATION SCOPE

Only Android (emulator) and Linux (container / local) have runtime verification. Windows / iOS / macOS / HarmonyOS builds exist, but none has real-device acceptance; signing is unverified.

Primary platforms RECOMMENDED

Other platforms BETA · SIGN IT YOURSELF

Files live in this site's download/ directory; no GitHub redirect. Install guides are in docs/install and the release notes.

After installing: add OPI to the fcitx5 input method group on Linux; add Opi to Windows' Chinese (Simplified) keyboard list (interactive upgrades refresh the desktop automatically, no sign-out); enable the keyboard in iOS Settings → General → Keyboard and allow Full Access; add the input source on macOS.

File versions and names match dist/; page version v1.23.0.

OPI FORM

Opi · Smile

The default resting face.

In the IME, tapping this form inserts the animated GIF sticker; hosts that reject images fall back to an "Opi ·" text label.

Donation QR code