Ownkey Keyboard is a privacy-first, open-source Android keyboard focused on practical AI input.
Core idea:
- bring your own API key (BYOK)
- use Mistral Voxtral ASR for voice input
- keep user control over settings, provider choice, and local behavior
- no in-app monitoring of private user content
Also included:
- Wear OS companion IME focused on reliable transcript-first input
- phone-to-watch Voxtral config sync (API key, endpoint, model, language hint)
This project is a derivative fork of FlorisBoard and remains Apache-2.0 licensed.
- Voice input routes to internal dictation flow (not only external IME switching).
- Default endpoint/model:
https://api.mistral.ai/v1/audio/transcriptionsvoxtral-mini-latest
- Configurable endpoint + model in settings (for compatible/self-host flows).
- Mistral signup shortcut in settings.
- API keys are stored using Android Keystore-backed encrypted preferences.
- Legacy plaintext key migration is included and old plaintext values are removed.
- Backup export sanitizes sensitive key values.
- Suggestion pipeline tuned for real typing flow.
- EN/NL frequency dictionaries integrated.
- Ranking improvements, caching, and safer correction behavior on short tokens.
- Suggestion defaults enabled.
- Ownkey dark visual direction (high contrast, cleaner quick actions).
- Samsung-inspired quick-actions overflow layout refinements.
- Theme controls simplified:
- Light / Dark / Follow system
- Key borders on/off
- Corner radius: None / Small / Medium / Large
Ownkey does not add private-content monitoring inside the keyboard app itself.
Important nuance:
- when ASR is enabled, audio is sent to the configured ASR endpoint (Mistral by default, or your custom endpoint)
- data handling at that endpoint is governed by that provider's policy
So, app-side telemetry/monitoring is not the model, but networked ASR naturally means request data goes to the configured ASR service.
- Android Studio (current stable)
- Java 17
- Android SDK + emulator/device
./gradlew :app:assembleDebug- Install debug APK
- Enable Ownkey Keyboard in Android input settings
- Open Ownkey settings to configure Voxtral endpoint/model and API key
GitHub Actions workflow: Ownkey Android CI
What it now builds:
- Phone APK
- Wear APK
- Release AABs for both modules (on release builds)
Artifacts are exported with explicit versioned names, for example:
ownkey-phone-debug-v0.6.0-alpha02-<sha>.apkownkey-wear-debug-v0.6.0-alpha02-<sha>.apkownkey-phone-release-v0.6.0-alpha02-<sha>.aabownkey-wear-release-v0.6.0-alpha02-<sha>.aab
This is intended to keep Play Store upload files and test builds traceable per version.
- Product/technical plan: VOXTRAL_KEYBOARD_PLAN.md
- Feature scope and status: VOXTRAL_FEATURE_SCOPE.md
- API setup (direct + relay options): VOXTRAL_API_SETUP.md
- Brandbook (HTML):
docs/brandbook/ownkey-brand-book-2026-02-24-v2.html - Changelog: CHANGELOG.md
PRs are welcome.
When contributing, please keep these priorities:
- Privacy and explicit user control
- Reliability of typing/autocorrect
- Low-friction Voxtral dictation UX
- Clear attribution for forked/original FlorisBoard components
This project is distributed under the Apache License 2.0.
It is based on FlorisBoard, with Ownkey-specific modifications for dictation, privacy controls, autocorrect tuning, and UX/theme improvements.
- License text: LICENSE
- Original project: https://github.com/florisboard/florisboard

