Scribe is a small, privacy-first voice input keyboard for Android. I wrote it mostly for personal use because I wanted a good voice keyboard for the latest GrapheneOS.
When Scribe is selected, it listens while the keyboard is visible and inserts speech into the focused text field. Partial results appear as composing text; finished lines are committed automatically.
Speech recognition is provided by Moonshine Voice and runs entirely on the device.
- English (en-US) dictation
- Live partial transcription
- Delete, enter, and return-to-previous-keyboard controls
- Android 16 (API 36) or newer
- No settings, history, cloud services, or conventional keyboard
This is an intentionally minimal, personal-use project rather than a polished general-purpose keyboard.
- Install and open Scribe.
- Enable it in Android's keyboard settings.
- Grant microphone permission.
- Download the speech model from the setup screen.
- Select Scribe as the current keyboard and start speaking.
An internet connection is needed only to download the model. Afterward, recognition works offline.
Audio and transcripts are never logged, stored, or uploaded. The app's internet permission is used only for the model download.
Requires JDK 17 and the Android API 37 SDK.
./gradlew test assembleDebug lintDebugThe APK is written to app/build/outputs/apk/debug/app-debug.apk.
Scribe is licensed under the GNU GPLv3. See THIRD-PARTY-NOTICES.md for dependency attribution.