docs: shift core messaging to AI voice keyboard, voice double, agentic skills

Lead with “Say it. It's typed. Speaks like you. Acts for you.” across the
README and product page: the personalization story (learned style,
three-tone replies) moves ahead of typing, clipboard skills are framed as
agentic actions, and typing becomes the fallback capability.
This commit is contained in:
Rocky
2026-09-27 19:41:26 +08:00
parent ec1712f023
commit 503ef0ebe8
4 changed files with 136 additions and 120 deletions
+101 -100
View File
@@ -6,9 +6,9 @@
<title>OSGKeyboard — 开口即文字</title>
<meta
name="description"
content="OSGKeyboard 是面向 iPhone、iPad 与 Mac 的语音输入工具:一把键盘完成听写、中英打字、AI 助手与剪贴板技能,默认端侧识别,核心功能无需账号。"
data-zh-content="OSGKeyboard 是面向 iPhone、iPad 与 Mac 的语音输入工具:一把键盘完成听写、中英打字、AI 助手与剪贴板技能,默认端侧识别,核心功能无需账号。"
data-en-content="OSGKeyboard brings voice and bilingual input to iPhone, iPad, and Mac: dictation, Chinese and English typing, an AI assistant, and clipboard skills in one keyboard — on-device by default, no account required."
content="OSGKeyboard 是面向 iPhone、iPad 与 Mac 的 AI 语音键盘:开口即文字,语气像你;复制之后还能替你回复、总结、建待办。默认端侧识别,核心功能无需账号。"
data-zh-content="OSGKeyboard 是面向 iPhone、iPad 与 Mac 的 AI 语音键盘:开口即文字,语气像你;复制之后还能替你回复、总结、建待办。默认端侧识别,核心功能无需账号。"
data-en-content="OSGKeyboard is an AI voice keyboard for iPhone, iPad, and Mac: say it and it's typed, in a voice that sounds like you — and what you copy, it acts on. On-device by default, no account required."
>
<meta name="robots" content="index, follow">
<meta name="theme-color" content="#0e1013">
@@ -29,9 +29,9 @@
>
<meta
property="og:description"
content="一把键盘,四种输入方式:听写、中英打字、AI 助手与剪贴板技能。默认端侧识别,核心功能无需账号。"
data-zh-content="一把键盘,四种输入方式:听写、中英打字、AI 助手与剪贴板技能。默认端侧识别,核心功能无需账号。"
data-en-content="One keyboard, four ways to input: dictation, bilingual typing, an AI assistant, and clipboard skills. On-device by default, no account required."
content="开口即文字。会说你的话,会办你的事。默认端侧识别,核心功能无需账号。"
data-zh-content="开口即文字。会说你的话,会办你的事。默认端侧识别,核心功能无需账号。"
data-en-content="Say it. It's typed. Speaks like you, acts for you. On-device by default, no account required."
>
<meta property="og:image" content="https://hkgood.github.io/OSGKeyboard/assets/app-icon.png">
<meta name="twitter:card" content="summary">
@@ -58,7 +58,7 @@
"operatingSystem": "iOS 26, iPadOS 26, macOS 15",
"applicationCategory": "UtilitiesApplication",
"softwareVersion": "2.1.0",
"description": "A source-available voice and typing keyboard with on-device speech recognition by default, Chinese and English typing, an AI assistant with preview-before-insert, clipboard skills, a learned personal style, providers configured with your own API key, and optional managed credits.",
"description": "A source-available AI voice keyboard: on-device dictation by default, an AI assistant with preview-before-insert, a learned personal style that sounds like you, agentic clipboard skills that act on what you copy, Chinese and English typing, providers configured with your own API key, and optional managed credits.",
"downloadUrl": "https://apps.apple.com/app/osgkeyboard/id6781553267",
"url": "https://hkgood.github.io/OSGKeyboard/",
"offers": {
@@ -129,6 +129,7 @@
<symbol id="i-code" viewBox="0 0 24 24"><path d="M8.5 8 4 12l4.5 4M15.5 8 20 12l-4.5 4"/></symbol>
<symbol id="i-mic" viewBox="0 0 24 24"><rect x="9" y="3" width="6" height="11" rx="3"/><path d="M5.5 11a6.5 6.5 0 0 0 13 0M12 17.5V21M9 21h6"/></symbol>
<symbol id="i-sparkle" viewBox="0 0 24 24"><path d="M11 4l1.8 4.7L17.5 10.5l-4.7 1.8L11 17l-1.8-4.7L4.5 10.5l4.7-1.8L11 4Z"/><path d="M18 14.5l.9 2.3 2.3.9-2.3.9-.9 2.3-.9-2.3-2.3-.9 2.3-.9.9-2.3Z"/></symbol>
<symbol id="i-bubble" viewBox="0 0 24 24"><path d="M20.5 11.5a8 6.8 0 0 1-8 6.8c-1.2 0-2.3-.2-3.3-.7L4.5 19.3l1.2-3.1a6.6 6.6 0 0 1-1.2-4.7 8 6.8 0 0 1 16 0Z"/><path d="M8.5 10.2c.8-1.4 2.4-1.7 3.2-.7.6.8.2 1.9-.8 2.6-.9.6-1.6 1.1-1.6 2.2M13.8 10.2c.8-1.4 2.4-1.7 3.2-.7.6.8.2 1.9-.8 2.6-.9.6-1.6 1.1-1.6 2.2"/></symbol>
<symbol id="i-keyboard" viewBox="0 0 24 24"><rect x="3" y="6" width="18" height="12" rx="2.5"/><path d="M7 10h.01M11 10h.01M15 10h.01M17.5 10h.01M7 14h.01M17.5 14h.01M9.8 14h4.4"/></symbol>
<symbol id="i-paste" viewBox="0 0 24 24"><rect x="5.5" y="4.5" width="13" height="16" rx="2.5"/><path d="M9 4.8a3 3 0 0 1 6 0"/><path d="M12 10v6.2M9.3 13.6l2.7 2.7 2.7-2.7"/></symbol>
<symbol id="i-translate" viewBox="0 0 24 24"><path d="M4 6.5h9M8.5 4.5v2c0 3.3-2.4 6.6-4.3 8M6 9.8c1 2.3 3.3 4.6 5.7 5.6"/><path d="M13 20l4.3-9 4.3 9M14.5 16.8h5.6"/></symbol>
@@ -162,7 +163,7 @@
</a>
<div class="nav-links">
<a href="#assistant" data-zh="体验" data-en="Experience">体验</a>
<a href="#personal" data-zh="个人化" data-en="Personal">个人化</a>
<a href="#personal" data-zh="嘴替" data-en="Your voice">嘴替</a>
<a href="#privacy" data-zh="隐私" data-en="Privacy">隐私</a>
<a href="#platforms" data-zh="平台" data-en="Platforms">平台</a>
</div>
@@ -187,7 +188,7 @@
</nav>
<nav class="mobile-nav" id="mobileNav" aria-label="移动端导航" data-zh-label="移动端导航" data-en-label="Mobile navigation" hidden>
<a href="#assistant" data-zh="体验" data-en="Experience">体验</a>
<a href="#personal" data-zh="个人化" data-en="Personal">个人化</a>
<a href="#personal" data-zh="嘴替" data-en="Your voice">嘴替</a>
<a href="#privacy" data-zh="隐私" data-en="Privacy">隐私</a>
<a href="#platforms" data-zh="平台" data-en="Platforms">平台</a>
</nav>
@@ -206,14 +207,14 @@
</p>
<h1 class="reveal" style="--d:.06s">
<span data-zh="开口即文字。" data-en="Say it. It’s typed.">开口即文字。</span>
<span class="hero-muted" data-zh="一把键盘,四种输入方式。" data-en="One keyboard, four ways to input.">一把键盘,四种输入方式。</span>
<span class="hero-muted" data-zh="会说你的话,会办你的事。" data-en="Speaks like you. Acts for you.">会说你的话,会办你的事。</span>
</h1>
<p
class="hero-copy reveal"
style="--d:.12s"
data-zh="听写、中英打字、AI 助手与剪贴板技能,在同一个输入界面完成。默认端侧识别,核心功能无需账号。"
data-en="Dictation, bilingual typing, an AI assistant, and clipboard skills — all in one keyboard. On-device recognition by default, no account required."
>听写、中英打字、AI 助手与剪贴板技能,在同一个输入界面完成。默认端侧识别,核心功能无需账号。</p>
data-zh="一把 AI 语音键盘:听写、问 AI、中英打字,在同一个输入界面完成。它学习你的语气替你表达,也能在复制之后替你行动。默认端侧识别,核心功能无需账号。"
data-en="An AI voice keyboard: dictation, AI answers, and bilingual typing in one input surface. It learns to sound like you — and takes action on what you copy. On-device by default, no account required."
>一把 AI 语音键盘:听写、问 AI、中英打字,在同一个输入界面完成。它学习你的语气替你表达,也能在复制之后替你行动。默认端侧识别,核心功能无需账号。</p>
<div class="hero-actions reveal" style="--d:.18s">
<a
class="store-badge"
@@ -281,15 +282,15 @@
<h3 data-zh="长按问 AI" data-en="Hold to ask AI">长按问 AI</h3>
<p data-zh="回答先预览,确认再插入。" data-en="Answers stream into a preview — insert when ready.">回答先预览,确认再插入。</p>
</a>
<a class="way-card reveal" href="#typing" style="--d:.12s">
<svg class="i" aria-hidden="true"><use href="#i-keyboard"/></svg>
<h3 data-zh="中英打字" data-en="Bilingual typing">中英打字</h3>
<p data-zh="全拼双拼 + 英文补全纠错。" data-en="Full and double pinyin, plus English completion and correction.">全拼双拼 + 英文补全纠错。</p>
<a class="way-card reveal" href="#personal" style="--d:.12s">
<svg class="i" aria-hidden="true"><use href="#i-bubble"/></svg>
<h3 data-zh="AI 嘴替" data-en="Your voice double">AI 嘴替</h3>
<p data-zh="学习你的语气,替你表达。" data-en="Learns your voice and speaks for you.">学习你的语气,替你表达。</p>
</a>
<a class="way-card reveal" href="#skills" style="--d:.18s">
<svg class="i" aria-hidden="true"><use href="#i-paste"/></svg>
<h3 data-zh="剪贴板技能" data-en="Clipboard skills">剪贴板技能</h3>
<p data-zh="复制之后,直接行动。" data-en="Copy, then take action.">复制之后,直接行动。</p>
<h3 data-zh="替你行动" data-en="Acts for you">替你行动</h3>
<p data-zh="复制之后,直接行动。" data-en="Copy, then it takes action.">复制之后,直接行动。</p>
</a>
</div>
</div>
@@ -347,90 +348,11 @@
</div>
</section>
<!-- 中英打字 -->
<section class="section feature-section section-alt" id="typing">
<div class="section-inner split-layout reverse">
<div class="feature-copy reveal">
<p class="eyebrow" data-zh="中英打字" data-en="Chinese and English typing">中英打字</p>
<h2 data-zh="不方便说话时,打字同样顺手。" data-en="When speaking is not convenient, typing stays effortless.">不方便说话时,打字同样顺手。</h2>
<div class="mini-feature">
<h3><svg class="i" aria-hidden="true"><use href="#i-translate"/></svg><span data-zh="中文:输入方式由你选" data-en="Chinese: your scheme, your choice">中文:输入方式由你选</span></h3>
<p data-zh="全拼、自然码、小鹤、微软与搜狗双拼;模糊音、简拼排序、展开候选、数字与滑动选词、中英混输。" data-en="Full pinyin plus Ziranma, Xiaohe, Microsoft, and Sogou double pinyin — with fuzzy initials, candidate paging, number and swipe selection, and mixed input.">全拼、自然码、小鹤、微软与搜狗双拼;模糊音、简拼排序、展开候选、数字与滑动选词、中英混输。</p>
</div>
<div class="mini-feature">
<h3><svg class="i" aria-hidden="true"><use href="#i-spellcheck"/></svg><span data-zh="英文:补全、纠错、预测" data-en="English: complete, correct, predict">英文:补全、纠错、预测</span></h3>
<p data-zh="三格 QuickType、约 4 万词离线词表、前缀补全、自动纠错、下一词建议、撤销纠错与句首自动大写。" data-en="Three-slot QuickType, a 40k-word offline lexicon, prefix completion, autocorrect, next-word suggestions, undo, and sentence capitalization.">三格 QuickType、约 4 万词离线词表、前缀补全、自动纠错、下一词建议、撤销纠错与句首自动大写。</p>
</div>
<p
class="feature-note"
data-zh="一个个性词库,同时参与中文候选、英文建议、语音偏置与润色保护。"
data-en="One personal dictionary feeds Chinese candidates, English suggestions, speech biasing, and polish protection."
>一个个性词库,同时参与中文候选、英文建议、语音偏置与润色保护。</p>
</div>
<div class="media-frame reveal" style="--d:.12s">
<video
src="assets/whats-new/keyboard-typing.mp4"
autoplay
muted
loop
playsinline
preload="metadata"
data-zh-label="OSGKeyboard 中英打字实机演示"
data-en-label="OSGKeyboard bilingual typing recorded on device"
aria-label="OSGKeyboard 中英打字实机演示"
></video>
</div>
</div>
</section>
<!-- 剪贴板与技能 -->
<section class="section feature-section" id="skills">
<div class="section-inner split-layout">
<div class="feature-copy reveal">
<p class="eyebrow" data-zh="剪贴板与技能" data-en="Clipboard and skills">剪贴板与技能</p>
<h2 data-zh="复制之后,直接行动。" data-en="Copy, then take action.">复制之后,直接行动。</h2>
<p
data-zh="复制内容后,本地语义分析会从完整技能目录中推荐最多 5 个相关操作——全程不上传剪贴板原文。"
data-en="After you copy, on-device semantic analysis picks up to five relevant actions from the full skill catalog — clipboard text never leaves the device for this."
>复制内容后,本地语义分析会从完整技能目录中推荐最多 5 个相关操作——全程不上传剪贴板原文。</p>
<div class="skill-chips" aria-label="内置技能" data-zh-label="内置技能" data-en-label="Built-in skills">
<span><svg class="i" aria-hidden="true"><use href="#i-reply"/></svg><span data-zh="回复" data-en="Reply">回复</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-summarize"/></svg><span data-zh="总结" data-en="Summarize">总结</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-translate"/></svg><span data-zh="翻译" data-en="Translate">翻译</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-task"/></svg><span data-zh="待办" data-en="To-dos">待办</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-event"/></svg><span data-zh="日程" data-en="Events">日程</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-note"/></svg><span data-zh="备忘录" data-en="Notes">备忘录</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-nav"/></svg><span data-zh="导航" data-en="Navigate">导航</span></span>
</div>
<ul class="quiet-list">
<li data-zh="待办与日程经原生 EventKit 写入,日历仅申请「仅写入」权限" data-en="To-dos and events write natively through EventKit; Calendar is write-only">待办与日程经原生 EventKit 写入,日历仅申请「仅写入」权限</li>
<li data-zh="剪贴板历史默认关闭,最多 15 条,仅存于本机" data-en="Clipboard history is off by default — 15 items max, stored only on device">剪贴板历史默认关闭,最多 15 条,仅存于本机</li>
<li data-zh="可创建自定义技能:名称、图标、提示词与可选快捷指令" data-en="Create custom skills with a name, icon, prompt, and an optional Shortcut">可创建自定义技能:名称、图标、提示词与可选快捷指令</li>
</ul>
</div>
<div class="media-frame reveal" style="--d:.12s">
<video
src="assets/whats-new/clipboard-skills-zh.mp4"
data-zh-src="assets/whats-new/clipboard-skills-zh.mp4"
data-en-src="assets/whats-new/clipboard-skills-en.mp4"
autoplay
muted
loop
playsinline
preload="metadata"
data-zh-label="OSGKeyboard 剪贴板技能实机演示"
data-en-label="OSGKeyboard clipboard skills recorded on device"
aria-label="OSGKeyboard 剪贴板技能实机演示"
></video>
</div>
</div>
</section>
<!-- 个人化:2.1 核心卖点,真实界面卡片 + 实机视频 -->
<!-- AI 嘴替:2.1 核心卖点,真实界面卡片 + 实机视频 -->
<section class="section personal-section section-alt" id="personal">
<div class="section-inner">
<div class="center-heading reveal">
<p class="eyebrow" data-zh="越用越懂你" data-en="It learns how you sound">越用越懂你</p>
<p class="eyebrow" data-zh="AI 嘴替" data-en="Your AI voice double">AI 嘴替</p>
<h2 data-zh="表达更清楚,语气还是你的。" data-en="Clearer writing. Still your voice.">表达更清楚,语气还是你的。</h2>
<p
data-zh="从你确认过的真实输入中学习,而不是套用模板。所有偏好与词库只保存在本机。"
@@ -493,6 +415,85 @@
</div>
</section>
<!-- Agentic 剪贴板技能 -->
<section class="section feature-section" id="skills">
<div class="section-inner split-layout">
<div class="feature-copy reveal">
<p class="eyebrow" data-zh="Agentic 技能" data-en="Agentic skills">Agentic 技能</p>
<h2 data-zh="复制之后,它替你做。" data-en="Copy it. Consider it done.">复制之后,它替你做。</h2>
<p
data-zh="复制一段文字,本地语义分析会理解它该去哪——回复、总结、翻译、待办、日程、导航,从完整技能目录中推荐最多 5 个相关操作,全程不上传剪贴板原文。"
data-en="Copy any text and on-device semantic analysis understands where it should go — reply, summarize, translate, to-dos, events, navigation — picking up to five relevant actions from the full skill catalog, without the clipboard text ever leaving the device."
>复制一段文字,本地语义分析会理解它该去哪——回复、总结、翻译、待办、日程、导航,从完整技能目录中推荐最多 5 个相关操作,全程不上传剪贴板原文。</p>
<div class="skill-chips" aria-label="内置技能" data-zh-label="内置技能" data-en-label="Built-in skills">
<span><svg class="i" aria-hidden="true"><use href="#i-reply"/></svg><span data-zh="回复" data-en="Reply">回复</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-summarize"/></svg><span data-zh="总结" data-en="Summarize">总结</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-translate"/></svg><span data-zh="翻译" data-en="Translate">翻译</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-task"/></svg><span data-zh="待办" data-en="To-dos">待办</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-event"/></svg><span data-zh="日程" data-en="Events">日程</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-note"/></svg><span data-zh="备忘录" data-en="Notes">备忘录</span></span>
<span><svg class="i" aria-hidden="true"><use href="#i-nav"/></svg><span data-zh="导航" data-en="Navigate">导航</span></span>
</div>
<ul class="quiet-list">
<li data-zh="待办与日程经原生 EventKit 写入,日历仅申请「仅写入」权限" data-en="To-dos and events write natively through EventKit; Calendar is write-only">待办与日程经原生 EventKit 写入,日历仅申请「仅写入」权限</li>
<li data-zh="剪贴板历史默认关闭,最多 15 条,仅存于本机" data-en="Clipboard history is off by default — 15 items max, stored only on device">剪贴板历史默认关闭,最多 15 条,仅存于本机</li>
<li data-zh="可创建自定义技能:名称、图标、提示词与可选快捷指令" data-en="Create custom skills with a name, icon, prompt, and an optional Shortcut">可创建自定义技能:名称、图标、提示词与可选快捷指令</li>
</ul>
</div>
<div class="media-frame reveal" style="--d:.12s">
<video
src="assets/whats-new/clipboard-skills-zh.mp4"
data-zh-src="assets/whats-new/clipboard-skills-zh.mp4"
data-en-src="assets/whats-new/clipboard-skills-en.mp4"
autoplay
muted
loop
playsinline
preload="metadata"
data-zh-label="OSGKeyboard 剪贴板技能实机演示"
data-en-label="OSGKeyboard clipboard skills recorded on device"
aria-label="OSGKeyboard 剪贴板技能实机演示"
></video>
</div>
</div>
</section>
<!-- 中英打字:不方便说话时的兜底能力 -->
<section class="section feature-section section-alt" id="typing">
<div class="section-inner split-layout reverse">
<div class="feature-copy reveal">
<p class="eyebrow" data-zh="中英打字" data-en="Chinese and English typing">中英打字</p>
<h2 data-zh="不方便说话时,打字同样顺手。" data-en="When speaking is not convenient, typing stays effortless.">不方便说话时,打字同样顺手。</h2>
<div class="mini-feature">
<h3><svg class="i" aria-hidden="true"><use href="#i-translate"/></svg><span data-zh="中文:输入方式由你选" data-en="Chinese: your scheme, your choice">中文:输入方式由你选</span></h3>
<p data-zh="全拼、自然码、小鹤、微软与搜狗双拼;模糊音、简拼排序、展开候选、数字与滑动选词、中英混输。" data-en="Full pinyin plus Ziranma, Xiaohe, Microsoft, and Sogou double pinyin — with fuzzy initials, candidate paging, number and swipe selection, and mixed input.">全拼、自然码、小鹤、微软与搜狗双拼;模糊音、简拼排序、展开候选、数字与滑动选词、中英混输。</p>
</div>
<div class="mini-feature">
<h3><svg class="i" aria-hidden="true"><use href="#i-spellcheck"/></svg><span data-zh="英文:补全、纠错、预测" data-en="English: complete, correct, predict">英文:补全、纠错、预测</span></h3>
<p data-zh="三格 QuickType、约 4 万词离线词表、前缀补全、自动纠错、下一词建议、撤销纠错与句首自动大写。" data-en="Three-slot QuickType, a 40k-word offline lexicon, prefix completion, autocorrect, next-word suggestions, undo, and sentence capitalization.">三格 QuickType、约 4 万词离线词表、前缀补全、自动纠错、下一词建议、撤销纠错与句首自动大写。</p>
</div>
<p
class="feature-note"
data-zh="一个个性词库,同时参与中文候选、英文建议、语音偏置与润色保护。"
data-en="One personal dictionary feeds Chinese candidates, English suggestions, speech biasing, and polish protection."
>一个个性词库,同时参与中文候选、英文建议、语音偏置与润色保护。</p>
</div>
<div class="media-frame reveal" style="--d:.12s">
<video
src="assets/whats-new/keyboard-typing.mp4"
autoplay
muted
loop
playsinline
preload="metadata"
data-zh-label="OSGKeyboard 中英打字实机演示"
data-en-label="OSGKeyboard bilingual typing recorded on device"
aria-label="OSGKeyboard 中英打字实机演示"
></video>
</div>
</div>
</section>
<!-- 三种服务路径:端侧放大为主信任状(深色区块) -->
<section class="section privacy-section" id="privacy">
<div class="section-inner">