From 08ad6b7979813a39dd5e6a6e836f92293eb4d457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=95=E6=9F=8F=E9=9D=92?= Date: Mon, 1 Jun 2026 18:00:22 +0800 Subject: [PATCH] =?UTF-8?q?docs(readme):=20=E7=AA=81=E5=87=BA=E9=A3=8E?= =?UTF-8?q?=E6=A0=BC=E5=B8=82=E5=9C=BA=20+=20=E6=B5=81=E5=BC=8F=E8=BE=93?= =?UTF-8?q?=E5=87=BA=EF=BC=8C=E7=8A=B6=E6=80=81=E6=9B=B4=E6=96=B0=E5=88=B0?= =?UTF-8?q?=20v1.3.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++++++++++++++++++++++++----- README.zh.md | 29 ++++++++++++++++++++++++----- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 61f9f631..8ee0e030 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@

Open-source voice input for macOS & Windows.
- 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 you choose.

@@ -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 diff --git a/README.zh.md b/README.zh.md index d1737e31..f9996280 100644 --- a/README.zh.md +++ b/README.zh.md @@ -6,7 +6,7 @@

开源语音输入,支持 macOS 和 Windows。
- 按一次快捷键说话,AI 润色后的文字直接落到当前光标。 + 按住快捷键说话,AI 润色后的文字以你选定的风格,流式落到当前光标。

@@ -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 和触发逻辑。 - 历史增强:复制按钮、搜索、重新润色、重新插入。 - 粘贴上一条结果快捷键。 -- 多屏定位:胶囊跟随焦点所在屏幕显示。 ## 维护者:发布检查