Rocky 0f9280bd00 fix(keyboard): stabilize Flow startup under memory pressure
Delay competing Rime work, add extension memory telemetry and stress coverage, and refresh the 1.8 release assets and metadata for build 79.
2026-08-18 10:24:02 +08:00
2026-06-17 23:08:58 +08:00

OSGKeyboard

Speak it. It's typed.

Voice input for iPhone, iPad, and Mac. Speak in any app — polished text lands at your cursor.

Platform Platform Swift Version License

Website · 中文 README · Privacy Policy

Download now from the App Store   Download historical macOS version 1.1


Why OSGKeyboard

  • Works everywhere — Messages, Notes, Notion, Cursor, Mail, WeChat — wherever you type
  • Speak, don't edit — tap (iOS) or hold Option (Mac); AI adds punctuation and structure for you
  • Type in Chinese and English — iOS keyboard ships full/double pinyin candidates, plus English autocomplete, autocorrect, and next-word prediction
  • On-device by default — local recognition on iOS; optional local models on Mac. Cloud upload only when you opt in
  • Bring your own LLM — local ASR needs no API key; polish and AI mode use your configured DeepSeek, OpenAI, Anthropic, OpenRouter, or compatible service
  • Mac global dictation — menu-bar app, bottom overlay with live feedback, inserts into the frontmost app

Three steps

  1. Install & authorize — add the iOS keyboard with Full Access; grant mic + Accessibility on Mac
  2. Pick an engine — local ASR works without a key; add your own API key for polish or AI mode
  3. Start talking — switch to OSGKeyboard, or hold Option on Mac

Platforms

iOS / iPadOS macOS
Keyboard / global hotkey hold Option
Chinese typing (full / Microsoft / Sogou double pinyin) optional fuzzy pairs
English typing (autocomplete / autocorrect / next-word) offline lexicon + personal-dictionary boosts
Local speech recognition SpeechAnalyzer Qwen3 MLX streaming (0.6B 4-bit default) + Apple Speech fallback
AI polish
Voice AI questions (explicit Insert / Send)
Voice-edit last input
Post-polish translation
Personal dictionary iCloud sync; protects polish and boosts English suggestions
Dictation history
Live UI — (silent background keep-alive) floating pill

Privacy

Speech is transcribed on-device by default. Audio or text leaves the device only when you actively choose a cloud engine, polish, AI, or a skill, and it goes directly to your configured provider. Clipboard history is off by default, capped at 15 local items, and sent only after an explicit clipboard action. Chinese and English typing learning stays local. API keys use Keychain (optionally iCloud Keychain), while downloaded Mac speech models and local inference remain on the Mac. See the Privacy Policy.


Get the app

iPhone / iPad (App Store)

Download now from the App Store

Mac (historical version 1.1, Developer ID signed and notarized)

Download historical macOS version 1.1

Build from source

Requires macOS with Xcode 26 and XcodeGen.

git clone https://github.com/hkgood/OSGKeyboard.git
cd OSGKeyboard
./Scripts/generate-xcodeproj.sh
open OSGKeyboard.xcodeproj

Run tests:

xcodebuild test -project OSGKeyboard.xcodeproj -scheme OSGKeyboard \
  -destination 'platform=iOS Simulator,name=iPhone 17'

Architecture (brief)

OSGKeyboard/          Main iOS app (Flow session host)
OSGKeyboardExt/       Custom keyboard extension
OSGKeyboardMac/       macOS menu-bar app
OSGKeyboardShared/    App/extension shared models, typing, sync, and UI
OSGKeyboardHostSupport/ Host-only ASR, cloud, CLM, charts, and StoreKit

Flow session model (iOS): the host app keeps a long-lived audio session; the keyboard sends start/stop signals via App Group; polished text is delivered back for insertion.

Engine modes:

  • local — on-device ASR; raw text without a key, optional polish with your configured LLM key
  • cloud — uploads audio to your configured ASR provider, then polishes via LLM

See CHANGELOG.md for release history and CONTRIBUTING.md for PR guidelines.


Adding an LLM provider

Append a preset in OSGKeyboardShared/Models/LLMProvider.swift — any OpenAI-compatible /chat/completions endpoint works out of the box.


Acknowledgements

OSGKeyboard's voice and keyboard features build on these projects and platforms:

See Third-Party Notices for exact versions and licenses (Chinese Rime stack plus the OSG-owned English lexicon notice), or open Settings → About → Third-Party Licenses in the app.


License

Source Available License — this is not an open-source license. Personal, non-commercial local use is permitted; redistribution and public derivatives require permission. Commercial licensing: rocky.hk@gmail.com.

S
Description
No description provided
Readme 57 MiB
Languages
Swift 93.7%
Python 4.6%
Shell 0.8%
HTML 0.5%
Objective-C++ 0.3%