ClipboardLite 是一款轻量 macOS 剪切板历史工具,支持文本、图片和文件记录,重点控制缓存和内存占用,避免复制大表格、大图片或大量文件后让 App 变得笨重。
本项目由项目维护者提出需求、测试和调整,主要代码由 OpenAI Codex 协助生成与修改。
项目以开源方式发布,采用 MIT License。你可以自由使用、修改和分发,但请保留许可证说明。
- 全局快捷键弹出剪切板面板
- 菜单栏常驻
- 记录文本、图片、文件
- 支持搜索历史记录
- 支持按启用的保存类型筛选历史记录
- 支持固定记录
- 支持按最新复制时间显示记录
- 支持单击复制或双击复制
- 支持右键操作:复制为纯文本、删除记录
- 支持图片悬停预览,并可设置预览延时和预览高度
- 支持忽略指定应用的复制记录
- 支持弹窗位置设置:光标附近、屏幕中央、最后位置
- 支持菜单栏图标样式选择
- 支持按类型清除历史记录,并二次确认
- 支持打开弹窗面板、打开存储目录等快捷操作
已打包好的 App 位于:
dist/ClipboardLite.app
可以直接把它拖到 macOS 的“应用程序”文件夹,然后双击启动。
如果 Finder 暂时仍显示旧图标,通常是 macOS 图标缓存未刷新,稍等一会儿或重新复制到“应用程序”即可。
swift run ClipboardLite重新打包:
./package-app.sh打包后会生成:
dist/ClipboardLite.app
建议提交到 GitHub 的内容:
Sources/Assets/Packaging/Package.swiftREADME.mdLICENSE.gitignorepackage-app.sh
不建议提交:
.build/dist/AppIcon.iconset/.DS_Store- 本机运行数据:
~/Library/Application Support/ClipboardLite - 本机日志或临时文件
普通复制历史不需要额外权限。
如果需要“点击历史记录后自动粘贴到当前 App”,macOS 需要授予辅助功能权限:
系统设置 -> 隐私与安全性 -> 辅助功能 -> ClipboardLite
没有辅助功能权限时,ClipboardLite 仍会把内容复制到系统剪切板,只是需要手动粘贴。
数据保存在:
~/Library/Application Support/ClipboardLite
主要文件:
index.json:历史记录索引、预览、类型、大小、时间等元数据settings.json:用户配置Payloads/:文本内容、图片原图、文件缓存、原始剪切板格式Thumbnails/:图片缩略图
App 内存里主要保留历史列表元数据和预览,不会把所有原始文本、图片、文件一次性读进内存。
默认策略:
- 文本超过
512 KB不保存 - 图片超过
8 MB不保存 - 文件单次超过
64 MB不保存 - 最多保存
500条 - 总缓存默认
500 MB - 疑似大表格会按行数、制表符数量跳过
这些都可以在设置中调整。
文件历史不是只保存原路径。
新版会把复制的文件或文件夹复制到 ClipboardLite 缓存目录中。之后从历史记录里复制文件时,复制的是缓存中的文件。删除对应历史记录时,也会删除缓存里的文件副本。
当超过保存条数:
- 不区分类型
- 从最久未复制的记录开始删除
当超过总缓存:
- 优先删除文件
- 再删除图片
- 最后删除文本
- 每一类内部都从最久未复制的记录开始删除
置顶记录会尽量保留,不参与自动淘汰。
搜索不区分英文大小写。
支持简单规则:
A B:同时包含A和B"A B":包含完整短语A Ba可以搜到a和A
ClipboardLite 会尽量保存文本的原始剪切板格式。
从 Excel 复制表格后,再从 ClipboardLite 中复制回 Excel,通常可以保留表格格式,而不是只变成纯文本。
为了避免大表格撑爆缓存,原始剪切板格式也会受到大小限制。特别大的 Excel 内容可能会被跳过或只保留纯文本。
设置中可以配置忽略应用。
可以每行填写一个应用名称或 Bundle ID,例如:
微信
com.tencent.xinWeChat
Safari
com.apple.Safari
也可以在设置页从“正在运行的应用”下拉框里选择后添加。
图标文件位于:
Assets/ClipboardLite-AppIcon.png
Assets/ClipboardLite.icns
打包时会自动将 ClipboardLite.icns 放入 App。