如果你每天要在浏览器、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 。
这些设置都在同一个窗口里,左侧边栏切换,不需要翻来翻去。 从 Rust 到 Swift:我为什么决定重写 ClipVault 并不是第一次出现。我之前用 Rust 写过一个版本,在 Windows 上用了挺久,核心逻辑其实早就想清楚了:本地存储、卡片历史、快速搜索、集合收藏。 但转到 macOS 后,我发现很多体验在原版里只能妥协:没有原生的系统钥匙串集成、拖放文件进窗口很别扭、UI 动画和面板行为很难做到"像原生应用"。于是我决定用 Swift 在 macOS 上完整重写——一来性能足够好,二来能深度调用 NSPasteboard、全局热键、钥匙串和 iCloud Drive 。 Kimi K3 是这次重写的"结对程序员" 整个开发过程我几乎都在用 Kimi K3。它帮我完成了大量 Swift 代码的生成、调试和重构,尤其是处理 NSPasteboard、底部面板动画、全局热键这些 macOS 特有的 API 时,K3 的长上下文和代码理解能力省了很多时间。
上图是我在 Kimi 后台的截图,K3 已经正式上线,最高支持 1M 上下文。对这类需要反复打磨 UI 细节和系统交互的桌面应用来说,能把整段 SwiftUI 视图代码、事件处理逻辑一次性丢进去讨论,效率提升非常明显。 下面是 ClipVault 的实际界面:
这是刚安装完、还没有历史记录时的底部面板。顶部的「剪贴板 / 图片 / 文件」标签就是集合入口,右侧搜索和筛选会在这里展开。整个面板没有复杂的窗口边框,呼出和收起都很轻。
实际使用时,面板可以停靠在屏幕右侧(也可以选底部、顶部或左侧)。上图里我把刚写好的博客正文复制了进去,ClipVault 自动识别为文本类型,显示来源应用和字符数,按 ⌘1 就能直接粘贴回来。
隐私设置页是我花时间最多的地方之一。这里可以开启「忽略机密内容」和「忽略瞬时内容」,也可以把 1Password 这类密码管理器加入忽略应用列表。辅助功能权限按需授权,不需要时 ClipVault 只会把内容写回剪贴板,不会自动帮你粘贴。 用 Swift 写 macOS 应用、用 Kimi K3 做辅助,这个组合让我一个周末就能把原型跑起来,再花一两个晚上把细节打磨到能日常使用的程度。如果你也有类似"何不自己做一个"的想法,现在的工具链真的已经够用了。 写在最后 ClipVault 不是一个大而全的工具,它只是把"复制粘贴"这件小事做到了我觉得舒服的程度:响应快、不联网、能搜索、能收藏、能加密。 目前它只支持 macOS 14 以上系统。如果你也受够了订阅制剪贴板工具,或者只是想找一款真正本地的替代品,可以试试看。 下载地址:ClipVault-Swift v1.1.0 Release,欢迎提 issue 或 PR 。