文字、图片、文件,都接得住
重复复制同一内容不会堆成山,只会刷新时间。文件路径原样保留,粘贴回去仍是文件。
macOS 14+ · 原生 SwiftUIv1.0.1
iClip 是常驻菜单栏的剪贴板历史工具。按下 ⌃⇧V,文字、图片和文件就在光标旁浮出来——搜索、置顶,回车即粘贴回原来的应用。
面板预览 · 380 × 510
NATIVE BY DEFAULT
面板、列表、开关、分段控件,能交给系统的都交给系统。iClip 只留下剪贴板这一件事。
重复复制同一内容不会堆成山,只会刷新时间。文件路径原样保留,粘贴回去仍是文件。
搜索框自动聚焦,输入即筛。手不用离开键盘。
临时历史按条数滚动清理,置顶内容不参与淘汰。
历史只写入本机的 Application Support。密码管理器标记为机密的内容,直接跳过。
SwiftUI + AppKit,没有 Electron 外壳,也没有额外常驻进程。
macOS 26 上使用 Liquid Glass,旧系统回退到材质背景。
默认显示图标;隐藏后快捷键依然有效,不占 Dock。
LIVE DEMO
下面是用网页复刻的面板,交互逻辑与 iClip 一致。点按条目、置顶,或用 ↑↓ 和 ↵ 完成一次粘贴。
粘贴目标
选择面板里的条目,或按 ↵,粘贴会出现在这里。
SWIFTUI
用网页模拟 SwiftUI 的分组表单、开关、分段选择器与 Stepper。试试左侧控件;右侧代码展示对应的写法,不是应用源码摘录。
交互演示 · 外观选项仅影响本页,不会修改 macOS 设置
struct SettingsView: View { @AppStorage("showMenuBarIcon") var showMenuBarIcon = true @State private var launchAtLogin = false @State private var limit = 1000 @State private var appearance = Appearance.system var body: some View { Form { Section("通用") { LabeledContent("打开剪贴板") { Button(shortcut) { recordShortcut() } } Toggle("开机启动", isOn: $launchAtLogin) Toggle("显示菜单栏图标", isOn: $showMenuBarIcon) } Section("外观") { Picker("外观", selection: $appearance) { ForEach(Appearance.allCases) { Text($0.title).tag($0) } } .pickerStyle(.segmented) } Section("历史与隐私") { Stepper("保留 \(limit) 条", value: $limit, in: 0...5000, step: 100) Button("清除未置顶历史…", role: .destructive) { confirm = true } } } .formStyle(.grouped) }}
真实截图 点击放大
PRIVACY
iClip 没有服务器,也没有账号。复制的内容只经过本机的 pasteboard 和一个 JSON 文件,不上传、不同步、不埋点。
~/Library/Application Support/iClip/history.json
历史写入用户目录下的 history.json,不经过任何远端服务。
识别 ConcealedType 等标记,密码管理器复制的内容不记录。
文字上限 1 MB,图片上限 25 MB;超出的内容直接忽略,不拖慢面板。
清除未置顶历史只需一次确认;置顶内容由你手动管理。
GET STARTED
项目完全开源,构建脚本只依赖 Xcode 与 Swift。生成的 iClip.app 可以直接拖进「应用程序」。
macOS 14 或以上,Xcode 26+(Liquid Glass SDK)与 Swift 6。旧版 Xcode 大多也能构建,只是没有 Liquid Glass 外观。
在仓库根目录执行下面的命令,产物会出现在 dist/iClip.app。
首次打开后按提示授予辅助功能权限,自动粘贴才会生效。
$ bash scripts/build-app.sh
# 构建完成后
✓ dist/iClip.app
关于自动粘贴:它需要辅助功能权限。未授权时,选中条目只会复制,再按 ⌘V 也能粘贴。本地构建未签名,首次打开请在 Finder 中右键 → 打开。