docs(readme): 突出风格市场 + 流式输出,状态更新到 v1.3.6

This commit is contained in:
吕柏青 committed 2026-06-01 18:00:22 +08:00
1 parent ad629367d7
commit 08ad6b7979
2 files changed
+48 -10

No files matched your search

+24 -5
View File
@@ -6,7 +6,7 @@
<p align="center">
<strong>Open-source voice input for macOS &amp; Windows.</strong><br/>
Press a hotkey, speak, get AI-polished text at your cursor.
Hold a hotkey, talk, and watch AI-polished text stream straight to your cursor — in the writing style <em>you</em> choose.
</p>
<p align="center">
@@ -81,6 +81,13 @@ Put your cursor in any text field — ChatGPT, Claude, Cursor, Notion, an email
Unlike voice typing tools that just dump a word-for-word transcript, OpenLess's headline mode is **AI-prompt mode**: you ramble, it adds structure, lists constraints, and produces a context-rich prompt you can paste straight into ChatGPT / Claude / Cursor.
## ✨ What's new
Two features that change how OpenLess feels day to day:
- 🎨 **Style Pack Marketplace.** OpenLess no longer ships a single fixed "polish" voice. Build your own **style packs** with custom system prompts, switch between them with a hotkey, and **install community packs in one click** — or publish your own to share. When the style is tuned to your exact job (cold emails, commit messages, 小红书 posts, formal reports, your team's tone), the output isn't just cleaner — it comes out *noticeably better*, because the model is finally writing the way you actually want.
- ⚡ **Streaming insertion.** Text now flows to your cursor **character by character** as it's polished, instead of making you wait for the whole result to land. Perceived latency drops sharply, so dictation feels about as fast as thinking — and it automatically falls back to a one-shot paste when an app can't accept streamed keystrokes.
## A concrete example
Hold the hotkey, say to OpenLess:
@@ -118,6 +125,16 @@ OpenLess goes for the same end-user experience but:
- Code comments, commit messages, PR descriptions: dump what's in your head straight to the cursor.
- Any "I don't want to type but I have to produce written text" situation.
## Style packs & the Marketplace
A **style pack** is a named output style with its own system prompt. Instead of being stuck with one built-in "polish" voice, you can shape exactly how your speech comes out — and the closer the style matches your real task, the better the result.
- **Create & customize.** On the **Style** page, add a pack and write a custom system prompt (e.g. "terse engineering commit messages", "warm customer-support replies", "小红书 copy with emoji"). Switch the active pack with a hotkey.
- **Install from the community.** Open the **Marketplace** to browse, search, and one-click install packs other people have shared, and like the ones that work for you.
- **Publish your own.** Sign in with a GitHub identity (Settings → Marketplace), then hit **Publish to Marketplace** from the Style page. Uploads are moderated before they appear publicly.
The marketplace is served by OpenLess's own moderated backend, so the catalog stays curated rather than a free-for-all.
## Project direction
OpenLess does one thing: **turn speech into usable written text (especially AI prompts), at the current cursor.**
@@ -136,16 +153,19 @@ OpenLess does one thing: **turn speech into usable written text (especially AI p
| [Lazy](https://heylazy.com) | Closed-source notes / capture tool | Not a notes container — inserts straight into any input field |
| [Superwhisper](https://superwhisper.com) | Closed-source macOS, subscription | Open source; cloud ASR today, local ASR on the roadmap |
## Status (v1.2)
## Status (v1.3.6)
- Tauri 2 + Rust backend + React/TS frontend. macOS 12+, Windows 10+.
- **Toggle and push-to-talk** recording modes. `Esc` cancels at any phase, including polish/insert.
- 🎨 **Style Pack Marketplace** — browse, install, and like community **style packs** from the in-app Marketplace, and publish your own (custom system prompt per pack, switchable by hotkey). Backed by a moderated marketplace backend; uploads are reviewed before they go public.
- ⚡ **Streaming insertion** — polished text is written to the cursor character by character to cut perceived latency, with an automatic one-shot-paste fallback. Toggle in Settings → Recording.
- **Toggle and push-to-talk** recording modes, plus a **MediaPlayPause trigger** so wired-earbud inline controls can start/stop recording. `Esc` cancels at any phase, including polish/insert.
- **Cloud ASR**: Volcengine streaming ASR, OpenAI Whisper-compatible batch ASR, Apple Speech (macOS).
- **Local ASR**: bundled Qwen3-ASR (0.6B / 1.7B) via vendored `Open-Less/qwen-asr`; Windows Foundry Local Whisper variants.
- **Polish providers**: Ark / DeepSeek / OpenAI / Doubao / Anthropic-compatible chat-completions, plus any OpenAI-compatible endpoint you bring.
- 4 output modes: raw, light polish, structured (**AI prompt mode**), formal. Plus a **translation hotkey** that converts speech directly into the configured target language ([#43](../../issues/43)).
- **Selection-ask QA panel** — separate hotkey opens a floating panel that runs voice Q&A against the highlighted text in any app ([#118](../../issues/118)).
- Main window: Overview / History / Vocab / Style / Settings. Persistent tray icon. Mini status capsule floating on screen.
- Main window: Overview / History / Vocab / Style / Marketplace / Settings. Persistent tray icon. Mini status capsule that floats on screen and follows the display you're typing on (multi-monitor).
- **Local model management** — manage on-disk local-ASR model storage from Settings.
- **Multilingual UI** — Settings → Language switches between 简体中文 / 繁體中文 / English / 日本語 / 한국어 (auto-detects on first launch).
- **In-app auto-update** — Settings → About → Check button; signed updater artifacts via Tauri updater plugin.
- **Beta channel (opt-in)** — Settings → About → Join Beta channel exposes the latest pre-release build for manual download; Beta releases never reach Stable users automatically (see [Contributing workflow](#contributing-workflow)).
@@ -327,7 +347,6 @@ Planned but not yet shipped:
- Snippets (no UI / trigger logic yet).
- History enhancements: copy button, search, re-polish, re-insert.
- "Paste last result" hotkey.
- Multi-monitor capsule placement on the focused screen.
## Maintainer release checklist
+24 -5
View File
@@ -6,7 +6,7 @@
<p align="center">
<strong>开源语音输入,支持 macOS 和 Windows。</strong><br/>
按一次快捷键说话,AI 润色后的文字直接落到当前光标。
按住快捷键说话,AI 润色后的文字以<em>你选定的风格</em>,流式落到当前光标。
</p>
<p align="center">
@@ -81,6 +81,13 @@ OpenLess 是一个跨平台(macOS & Windows)语音输入应用,对标 [Typ
不像那些只把语音转成「逐字稿」的输入法,OpenLess 的核心模式是 **AI prompt 模式**:你只管乱讲,它自动补上结构、列出约束、整理出有上下文的 prompt,复制粘贴就能直接喂给 ChatGPT / Claude / Cursor。
## ✨ 新功能
两个让 OpenLess 日常体验完全不同的功能:
- 🎨 **风格市场(Style Pack Marketplace)。** OpenLess 不再只有一种写死的「润色」语气。你可以自定义带专属系统提示词的**风格包**,用快捷键随时切换,还能**一键安装社区里别人分享的风格包**,或把自己的风格包发布出去共享。当风格被调到贴合你的真实场景(冷启动邮件、commit message、小红书文案、正式报告、团队语气)时,输出不只是更干净——**效果会明显更好**,因为模型终于在按你真正想要的方式写字。
- ⚡ **流式输出(Streaming insertion)。** 润色后的文字现在会**逐字**流式写入光标,而不是让你干等整段结果落地。体感延迟大幅下降,口述快得几乎跟得上你的思路;当某个应用无法接收流式按键时,会自动回退为一次性粘贴。
## 一个具体的例子
按住快捷键,对着 OpenLess 说:
@@ -118,6 +125,16 @@ OpenLess 想做的是同一类体验,但是:
- 写代码注释、commit message、PR 描述:把脑子里的想法直接落到光标位置。
- 任何「我懒得打字,但又必须输出书面文字」的场景。
## 风格包与市场
**风格包**就是一个有名字、有专属系统提示词的输出风格。你不必被一种内置「润色」语气框住——可以精确地塑造语音输出的样子,而且风格越贴近你的真实场景,效果越好。
- **自定义创作。** 在**风格**页新建风格包,写一段自定义系统提示词(比如「极简工程 commit message」「温暖的客服回复」「带 emoji 的小红书文案」),用快捷键切换当前生效的风格包。
- **从社区安装。** 打开**市场**,浏览、搜索并一键安装别人分享的风格包,给好用的点赞。
- **发布自己的。** 在 设置 → 市场 用 GitHub 身份登录后,从风格页点 **发布到市场**。上传内容会先经过审核,通过后才公开。
市场由 OpenLess 自建的、带审核的后端提供,所以目录是经过策展的,而不是任人堆砌。
## 项目方向
OpenLess 只做一件事:**把语音变成可用的书面文字(尤其是 AI prompt),落到当前光标位置。**
@@ -136,16 +153,19 @@ OpenLess 只做一件事:**把语音变成可用的书面文字(尤其是 AI
| [Lazy](https://heylazy.com) | 闭源笔记/捕获工具 | 不做笔记容器,专做「插入到任意输入框」 |
| [Superwhisper](https://superwhisper.com) | 闭源 macOS,订阅制 | 开源;目前云端 ASR 优先,本地 ASR 在 roadmap |
## 当前状态(v1.2)
## 当前状态(v1.3.6)
- Tauri 2 + Rust 后端 + React/TS 前端;macOS 12+,Windows 10+。
- **切换式 + 按住说话** 双模式录音;任意阶段按 `Esc` 都能取消(包括润色 / 插入中)。
- 🎨 **风格市场(Style Pack Marketplace)** — 在 App 内市场浏览、安装、点赞社区**风格包**,也可发布自己的(每个风格包带独立系统提示词,可用快捷键切换)。由带审核的市场后端提供,上传内容审核通过后才公开。
- ⚡ **流式输出(Streaming insertion)** — 润色文字逐字写入光标以降低体感延迟,并在不满足条件时自动回退为一次性粘贴;可在 设置 → 录音 开关。
- **切换式 + 按住说话** 双模式录音,外加 **MediaPlayPause 触发**,让有线耳机线控也能开始/停止录音;任意阶段按 `Esc` 都能取消(包括润色 / 插入中)。
- **云端 ASR**:火山引擎流式 ASR、OpenAI Whisper 兼容批式 ASR、Apple Speech(macOS)。
- **本地 ASR**:内置 Qwen3-ASR(0.6B / 1.7B),通过 vendored `Open-Less/qwen-asr` 链接;Windows 端支持 Foundry Local Whisper。
- **润色 Provider**:Ark / DeepSeek / OpenAI / Doubao / Anthropic 兼容的 Chat Completions,以及任意 OpenAI 兼容的自定义 endpoint。
- 4 种输出模式:原文、轻度润色、清晰结构(**AI prompt 模式**)、正式表达。另含**翻译热键**——按下后说一段话直接转成目标语言插入([#43](../../issues/43))。
- **划词语音问答(QA)面板** — 独立热键打开浮窗,对当前选中文本发起语音 Q&A([#118](../../issues/118))。
- 主窗口按「概览 / 历史 / 词典 / 风格 / 设置」组织;托盘图标常驻;浮动状态胶囊。
- 主窗口按「概览 / 历史 / 词典 / 风格 / 市场 / 设置」组织;托盘图标常驻;浮动状态胶囊会跟随你正在输入的屏幕显示(多显示器)。
- **本地模型管理** — 在设置中管理本地 ASR 模型的磁盘存储。
- **多语言 UI** — 设置 → 语言 切换简体中文 / 繁體中文 / English / 日本語 / 한국어(首启按系统语言自动)。
- **应用内自动更新** — 设置 → 关于 → 检查按钮;CI 用 Tauri updater 签名 manifest,客户端校验后下载安装。
- **Beta 渠道(opt-in)** — 设置 → 关于 → 加入 Beta 渠道,会显示最新 prerelease 的下载入口供手动安装;Beta 包永远不会被自动推送给正式版用户(详见 [贡献流程](#贡献流程))。
@@ -330,7 +350,6 @@ commands.rs Tauri IPC 接口
- 常用片段 Snippets:尚无 UI 和触发逻辑。
- 历史增强:复制按钮、搜索、重新润色、重新插入。
- 粘贴上一条结果快捷键。
- 多屏定位:胶囊跟随焦点所在屏幕显示。
## 维护者:发布检查