Open Flow

How it is built

Keep the user’s keyboard. A bubble owned by Accessibility listens, tidies words on the phone, and inserts them. Not a keyboard.

1. Where it sits

The speech engine is outside our process. INTERNET is declared. That is not the same as “audio never leaves.”

YouTap the bubble. Speak.
Other appNotes, chat, browser — your keyboard stays.
Open FlowBubble + app. Accessibility overlay. Insert only.
Phone speechOn-device if the phone has it. Often still Google. May leave the device.

2. One dictation

1 · TapStart listening
2 · SpeakPhone speech engine
3 · Tap againOr hold-to-talk, then release
4 · CleanupDictionary → snippet → rules → style
5 · InsertInto the focused field
6 · HistorySaved on this phone, unless you chose never

X while listening throws the words away. The bubble stays while the keyboard is up.

3. Cleanup on the phone

All on the phone. No language model. Style runs last.

StepWhat it does
Raw speechWhatever the phone recognizer returned
DictionaryOne word → another word
SnippetExact trigger → a whole block
CleanupNone / Light / Medium / High (rules)
StyleFormal / Casual / Very casual / Excited / Custom

4. Main pieces

PieceJob
App screensWalkthrough, setup, Home, History, Dictionary, Settings
Accessibility serviceBubble, field detect, listen, insert
SpeechPhone SpeechRecognizer. Fast / Balanced / Accurate
Room databaseHistory, dictionary, snippets — on this phone
Hide rulesHide on banks. Skip passwords.

Source on GitHub