想把下载文件夹里的文件发进聊天窗口?先拖到屏幕边上的 OpenYoink,松手,切到聊天窗口,再从 OpenYoink 拖出去。不用来回摆两个窗口。
它只待在菜单栏,不占 Dock。侧边暂存架和顶部灵动岛可以只开一个,也可以都开,里面的东西是同一份。
- 什么都能放:文件、文件夹、文本、图片、链接。来源应用愿意给的话,邮件、日历事件和联系人也行。
- 找得到、理得清:空格预览,多选、框选、叠成一摞(Stack),搜索、按类型筛选,手滑删了按
⌘Z找回来。 - 随叫随到:点屏幕边缘的把手、按快捷键、摇一摇鼠标,或者拖着文件靠过去都能唤出。不想在某个应用里被打扰,可以单独关掉。
- 剪贴板历史:可收藏、搜索、预览,一键丢进暂存架。默认不记录,要你自己打开。
- 多显示器、多个桌面和全屏应用下都能用;中英文界面,可登录时启动,会自动更新。
OpenYoink Island 待在屏幕顶部。平时收成一条,显示正在播放的歌、倒计时或者传输进度;点一下展开对应的模块。有刘海的 Mac 上它和刘海连成一体,外接屏和没刘海的机器上是一枚悬浮胶囊。
下面都是实际截图,点开看大图。
Tip
电池模块显示的是电池这一侧的功率,不是插座的耗电。正数是在充,负数是在放;插着电且已充满时接近 0 W,这是正常的。
另外还有一个传输模块,用来看后台交付文件的进度和失败情况。
新装的 OpenYoink 默认开着灵动岛(设置 → 通用 里可以关)。展开后点左上角的齿轮进模块库,打开想用的模块、点图钉钉到顶部,拖一拖调整顺序。收起按 Esc,或者点外面、点顶部中间。
懒得一个个挑的话,设置 → 通用 里有"文件暂存""文件与剪贴板""完整工具箱"三套预设,只换模块和展开方式,不会动你的文件和历史,也不会替你打开剪贴板记录。
正在播放、快速访问、剪贴板历史这三个模块默认关着。把鼠标拖着文件靠近屏幕顶部来展开灵动岛,这个也默认关着,在 设置 → 触发器 里打开,和侧边暂存架的触发方式互不影响。
需要 macOS 15 Sequoia 或更新的系统,Apple 芯片和 Intel 都能用。
brew install --cask muqy1818/tap/openyoink安装包同样来自 GitHub Releases。装完后 Homebrew 会去掉 OpenYoink 的隔离标记,所以第一次打开不会被 Gatekeeper 拦下来(但这不代表它经过了 Apple 公证)。
- 从 GitHub Releases 下载最新的 DMG。
- 打开 DMG,把 OpenYoink 拖进
Applications。 - 第一次打开如果被系统拦住,在 Finder 里右键 OpenYoink 选"打开",或者去 系统设置 → 隐私与安全性 里放行。
Note
我目前没有 Apple 开发者证书,Releases 里的版本是 ad hoc 签名,没做公证,所以手动安装时 macOS 会拦一下。之后的自动更新会用 Sparkle 的 EdDSA 签名校验安装包,但第一次下载请自己确认来源。
还是打不开?
先确认安装包是从上面的 GitHub Releases 下的,再核对一下校验值:
shasum -a 256 OpenYoink-VERSION.dmg # VERSION 换成实际版本号结果应该和 Homebrew cask 里对应版本的 sha256 一致。确认没问题后,用下面这条命令去掉隔离标记(相当于让 Gatekeeper 放过这一个应用):
xattr -dr com.apple.quarantine /Applications/OpenYoink.app| 想做什么 | 怎么做 |
|---|---|
| 显示 / 隐藏 | ⌘⇧Space、菜单栏,或点屏幕边缘的把手 |
| 放东西进来 | 拖到暂存架或边缘把手上 |
| 移入(不留原件) | 按住 ⌘ 再拖进来,原文件会进废纸篓,先看这里 |
| 暂存当前剪贴板 | 连按两下 ⌘⇧Space |
| 剪贴板历史 | ⌘⇧V(可以在设置里改或关掉) |
| 搜索 / 撤销移除 | ⌘F / ⌘Z(只能撤销你手动移除的卡片) |
| 预览 | 选中后按空格,或双击 |
| 多选 | 按住 ⌘ 点选,或在空白处拖出选框 |
| 移除 | 鼠标悬停点 ×、按 Delete,或右键 |
| 换位置 | 沿屏幕边缘拖动把手,或在设置里选 |
更多操作见使用文档。
直接拖进来的文件,OpenYoink 只记住它在哪,不会移动它。移除卡片、或者打开"拖出后移除",都不会删掉原文件。拖到 Finder 时只是请求复制一份,收不收由目标应用决定。
Warning
按住 ⌘ 拖进来是"移入":先把文件复制到应用自己的沙箱里,确认副本完好后,再把原文件挪进废纸篓。中途出错就保留原文件,按普通方式暂存。清空废纸篓之前,原文件都还能找回来。
移入的东西要等成功拖到目的地后,卡片和沙箱里的副本才会删掉,和普通卡片的"拖出后处理"设置无关。拖出被取消或失败时会原样保留,下次再试。
各类内容存在哪、什么时候清理
| 内容 | OpenYoink 怎么存 |
|---|---|
| 文件、文件夹 | 记住原文件的位置和访问授权(sandbox bookmark),不复制 |
| 纯文本、链接 | 直接存在暂存架的数据里 |
| 图片、HTML、RTF | 在应用沙箱里存成文件 |
| 联系人、日历事件、邮件 | 来源应用给得出数据时,存成 .vcf、.ics、.eml |
原文件被挪走、删掉,或者所在的硬盘没接上,卡片会显示为不可用,等能重新找到文件时会自动恢复。
文本和链接跟着卡片走,卡片删了它们也就没了。图片、富文本、邮件这类生成出来的文件,一般在卡片移除后的下次启动时清掉;也可以去 设置 → 存储 手动看看、清理。
普通文件拖出去时,会同时提供文件路径和 Chromium 认得的文件名;移入的文件用 file promise,等目的地确认写好了才从架子上撤下来。具体能不能拖成功,最终还是看目标应用或网站。
- 不用注册账号,不收集统计数据。东西都存在本机沙箱里的
Application Support/OpenYoink。 - 开启了 App Sandbox,只能碰你自己拖进来或选中的文件。日常使用不需要辅助功能或输入监控权限。
- 唯一的后台联网是检查和下载更新(访问 GitHub Pages / Releases),可以在设置里关掉。
- 正在播放模块不联网。它优先用本地 helper 读取播放信息,退而用 AppleScript 控制 Apple Music / Spotify,这时系统可能会问你要"自动化"权限。这个模块出问题不会影响暂存架。
- 快速访问只记住你添加的文件夹位置。取消收藏不会删除文件夹,用什么打开交给 macOS 决定。
默认不记录。没打开时,只有你连按两下快捷键暂存剪贴板的那一刻才会读一次。打开之后,只记新复制的文本、HTTP(S) 链接和 PNG/TIFF 图片,不会回头翻以前的内容,也不记复制的文件。
历史以明文存在本机,不上传、不同步。普通条目可以留 30、100 或 300 条(默认 30),保留 1、7 或 30 天(默认 7 天);另外最多收藏 30 条,不会过期。所有内容加起来上限 20 MiB。关掉记录不会删已有的历史,点"清空"才会删。
常见密码管理器标记为隐私的内容、以及你设成忽略的应用,都会跳过,但没办法认出所有敏感信息。复制密码或令牌之前,最好先暂停记录。
需要 macOS 15+ 和 Xcode 26+。
git clone https://github.com/MuQY1818/OpenYoink.git
cd OpenYoink
xcodebuild \
-project Open-Yoink.xcodeproj \
-scheme OpenYoink \
-destination 'platform=macOS' \
build
xcodebuild \
-project Open-Yoink.xcodeproj \
-scheme OpenYoink \
-destination 'platform=macOS' \
test \
-only-testing:OpenYoinkTests用 Swift 6、SwiftUI 和 AppKit 写的。本地构建不需要设置 DEVELOPMENT_TEAM;上面的测试命令只跑单元测试,不跑 UI 自动化。
发版用 Scripts/make-release.sh,可以走 Developer ID 签名加公证,也可以显式传 --adhoc 出社区版。签名失败时脚本会直接停下,不会悄悄降级。
用着不顺手、遇到 bug 或者有想法,欢迎开 Issue。报 bug 时附上 macOS 版本、OpenYoink 版本和复现步骤会很有帮助;截图前留意别带上私人文件或剪贴板内容。
PR 也欢迎。改动比较大的话,先开个 Issue 聊聊;提交前请跑一遍完整的单元测试。
OpenYoink 以 MIT License 开源。它是个独立项目,和商业应用 Yoink 及其开发者没有关系。
自动更新靠 Sparkle,Star 趋势图来自 Star History。用到的第三方组件和许可证见 THIRD_PARTY_NOTICES.md。
© 2026 weijue · MIT License







