From c555056173f4716e1060d209ec008275d562cde1 Mon Sep 17 00:00:00 2001 From: Rocky <72559939+hkgood@users.noreply.github.com> Date: Sun, 5 Jul 2026 18:50:25 +0800 Subject: [PATCH] docs(pages): update site for current app features Refresh the public Pages copy so setup, privacy, and feature descriptions match the current keyboard behavior. --- docs/index.html | 184 ++++++++++++++++++++-------------------- docs/privacy.html | 36 ++++---- docs/privacy/index.html | 36 ++++---- 3 files changed, 132 insertions(+), 124 deletions(-) diff --git a/docs/index.html b/docs/index.html index 39e6c98..bf1b16d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,7 +4,7 @@ OSGKeyboard — Voice dictation keyboard for iOS - + @@ -621,7 +621,7 @@
Source available · iOS 26+

Tap to talk.
Polished text in any app.

- 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. + A custom keyboard that transcribes your voice on-device, polishes with AI, and optionally translates — in WeChat, Notes, Mail, ChatGPT, and everywhere you type. Pick a local engine (built-in polish) or cloud engine (your API). Up to 3.5 minutes per take, with an 8-minute Flow session so you never bounce back to the host app.

View on GitHub @@ -629,9 +629,9 @@
On-device ASR - Bring your own API - Zero dependencies - Flow session · 60s / take + Local + Cloud engines + Polish & translate + Flow session · 3.5 min / take
@@ -653,7 +653,7 @@
- + @@ -666,48 +666,48 @@

Built for real typing workflows

-

Native SwiftUI, privacy-first architecture, and a Typeless-style push-to-talk experience.

+

Native SwiftUI, on-device transcription, configurable polish intensity, optional translation, and a personal dictionary — all in a tap-to-toggle Flow session.

-

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.

+

Tap-to-toggle · 3.5 min

+

Tap the mic to start, speak naturally, tap again to stop. A live countdown tracks each take — up to 210 seconds. Delete, space, and return keys sit below the mic.

On-device ASR

-

Speech stays on your iPhone. Apple's on-device speech stack handles transcription — audio never leaves the device.

+

Speech stays on your iPhone. iOS 26 SpeechAnalyzer + DictationTranscriber handle transcription — audio never leaves the device.

-

AI polish

-

Optional cloud pass adds punctuation, structure, and clarity. Only the transcript is sent — not your voice.

+

AI polish · 3 levels

+

Light, Medium, or Heavy polish adds punctuation, structure, and clarity. Ultra-short utterances skip the LLM and insert directly. Only the transcript is sent — never audio.

-

Bring your own API

-

Works with any OpenAI-compatible endpoint: OpenAI, DeepSeek, Qwen DashScope, or your own server.

+

Local & cloud engines

+

Local: on-device ASR + built-in DeepSeek polish — no API key needed. Cloud: on-device ASR + your OpenAI-compatible API (OpenAI, Qwen, Zhipu, Moonshot, or self-hosted).

- -

Privacy first

-

No ordinary keystroke logging. You choose when cloud polish runs and which provider receives text.

+ +

Post-polish translation

+

After polish, optionally translate into English, 简体中文, 日本語, 한국어, and more. Toggle from the keyboard chip or Settings — both engines supported.

- -

Lean & native

-

Pure Swift 6 and SwiftUI — no CocoaPods, no Carthage, no third-party packages.

+ +

Personal dictionary

+

Add names, product terms, and jargon in the Dictionary tab. The LLM preserves your entries; aliases help correct common ASR misrecognitions.

Flow session

-

A long-lived host-app session keeps the recorder warm. Record many takes without bouncing back to the app.

+

A long-lived host-app session (8 minutes) keeps the recorder warm. Record many takes without bouncing back to the app — tap Start on the keyboard if the session expires.

- -

Local + cloud polish

-

Local mode is ASR-only. Enable cloud polish to route the transcript through your chosen LLM when iOS speech recognition isn't strong enough.

+ +

Cursor drag navigation

+

Drag the pads beside the mic to move the caret precisely — horizontal or vertical. Toggle on/off in Settings → Preferences. Left- and right-handed layouts supported.

@@ -717,28 +717,28 @@

How it works

-

Three gestures between thought and sent message.

+

From first launch to polished text in any app — about five minutes.

Open the app

-

Build from source and launch. The 5-step onboarding starts the Flow session automatically once permissions are granted.

+

Build from source and launch. The 5-step onboarding walks you through permissions, keyboard setup, and engine choice. Flow session starts automatically when ready.

-

Allow mic & speech

-

Grant microphone and on-device speech recognition access when prompted. Both stay on-device.

+

Allow mic & speech

+

Grant microphone and on-device speech recognition when prompted. You can also finish most steps from the keyboard's own setup overlay.

Enable the keyboard

-

In iOS Settings, add OSGKeyboard and allow Full Access so it can use the mic and your API.

+

In iOS Settings, add OSGKeyboard and allow Full Access — required for the mic, API key, and Flow session bridge.

-

Pick engine + API

-

Choose local ASR or cloud. For cloud polish, paste any OpenAI-compatible key (DeepSeek works out of the box).

+

Pick recognition mode

+

Local: on-device ASR + built-in polish, no API key. Cloud: on-device ASR + your OpenAI-compatible key (OpenAI, Qwen, Zhipu, Moonshot, or custom).

-

Tap to talk

-

Switch to OSGKeyboard in any text field, tap the mic, speak (up to 60s), tap again. Polished text lands at your cursor.

+

Tune & talk

+

Set polish intensity, translation target, and personal dictionary in Settings. Switch to OSGKeyboard, tap the mic, speak (up to 3.5 min), tap again — text lands at your cursor.

@@ -749,7 +749,7 @@

Privacy at a glance

-

Audio is processed on your device. We do not log ordinary keystrokes. In cloud polish mode, only transcribed text — never audio — goes to the API provider you configure.

+

Audio is processed on your device. We do not log ordinary keystrokes. After ASR, transcribed text — never audio — is sent for polish (built-in DeepSeek on local engine, or your configured API on cloud engine). Translation and personal dictionary data stay on-device until you clear them.

Read full policy
@@ -759,7 +759,7 @@