我用 AI 做了一个跨平台的PopClip:拾趣Magpie

0 阅读5分钟

image.png

源码:github.com/demo007x/Ma…

官网(演示截图、权限说明、安装教程):fm126.top

PopClip 都做了十五年了,为什么我还是自己写了一个划词工具?

先说清楚我做了什么:拾趣(Magpie),一个免费开源的 macOS 小工具。你在屏幕上用鼠标划中任何一段文字,它就在字旁边冒出一小条,上面是几个按钮:翻译、总结、解释、搜索、复制、打开链接、写邮件、复制验证码。

点一下出结果,点空白就没了。屏幕上划不出来的字(图片、扫描件、视频字幕),可以框选截图让它认出来。

就这些。它不弹通知、默认常驻菜单栏不占 Dock(想显图标可以打开)、不打断你正在读的东西,全天挂在后台。

选中一句话后冒出的动作条,右边 ˅ 是收起来的其它动作;这里翻译的二级菜单正展开,可临时换用哪个翻译服务

源码 github.com/demo007x/Ma… | 官网 fm126.top | 当前 0.1.6

我会用得到它的三个瞬间

读英文 PDF。 选中一个词,右键,往下翻"服务",再往里找翻译,等系统弹个半透明窗,看完找关闭按钮,然后忘掉刚才读到哪了。你要的其实只是"翻译",中间四次点击纯属找菜单。

你要的不只是"翻成中文"。 读英文资料的时候,一个术语它是什么意思、这段话为什么重要、这一整段帮我提炼一下——这些右键菜单一条都不给,系统那个服务只会把字面意思翻过来。想问就得复制、切到别的软件、粘贴、再问,问完还得切回去。

字不在文本层。 一张产品截图里的地址、扫描版论文的一整页、会议 PPT 拍照。这时候世界上最好的划词工具都没用,因为没有任何文字可以被选中。

这三件事加起来,就是我全天的文字入口。

这个品类不缺产品

划词工具不是新发明。PopClip 2011 年就在了,十五年是实打实的十五年,$17 买断、也在 Setapp 里,两百多个扩展,是这个品类的教科书。

它的问题是时代的:它的动作是靠扩展拼出来的,AI 那部分是后贴的(要接扩展、要配 Key、结果回来是个独立窗口);图片里的字它不管;对自绘界面的兼容也不好看,它那套"选中就弹条"的机制在标准 App 上很顺,一进微信和某些 Electron 应用就没反应。

Bob、Easydict 这类开源取词翻译工具,翻译和划词都做得很扎实,但它们解决的是"查词翻句"这一件事;需求一旦超出这个范围——总结一段、把地址电话提出来、把这段送回我自己的笔记——就得换工具。它们的 OCR 也基本围着"翻译取词"这一个方向做。

豆包桌面版现在也有很成熟的划词工具栏:技能管理、自建技能、前 5 个显示加下拉、可禁用应用,全套都有,而且免费、模型比你强得多。我完全不打算在 AI 上跟它比,比不过,也不该比。

那我还做什么?因为它解决了"这段文字是什么意思",没解决另外两件事:

  1. 它只碰得到"能被选中的文本"。图片、扫描件、视频帧、客户端 UI 里的字,不在它射程内。所以我要有识图那条管线。

  2. 它的答案落在它自己窗口里。我翻译完想存进笔记,还是那六步:复制、切应用、找到那条笔记、粘贴、补来源、补时间。豆包不是不想做这个,是它的商业模型不允许——把你的内容送到 Notion 去,等于把价值送出自家生态。

第二点是我最在意的,也是目前还没做的那部分(要接 Obsidian、flomo、Notion,走各家的 URL scheme / API,不自己建笔记库)。

现在你能看到的是第一步和中间那一层:屏幕上的字进得来,出来靠复制、搜索、写邮件这些通用出口。

现在实现的功能

划完出现的按钮,动作是本地就是本地、要模型就是要模型,分得清楚:

复制、搜索(丢进你指定的引擎)、打开链接、写邮件、复制验证码、复制号码——这六个不联网,选中一段像邮箱或验证码的东西才会出现对应的按钮,属于纯规则判定。

翻译、解释、总结——走 AI。翻译的提示词我改了很多轮,在意的不是"翻得漂亮",是技术文档别被翻成口语、术语用通行译法、代码和 URL 原样保留。这三个动作的提示词你能在设置里自己改。

选中中文标题点翻译:上半是译文,下半几行是它对具体词的处理说明(比如"神器"为什么翻成 productivity tool 而不是 killer tool);底部一排是这条结果上还能继续点的动作转存失败,建议直接上传图片文件

自定义动作——按钮名字、发出去的提示词、用哪个模型,你定。比如"改成礼貌一点的英文邮件"、"把这段里的地址和电话提出来"这种,我猜不到别人下一步想做什么,所以做成你自己加。

设置 › 划词页:上面能选动作条一次显示几个(默认 4),中间是内置动作和「新建 AI 动作」,下面「提取信息」那组只在选中的东西真是网址/邮箱/号码/验证码时才出现转存失败,建议直接上传图片文件

截图识字:系统原生那块框选交互(就是 ⌘⇧4 那个),框完本地识别成文字,识出来的图还能钉在屏幕上——读文献、抄长地址的时候有用。

视频帧上的中英双行字幕,框选之后两行都认出来了转存失败,建议直接上传图片文件

长段落也行:论文摘要页整块框进去,标题、作者、摘要按顺序出来,识别结果在面板里可以直接改转存失败,建议直接上传图片文件

现在什么水平

我自己全天挂着在用,日常够用。

微信这类软件走兜底,极少数会慢半拍;取词判定是纯几何阈值(拖动超 6px 算划词、按下超 400ms 且移动不到 10px 判成双击点词、松手 200ms 防抖、和上次差 4px 内算重复丢弃)

这几个数字是手调的,个别界面划一大段就是不弹;没有自动化测试,每次发版是 pnpm check + cargo check + cargo build,然后在 Safari、Chrome、微信、备忘录、一个 Electron 应用里各划一遍

没有埋点,取词、截图、识别全在你本机;文本只在你点了 AI 动作那一刻、带着你填的 Key、发给你自己选的那个服务。

源码:github.com/demo007x/Ma… 官网(演示截图、权限说明):fm126.top

欢迎使用,有什么想法可以给我提,如果你也愿意可以一起参与做。

说了这么多,我想看看你们平时都使用哪类软件?

你划完字最常点的那两个按钮是什么;

以及哪个软件里你划不出字。你报上来我帮你们解决