Skip to content

Repository files navigation

划词助手图标

划词助手

一个独立、轻量的 Windows AI 划词工具。
在任意应用中选中文字,即可快速问答、翻译、写作、提取、分析代码或执行自定义提示词。

Windows Electron React License

项目简介

划词助手将 Cherry Studio 中实用的划词交互独立成一个专注的 Windows 桌面应用。应用常驻系统托盘,通过系统原生选区能力监听其他应用中的文本选择,并在选区附近显示悬浮工具条。

它不绑定特定 AI 平台,只要服务兼容 OpenAI Chat Completions API,就可以连接 OpenAI、OpenRouter、Ollama 或其他自建模型服务。

功能特点

  • 跨应用划词:支持浏览器、Office、记事本、IDE 等 Windows 应用。
  • 截图取词与 PDF 识别(本地 OCR):扫描 PDF、图片、受保护窗口等无法选中文字的内容,可框选屏幕截图或导入 PDF,用内置 PP-OCRv6 模型在本机识别,图片与结果不出设备。
  • 丰富的内置动作:覆盖问答、翻译、纠错、改写、提取、分析和代码处理。
  • 固定与更多菜单:工具条最多固定 6 个常用动作,其余动作收纳到可键盘导航的 Windows 原生“更多”菜单。
  • 动作排序与快捷键:动作可排序并配置全局组合键,保存前会检查重复或被其他应用占用的快捷键。
  • 紧凑的二级菜单:带多个启用选项的动作通过原生二级菜单选择;仅启用一个选项时直接执行,二级动作可单独启停。
  • 短词词典模式:解释短词或术语时,自动返回定义、读音、例句、同义词和专业背景。
  • 多轮上下文会话:围绕选中文本连续追问,也可在其他动作结果后继续对话。
  • 会话控制与可选历史:可新建会话或清空模型上下文;历史默认关闭,开启后使用 Windows 安全存储加密保存在本机。
  • 按动作选择模型:集中管理多个命名 Provider,并为不同动作覆盖 Provider、模型、温度和最大输出;未配置时自动继承默认值。
  • 提示词变量与预览:提示词支持 {text}{language}{program}{question},保存前校验未知变量并提供即时预览。
  • 自定义提示词:可添加自己的动作名称和提示词。
  • 流式结果窗口:模型输出实时显示,支持复制和重新生成。
  • 安全 Markdown 渲染:支持标题、列表、表格、引用、链接和代码高亮,每个代码块可独立复制;原始 HTML 不会执行,外部图片默认隐藏。
  • 长文本保护:显示字符数与预估 Token,超过可配置阈值时必须明确选择截断或先总结,不会静默裁剪选区。
  • 可恢复错误提示:区分认证、模型、频率限制、网络、超时和服务端错误,并提供重试或直达模型设置。
  • 窗口位置记忆:记住结果窗口的尺寸与用户移动后的位置,显示器变化后自动恢复到可见工作区。
  • OpenAI 兼容接口:可配置多组 API 地址、Key、默认模型和请求参数。
  • 系统托盘常驻:关闭设置窗口后继续运行,可选择开机启动。
  • 浅色与深色主题:支持跟随 Windows 系统主题。
  • 本地安全存储:API Key 使用 Electron safeStorage 加密后保存。
  • 应用内更新:启动后自动检查 GitHub Releases;发现新版本后可在“关于”页面下载并重启安装,不需要手动寻找安装包。

内置动作

分类 可用操作
问答 围绕选中文本进行多轮对话
翻译 直接翻译、反向翻译
基础处理 解释、总结、润色
写作 纠错、精简为一句话、精简为要点、扩写、正式/礼貌/口语/专业/营销语气、回复助手、文章/邮件/商品/短视频标题
提取 日期时间、人物组织、地址地点、待办事项、关键词、可配置字段或 Schema 的结构化 JSON
分析 术语解释、观点分析
代码 解释代码、查找问题、添加注释、转换为 JavaScript、TypeScript、Python、Java 或 C#

鼠标悬停工具条图标可查看动作名称和已配置的快捷键。带二级选项的动作会打开 Windows 原生菜单,未启用的二级动作不会显示。

截图取词

遇到无法选中文字的内容(扫描版 PDF、图片、受保护窗口)时,按下全局快捷键(默认 Ctrl+Shift+S,可在设置中修改)打开全屏遮罩,拖拽框选文字区域后松开,应用使用内置 PP-OCRv6 模型在本机识别文字,随后弹出工具栏,可继续翻译、总结、提取或复制。

也可以在“常规”设置中点击“选择 PDF 识别”,导入本地 PDF(含扫描版多页 PDF),应用逐页渲染并识别全部页面文字,随后同样弹出工具栏。PDF 的解析和识别全部在本机完成,文件不会上传。

  • 识别在本地完成,截图、PDF 与识别结果不会上传到任何服务。
  • 识别结果作为选区进入结果窗口后,可在“原文”区域点击“编辑”修正识别误差,再“应用并重新处理”。
  • 识别文字未命中或失败时,系统托盘会给出提示。
  • 在“常规”设置中可启用/停用截图取词、修改快捷键,或直接开始一次截图取词。

工具栏与快捷键

  • 在“快捷动作”页面点击图钉,可以固定或取消固定动作;工具栏最多固定 6 个动作。
  • 未固定但已启用的动作始终可以从“更多”菜单访问。开启“最近使用”后,最近执行的动作会在该菜单顶部显示,但不会替换固定动作。
  • 点击动作的快捷键输入框后直接按下组合键即可保存;快捷键至少需要包含 CtrlAltWin
  • 重复快捷键或已被其他 Windows 应用占用的快捷键不会保存,设置页会显示具体原因。
  • 结果窗口被移动或缩放后会记住新的位置与尺寸;更换显示器或缩放比例后,窗口会自动限制在当前显示器工作区内。

下载与使用

前往 Releases 下载最新版本:

  • 划词助手 Setup x.x.x.exe:Windows 安装器。
  • 划词助手 x.x.x.exe:免安装便携版。

首次运行后:

  1. 打开“模型”页面。
  2. 在默认 Provider 中填写 OpenAI 兼容 API 地址、API Key 和模型名称;也可新增其他 Provider。
  3. 点击“测试当前 Provider”,确认配置可用并保存。
  4. 在其他应用中选中文字,悬停图标查看名称,点击动作执行处理。
  5. 在结果窗口中继续提问。

应用启动后会在后台检查最新版本。发现更新时,打开“关于”页面点击“下载更新”,下载完成后点击“立即安装”;更新包只来自项目配置的 GitHub Releases。

可在“快捷动作”页面固定动作、调整顺序、配置快捷键、关闭不需要的动作或二级选项、配置 JSON 字段或 Schema,并控制是否启用短词词典模式。

每个主动作右侧的“模型与提示词”入口可覆盖 Provider、模型、温度和最大输出;清空覆盖值即可恢复继承。带二级选项的动作统一继承主动作请求配置。

提示词支持以下变量:

  • {text}:当前选中的文本;提示词包含此变量时不会再次追加原文。
  • {language}:当前翻译目标语言。
  • {program}:产生选区的应用名称。
  • {question}:多轮会话中最新的用户问题,单次动作中为空。

使用双花括号可以输出字面量,例如 {{text}} 会得到 {text}。未知变量会在设置页显示中文错误并阻止保存。

“模型”页面可配置长文本提醒阈值,默认是 30000 字符。超过阈值后,结果窗口会显示原始字符数和预估 Token,并要求选择:

  • 截断后处理:只发送阈值范围内的前部内容,并在文本末尾加入明确的截断标记。
  • 先总结再处理:先把完整文本交给模型压缩,再使用摘要执行原动作;模型服务仍需能够接收原始文本长度。

会话输入框会随内容自动增高,到达最大高度后在输入框内部滚动。输入框下方会显示本次问题和上下文的字符数、预估 Token,以及将被省略的较早会话消息数量。

结果窗口底部提供“新会话”和“清上下文”:

  • 新会话:清空当前结果并围绕同一选区重新开始;历史关闭且当前内容尚未保存时会先确认。
  • 清上下文:保留当前窗口中的可见消息,但后续请求不再携带分界线之前的消息。

“历史记录”设置页可主动开启本地历史,并配置最多保留 5–200 个会话。已保存会话支持搜索、重命名、重新打开、删除,以及导出 UTF-8 Markdown 或 JSON。关闭历史不会自动删除已有记录,可使用“全部删除”彻底移除本地历史文件。

API 地址应包含服务版本路径,例如 https://api.openai.com/v1。本地 Ollama 可使用其 OpenAI 兼容地址。

隐私说明

  • 应用不会收集或上传遥测和使用记录,会话历史默认关闭。
  • 开启“最近使用”时,仅在本机设置文件中保存最多 5 个动作 ID,不保存对应选区文本或模型结果。
  • 主动开启会话历史后,应用会在“历史记录”页面显示的 sessions.json 路径中保存选中文本、有效上下文、动作、模型、时间和消息;文件内容使用 Electron safeStorage 调用 Windows 安全存储加密。
  • Markdown 和 JSON 导出文件是用户主动选择位置的 UTF-8 明文文件,不再受应用加密保护。
  • 只有点击 AI 动作后,当前选中文本和本次窗口中的会话内容才会发送到你配置的模型接口。
  • 复制动作完全在本机执行,不会访问网络。
  • 截图取词与 PDF 识别的屏幕截图、PDF 文件与识别结果只在本机内存中处理,不会写入磁盘或上传;内置 OCR 模型随应用安装,运行时无网络请求。
  • 每个 Provider 的 API Key 都使用 Windows 安全存储分别加密,不会进入提示词预览、结果窗口、会话历史或导出文件,也不会写入项目目录。

技术实现

全局选区交互参考了 Cherry Studio 的划词助手功能。本项目为独立实现,不依赖 Cherry Studio 主应用。

本地开发

环境要求

  • Windows 10 或 Windows 11 x64
  • Node.js 22 或更高版本
  • npm 10 或更高版本

启动开发版

npm install
npm run dev

测试与构建

npm test
npm run build
npm run dist:win

构建产物位于 release 目录,包括 NSIS 安装器和便携版。

发布到 GitHub Releases 时使用 npm run dist:win:publish,需要设置 GH_TOKEN。该命令会上传 NSIS 安装器及 latest.yml、blockmap 等更新元数据;便携版不参与应用内自动更新。

Windows 手动验证

在 100%、125%、150% 和 200% 缩放比例下分别检查:

  1. 启用 20 个动作时,悬浮工具栏最多显示 6 个固定动作且不会溢出。
  2. “更多”和动作变体菜单可通过方向键、Enter 与 Esc 操作。
  3. 固定、取消固定、排序、最近使用与快捷键冲突提示符合设置。
  4. 在不同显示器间移动并缩放结果窗口,重新打开后仍完整位于当前工作区。
  5. 工具栏图标悬停提示、复制与设置入口正常。
  6. Markdown 标题、列表、表格、引用和代码块正常渲染,每个代码块可单独复制,HTML、javascript: 链接和外部图片不会自动加载。
  7. 使用中文输入法确认 Enter 选词不会误发送,Shift+Enter 可换行,输入框达到最大高度后内部滚动。
  8. 使用 50000 字符选区分别验证“截断后处理”和“先总结再处理”,确认字符数、预估 Token 和截断提示可见。
  9. 分别模拟无效 API Key、错误模型、HTTP 429、断网和超时,确认提示、重试和“模型设置”入口正确。
  10. 在 100%、125%、150% 和 200% 缩放下检查表格、长代码块、长选区与输入框均不造成页面级溢出。
  11. 历史关闭时完成多轮会话,确认磁盘上不会创建 sessions.json;开启后重启应用可以重新打开会话。
  12. 验证新会话、清空上下文、搜索、重命名、Markdown/JSON 导出、单条删除和全部删除。
  13. 配置两个 Provider,让翻译与代码动作使用不同模型,确认结果窗口显示实际模型且清空覆盖值后恢复继承。
  14. 验证四个提示词变量、{{text}} 转义和未知变量阻止保存,确认包含 {text} 时原文只发送一次。
  15. 按下截图取词快捷键框选屏幕文字,确认识别文本弹出工具栏并可继续翻译/总结;框选无文字区域或识别失败时托盘给出提示。
  16. 选择单页与多页 PDF 识别,确认逐页识别全部文字;结果窗口“原文”区点击“编辑”可修正识别误差并“应用并重新处理”。
  17. 在截图取词识别进行的同时触发 PDF 识别,确认两个任务排队完成且结果正确(模型引擎不会并发调用)。
  18. 在“常规”设置中修改截图取词快捷键,确认全局生效且与其他动作快捷键冲突时提示并回滚。

项目结构

src/main       Electron 主进程、选区监听、AI 请求、配置与加密会话存储
src/preload    安全的 IPC 桥接
src/renderer   设置页、悬浮工具条与结果窗口
src/shared     主进程与渲染器共享类型
tests          动作配置、迁移与 AI 请求辅助函数测试

开源协议

本项目基于 MIT License 开源。

About

独立的 Windows AI 划词助手,支持跨应用翻译、解释、总结、润色和自定义提示词。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages