Tap-to-toggle, 60s cap
Tap the mic to start, speak naturally, tap again to stop. A live countdown keeps you honest at 60 seconds per take.
A custom keyboard that transcribes your voice on-device and optionally polishes the result with the LLM you configure. Works in WeChat, Notes, Mail, ChatGPT — everywhere you type. Up to 60 seconds per take, with a long-lived Flow session so you never bounce back to the host app.
Notes
OSGKeyboard active
Native SwiftUI, privacy-first architecture, and a Typeless-style push-to-talk experience.
Tap the mic to start, speak naturally, tap again to stop. A live countdown keeps you honest at 60 seconds per take.
Speech stays on your iPhone. Apple's on-device speech stack handles transcription — audio never leaves the device.
Optional cloud pass adds punctuation, structure, and clarity. Only the transcript is sent — not your voice.
Works with any OpenAI-compatible endpoint: OpenAI, DeepSeek, Qwen DashScope, or your own server.
No ordinary keystroke logging. You choose when cloud polish runs and which provider receives text.
Pure Swift 6 and SwiftUI — no CocoaPods, no Carthage, no third-party packages.
A long-lived host-app session keeps the recorder warm. Record many takes without bouncing back to the app.
Local mode is ASR-only. Enable cloud polish to route the transcript through your chosen LLM when iOS speech recognition isn't strong enough.
Three gestures between thought and sent message.
Build from source and launch. The 5-step onboarding starts the Flow session automatically once permissions are granted.
Grant microphone and on-device speech recognition access when prompted. Both stay on-device.
In iOS Settings, add OSGKeyboard and allow Full Access so it can use the mic and your API.
Choose local ASR or cloud. For cloud polish, paste any OpenAI-compatible key (DeepSeek works out of the box).
Switch to OSGKeyboard in any text field, tap the mic, speak (up to 60s), tap again. Polished text lands at your cursor.