分享个我用 kimi k3 抄的一款粘贴板软件

awenforlinux 2026-07-26 21:26 1

如果你每天要在浏览器、IDE 、文档、聊天窗口之间复制粘贴几十次,就会明白一件事:剪贴板才是最常用的生产力工具。但它又是最被忽视的——系统默认只记住最后一条,一旦手滑复制了新内容,刚才那段文字就再也找不回来。


我之前用 Rust 写过一个剪贴板工具,一直在 Windows 上用。基本功能都有,但越用越觉得受限:想要更顺滑的 UI 动画、更跟手的拖拽交互、更深度的系统集成,在 Windows 上绕路太多。


后来我转到 macOS 主力环境,索性用 Swift 重新写了一遍,并全程用 Kimi K3 做辅助。结果发现,Swift + AppKit/SwiftUI 能做出很多 Rust 版本难以实现的效果——比如直接把文件拖到面板里保存、更精准的全局热键、与系统钥匙串和 iCloud 的原生集成。


新版本仍然叫 ClipVault,但它已经是从 0 开始、为 macOS 重新设计的一版。


它解决的不是"能不能找到",而是"找起来爽不爽"


剪贴板工具的核心就一件事:你曾经复制过的东西,现在能迅速再找回来。但"迅速"两个字,包含了很多细节。


ClipVault 的交互完全围绕一个底部面板展开。按 ⇧⌘V,面板从屏幕底部滑出,最近复制的内容以卡片形式横向排列。你不需要离开当前窗口、不需要打开一个完整应用,视线几乎不用移动,手指也不需要离开键盘。



  • 左右箭头切换选中

  • 回车直接粘贴

  • ⌘1⌘9 一键粘贴前 9 条

  • ⌥⌘F 展开搜索框,输入关键词即时过滤


这些快捷键都可以在设置里自己改。对我来说,理想状态是"肌肉记忆替代鼠标",所以所有高频操作都给了键盘入口。


不只是历史,更是你的知识碎片


复制的内容种类很杂:一段 URL 、一个颜色值、一张截图、几行报错日志、一句临时想到的灵感。


ClipVault 会自动识别类型:链接会显示网站 favicon ,hex 颜色会直接渲染成色块,图片会显示缩略图,文本会显示字符数。这样你不用点开卡片,扫一眼就知道是不是自己要找的那一条。


但历史条目终究会被清掉。真正需要长期保留的东西,我会拖到"集合"( Pinboard )里。集合就像一个个小抽屉:常用代码片段、设计参考、写作素材、待读链接……每个集合可以命名、配不同颜色,双击即可重命名。放进集合的内容会永久保留,不受自动清理策略影响。


从"临时复制"到"主动收藏",这个边界很重要。历史是流水,集合是书架。


Swift 带来的新能力:把文件直接拖进面板


这是 Rust 版本让我最遗憾的一点:Windows 上要实现文件拖拽进窗口,要么依赖第三方框架,要么自己处理大量 COM 和窗口消息,做到最后体验总是很生硬。而 macOS 上的 SwiftUI/AppKit 对拖放有原生支持,几行代码就能让面板接受文件拖拽。


在 ClipVault 里,你可以直接从 Finder 拖一个文件到面板里,它会变成一个文件类型的剪贴板条目,显示文件名、图标和路径。需要时按回车或 ⌘1 就能把它重新写回剪贴板,再粘贴到聊天窗口、邮件或命令行里。


这个能力看起来小,但用起来很顺:图片素材、PDF 、配置文件、脚本……只要拖一下就能暂存,不用专门打开一个文件管理器或云盘。


搜索和筛选,是剪贴板的第二大脑


当历史超过几百条,滚动就找不到了。ClipVault 的搜索框支持全局搜索,同时覆盖历史和所有集合。输入的同时结果即时更新,150ms 的防抖让频繁输入也不会卡顿。


如果只记得"大概是个图片"、"从微信里复制的"或者"是某个颜色",还可以用筛选气泡按类型、来源应用、集合进一步缩小范围。这种组合查询在日常使用中非常高效:



"找昨天从浏览器复制的那个蓝色色值"——输入 blue + 筛选"颜色" + 看相对时间,基本秒定位。



数据放在本地,加密是我给自己设的门


这可能是 ClipVault 和大多数剪贴板工具最不一样的地方:所有数据默认只存在本机


历史记录、集合、图片,全部经过加密后落盘,密钥保存在系统钥匙串里。即使别人拿到你的电脑硬盘文件,也无法直接读取内容。同步也走了 iCloud Drive ,但同步目录里的文件同样是加密的。


我当然可以把数据上传到某个服务端实现跨设备同步,但剪贴板这个场景太敏感了。它可能包含 token 、身份证号、内部链接、私人对话。本地优先 + 端到端加密,是我能接受的最低标准。


另外,ClipVault 会主动忽略两类内容:



  • 密码管理器标记为"机密"的内容

  • 应用标记为"临时"的内容


不该记的,它不会记。


一些贴心的小设计



  • 暂停记录:临时要复制一些敏感内容,可以暂停 5 分钟到 1 天,到期自动恢复。

  • 粘贴方式可选:可以直接模拟 ⌘V 粘贴到当前应用,也可以只写回剪贴板,由你自己决定。

  • 新建文本项:有时候突然想到一句话,按快捷键就能写一条纯文本进去,支持简单格式。

  • 菜单栏常驻:左键呼出面板,右键进入设置或退出。

  • 登录时启动:随 Mac 启动,安静待在后台。

  • 面板位置可选:底部、顶部、左侧、右侧,甚至左右侧会自动切换为竖向布局。

  • 外观与语言:跟随系统或单独设置浅色/深色模式,支持简体中文与 English 。


ClipVault 通用设置


这些设置都在同一个窗口里,左侧边栏切换,不需要翻来翻去。


从 Rust 到 Swift:我为什么决定重写


ClipVault 并不是第一次出现。我之前用 Rust 写过一个版本,在 Windows 上用了挺久,核心逻辑其实早就想清楚了:本地存储、卡片历史、快速搜索、集合收藏。


但转到 macOS 后,我发现很多体验在原版里只能妥协:没有原生的系统钥匙串集成、拖放文件进窗口很别扭、UI 动画和面板行为很难做到"像原生应用"。于是我决定用 Swift 在 macOS 上完整重写——一来性能足够好,二来能深度调用 NSPasteboard、全局热键、钥匙串和 iCloud Drive 。


Kimi K3 是这次重写的"结对程序员"


整个开发过程我几乎都在用 Kimi K3。它帮我完成了大量 Swift 代码的生成、调试和重构,尤其是处理 NSPasteboard、底部面板动画、全局热键这些 macOS 特有的 API 时,K3 的长上下文和代码理解能力省了很多时间。


Kimi K3 控制台


上图是我在 Kimi 后台的截图,K3 已经正式上线,最高支持 1M 上下文。对这类需要反复打磨 UI 细节和系统交互的桌面应用来说,能把整段 SwiftUI 视图代码、事件处理逻辑一次性丢进去讨论,效率提升非常明显。


下面是 ClipVault 的实际界面:


ClipVault 底部面板


这是刚安装完、还没有历史记录时的底部面板。顶部的「剪贴板 / 图片 / 文件」标签就是集合入口,右侧搜索和筛选会在这里展开。整个面板没有复杂的窗口边框,呼出和收起都很轻。


ClipVault 实际使用效果


实际使用时,面板可以停靠在屏幕右侧(也可以选底部、顶部或左侧)。上图里我把刚写好的博客正文复制了进去,ClipVault 自动识别为文本类型,显示来源应用和字符数,按 ⌘1 就能直接粘贴回来。


ClipVault 隐私设置


隐私设置页是我花时间最多的地方之一。这里可以开启「忽略机密内容」和「忽略瞬时内容」,也可以把 1Password 这类密码管理器加入忽略应用列表。辅助功能权限按需授权,不需要时 ClipVault 只会把内容写回剪贴板,不会自动帮你粘贴。


用 Swift 写 macOS 应用、用 Kimi K3 做辅助,这个组合让我一个周末就能把原型跑起来,再花一两个晚上把细节打磨到能日常使用的程度。如果你也有类似"何不自己做一个"的想法,现在的工具链真的已经够用了。


写在最后


ClipVault 不是一个大而全的工具,它只是把"复制粘贴"这件小事做到了我觉得舒服的程度:响应快、不联网、能搜索、能收藏、能加密。


目前它只支持 macOS 14 以上系统。如果你也受够了订阅制剪贴板工具,或者只是想找一款真正本地的替代品,可以试试看。


下载地址:ClipVault-Swift v1.1.0 Release,欢迎提 issue 或 PR 。

最新回复 (7)
  • awenforlinux 楼主 07-26 21:28
    1
    https://www.bilibili.com/video/BV1jf3L6MEBh/?vd_source=1c71906f998923e101bc066e2dee3ce6
  • SteveRogers 07-26 22:16
    2
    难的在 ios 端要证书
  • Wcowin 07-26 23:58
    3
    这赛道真卷啊,我的作品是 https://github.com/One-Clip/OneClip
  • shilianmlxg 07-27 00:18
    4
    大佬,windows 剪贴板 偶尔第一次失效 得第二次才能复制成功,这种也没报错,请问怎么排查呢
  • awenforlinux 楼主 07-27 08:34
    5
    @Wcowin 哈哈哈
  • Wcowin 07-27 10:37
    6
    @awenforlinux #5 共同进步!
  • yakun4566 07-27 10:40
    7
    确实卷,之前用 ditto 很多年,前几天发现一个 clipi 在尝试使用(因为带多设备同步),真的而用不过来了
* 帖子来源V2EX
返回