An Android keyboard in the Material 3 Expressive style, built with Kotlin and Jetpack Compose. Highly customizable and extensible with plugins and JavaScript mods.
Get the latest APK from Releases.
Requires Android 8.0 or newer.
- Typing: word suggestions, autocorrect, glide (swipe) typing
- Languages: 90+ layouts; Chinese (Pinyin, simplified and traditional) and Japanese (Romaji → Kana) input; Indic scripts (InScript)
- Emoji: all Unicode 16 emoji, search in English and Russian, skin tones, built-in styles (Twemoji, Noto, Blob, OpenMoji)
- Designs: Material You Expressive, Material 3 (Google guidelines), Liquid Glass, Classic, Neon, Neumorphism — one tap
- App language: Russian or English
- Panels: emoji, GIFs, clipboard, translator, voice input
- Look: Material You colors, themes and skins, custom fonts (.ttf/.otf), a photo from your gallery behind the keys
- Layout: key height and corner radius, spacing, keyboard width, one-handed mode
- Feedback: adjustable vibration and sound
- Privacy: incognito mode; suggestions and dictionary learning are turned off in password fields
- Plugins and mods: custom buttons, shortcuts, layouts, themes and JavaScript scripts that can draw and animate over the keyboard, press keys and change layouts on the fly
- Download and install the APK from Releases.
- Open the app and enable the keyboard in system settings.
- Select Expressive Keyboard as your input method.
| Permission | Why |
|---|---|
| Internet | GIFs (Giphy), translator, downloading suggestion dictionaries, mods with the network permission |
| Microphone | Voice input |
| Vibration | Haptic feedback on key press |
Your typed text is not sent anywhere unless you use the translator yourself or install a mod that has both network and text-reading permissions.
Plugins are imported in Settings → Plugins and mods. The format and JavaScript API are described
in PLUGINS.md (in Russian); examples live in app/src/main/assets/plugins.
You need Android Studio (or JDK 17 and Android SDK 35).
git clone https://github.com/kotlalipopus/Expressive-Keyboard.git
cd Expressive-Keyboard
./gradlew assembleDebugThe APK will be in app/build/outputs/apk/debug/.
To enable GIF search, put your own Giphy key into GIPHY_API_KEY in
app/src/main/java/com/expressive/keyboard/Common.kt. Without a key, a built-in GIF set is used.
MIT# Expressive-Keyboard