Mac 上的任意窗口,搬进你的 iPhone 和 iPad
摘要
Sill 是一款开源工具,可将 Mac 上的任意窗口或整个桌面以 HEVC 视频串流到 iPhone/iPad,并支持触控、触控板、键盘和 Apple Pencil 反向操作,连接无需账号或中间服务器。
查看缓存全文
缓存时间: 2026/10/16 04:16
Saffsanity/sill
来源:https://github.com/Saffsanity/sill
Sill
把 Mac 上的任意窗口,搬到你的 iPhone 和 iPad 上。
Sill 可以将 Mac 上的某个窗口或整个桌面显示在你的 iPhone 或 iPad 上,并支持通过触摸、触控板、键盘或 Apple Pencil 进行操作。Mac 端的 Sill 负责捕获窗口画面,将其编码为 HEVC 视频并发送到你设备上的 Sill 应用。你在设备上的点击、轻触、滚动和按键会回传到 Mac。Mac 与设备之间的连接方式包括:同一网络、USB 数据线、无共享网络时的 Direct Wireless Connection(直连无线),或通过你自己的 VPN(如 Tailscale)使用 Remote Access(远程访问)。无需账号,也没有中间服务器。
getsill.app (https://getsill.app) · Mac 下载 (https://getsill.app/download) · 支持 (https://getsill.app/support) · 隐私 (https://getsill.app/privacy) · 条款 (https://getsill.app/terms)
CI (https://github.com/Saffsanity/sill/actions/workflows/ci.yml)
在 App Store 下载 (https://apps.apple.com/app/id6816359860)
Mac 端的 Sill 是免费且经过公证的下载,地址为
getsill.app (https://getsill.app/download);通过 Homebrew (https://brew.sh),
brew install --cask saffsanity/sill/sill 会从 Sill 自己的 tap (https://github.com/Saffsanity/homebrew-sill) 安装相同的下载。iPhone 和 iPad 端的 Sill 在 App Store (https://apps.apple.com/app/id6816359860) 上免费提供,你也可以从源码构建(见下文)。
截图
以下是 App Store 上的 iPad 截图;在 iPhone 和 iPhone Duo 上,Sill 有自己专属的布局。
系统要求
- 一台搭载 Apple 芯片、运行 macOS 14 或更高版本的 Mac。
- 一台运行 iOS 17 或 iPadOS 17 或更高版本的 iPhone 或 iPad。
- 在 Mac 上,Sill 需要「屏幕录制」权限以显示你的窗口,需要「辅助功能」权限来代替你点击、滚动和输入,并移动和调整所显示窗口的大小。macOS 15 或更高版本还需要允许「本地网络」。在 iPhone 或 iPad 上,Sill 需要「本地网络」权限以查找你的 Mac,还需要相机权限来扫描 Mac 的配对码(你也可以手动输入)。
- 你的 Mac 和设备需在同一网络上,或通过 USB 数据线连接,或在开启 Direct Wireless Connection 时彼此靠近。离家在外时,通过你自己的 VPN(如 Tailscale)并开启 Remote Access。
工作原理
- Mac 端的 Sill 常驻菜单栏。当你的设备选择某个窗口或整个桌面时,Sill 通过 ScreenCaptureKit 进行捕获,并使用 VideoToolbox 在 Mac 的硬件视频编码器上(或在编码器繁忙时使用软件)编码为 HEVC。没有设备连接时不会捕获任何内容。
- 画面 通过加密连接(TLS 1.3)直接传输到 iPhone 或 iPad 上的 Sill 应用,由其解码并显示。当编码器或链路跟不上时,Sill 会丢弃帧而非排队等待,以保持画面的实时性。
- 你的输入 通过同样的方式回传:轻触和点击、带惯性的滚动、屏幕上的触控板、按键和输入的文本,以及 Apple Pencil 作为指针。Mac 端的 Sill 将其转化为鼠标和键盘事件,这需要「辅助功能」权限。连接到设备的键盘可以立即在 Mac 上输入(包括 Esc),触控板或鼠标可以滚动指针下的窗口。三指滑动和捏合手势与 Mac 触控板一致:触发 Mission Control、App Exposé、Spaces、应用切换和显示桌面,通过 Mac 对应的键盘快捷键实现。
- 在 iPhone 上(竖持),画面在上方,按钮、按键和触控板在下方。在设置面板中开启「更大画面」后,窗口画面可扩展到窗口缩略图区域的大小,直至弹出键盘的位置;「桌面」则保持常规布局。窗口在你使用 Aa 调整文字大小或开启虚拟显示器之前保持原有形状;开启后,Mac 会让窗口填充更高的画面区域。
- 剪贴板 在两个应用中开启「共享剪贴板」后可双向同步:你在 Mac 上复制的文本可以直接粘贴到设备上,在 Sill 中点击「粘贴」会将你在设备上复制的内容发送到 Mac 的剪贴板,然后你在 Mac 上按 ⌘V 粘贴。Sill 从不主动读取设备的剪贴板,密码管理器标记为隐藏的复制内容也始终保留在 Mac 上。
- 在 iPhone Duo 上,Sill 跟随铰链状态:完全展开时,Mac 画面填满内屏;半开时,画面在折痕上方,触控板和按键在下方;合上时,Sill 在外屏上运行。你触摸到的任何内容都不会落在折痕处。
- 菜单 也会传递到你的设备:在 iPadOS 26 或更高版本上显示在 iPad 自身的菜单栏中,以及在 Sill 栏的「菜单」按钮后面。Mac 端的 Sill 会在你打开菜单时从应用中读取每个菜单项,并通过「辅助功能」权限选择你选中的项目。当有人在 Mac 上移动鼠标时,你的设备会显示指针所在的位置。
- 附近查找 通过 Bonjour 在本地网络上查找你的 Mac。通过 USB 数据线连接时,Mac 显示为「有线」,连接走数据线。在无共享网络时,Direct Wireless Connection(默认关闭)通过点对点 Wi-Fi 连接,与 AirDrop 类似。
- 配对:每台 iPhone 或 iPad 只需与 Mac 配对一次。在设备上点击你的 Mac,Mac 会显示一个配对码:扫描它,或手动输入 12 位数字。通过 USB 数据线连接时,设备会自动完成配对。此后,每一端都掌握对方的密钥,每次连接(无论附近还是远程)都会固定在这些密钥上。在 Mac 上 Sill 的设置中,「设备」会列出你已配对的设备,你可以随时移除其中任何一台。
- 离家在外,Remote Access(默认关闭)允许你已配对的设备通过你自己的 VPN 或路由器端口转发访问你的 Mac;设备会在下次于家中开启 Remote Access 连接时自动学习到这一点。离家在外的设备会使用自己的画质——在标准分辨率下默认为「低」,直到你在当地或 Sill 设置中另行选择——这样慢速连接不会一开始就被设置为家中画质;只要有一台设备在家中连接,家中画质就会恢复。当你的设备回到家中且网络能列出你的 Mac 时,会话会自动切换到你的网络。
- 当链路跟不上时,Mac 端的 Sill 会发现帧被积压并通知你的设备,设备会在画面上显示提示,并在设置中提供一个链路能承载的画质选项。
- 文字大小:在设备上使用 Aa 会通过「辅助功能」权限调整 Mac 上所串流窗口的大小,使其文字按你选择的大小显示,并在串流期间保持该大小。当 Sill 停止显示该窗口时,它会恢复原有的大小和位置:你选择了另一个窗口或桌面、最后一台设备断开连接,或你退出了 Sill。如果你在此期间在 Mac 上移动过窗口,它会保留在新的位置。
- 虚拟显示器(默认关闭)会将你串流的窗口移到 Mac 上一个专属的显示器上,这样即使被其他窗口遮挡也会持续更新。它使用了 macOS 的私有 API,这也是 Mac 端 Sill 从网站而非 Mac App Store 分发的原因之一。
需要了解:Sill 一次只显示一个窗口或整个桌面,不会播放 Mac 的声音。剪贴板只传输文本,每次最多 256 KB,且仅限两个都启用了该功能的应用之间。你的 Mac 需要处于唤醒状态并打开 Sill。Sill 可能无法唤醒 Mac。重启后,Sill 只有在有人登录后(并开启「登录时启动」)才会打开。只有你配对过的 iPhone 和 iPad 才能连接,除非你在「设置 › 设备」中关闭「需要配对」;此时你网络上的任何设备都可以连接,连接仍然是加密的。家中配对功能随 Mac 端 Sill 0.4.0 和 iPhone/iPad 端 Sill 0.5 (2) 推出,两者互为前提:iPhone 和 iPad 应用会将旧版 Mac 端 Sill 显示为「更新 Sill」,旧版 iPhone 和 iPad 应用也无法在家中连接 Mac 端 Sill 0.4.0 或更高版本。自 0.5.1 起,两个应用共用同一版本号。使用 Mac 端 Sill 0.3.1 或更早版本时,本地网络连接、USB 线连接和 Direct Wireless Connection 均未加密,网络上任何能到达 Mac 的设备都可以无需配对直接连接:请尽快更新。
打赏
Sill 是免费的,没有广告、没有跟踪、没有订阅。如果它对你有帮助,通过 GitHub Sponsors (https://github.com/sponsors/Saffsanity) 打赏可以帮助支付开发者账号的费用。打赏不会解锁任何功能:每个功能都是免费的。
从源码构建
你需要一台安装了 Xcode 的 Mac(Sill 使用 Xcode 27 构建;iPhone 和 iPad 应用需要 Xcode 27.1 或更高版本,以支持 iPhone Duo 的铰链和折叠屏),并将其设为活跃的开发者目录,同时已接受许可协议。
Mac 端的 Sill,在仓库目录下执行:
Scripts/make-app.sh --install --open
这会使用 SwiftPM 构建 Sill.app,用你的 Apple Development 证书签名,替换 /Applications/Sill.app 并打开它。如果你之前是从网站下载的 Mac 端 Sill,需要重新授予「屏幕录制」和「辅助功能」权限并重新配对每台设备:下载版本将密钥和已配对设备保存在数据保护钥匙串中,只有使用项目配置描述文件的 Developer ID 构建才能读取,而你自己构建的版本会将它们保存在登录钥匙串中。不加 --install 参数则只构建 .build/Sill.app。如果没有 Apple Development 证书,则使用临时签名,此后每次构建后都需要重新授予「屏幕录制」和「辅助功能」权限。
如果需要在宿主程序本身上进行开发,swift run -c release SillHost 会在命令行中运行相同的宿主程序,有一个区别:除非加上 --pairing,否则它的家中连接入口是敞开的,没有配对也没有加密,网络上任何设备都可以连接,因此仅在开发期间运行。App Store 上的 iPhone 和 iPad 端 Sill 永远不会尝试连接这样的入口(显示「更新 Sill」);而本仓库的 Debug 构建可以连接(docs/DEVELOPMENT.md,「家中配对」部分)。加上 --synthetic 后,会串流一个测试图案,无需「屏幕录制」权限。
iPhone 和 iPad 应用:
- 打开
iOSClient/Sill.xcodeproj。 - 在 Sill target 的 Signing & Capabilities 中,选择你的团队,并将 bundle identifier
me.saffer.sill改为你自己的。 - 在与 Mac 同一网络的 iPhone 或 iPad 上运行,并点击你的 Mac。首次使用时,本仓库构建的 Mac 端 Sill 会要求你配对:扫描它显示的配对码,或用 USB 数据线连接设备。
docs/DEVELOPMENT.md 包含其余内容:所有命令行参数、测试工具和模拟器测试环境、权限及其重置方法、Remote Access、故障排除和发布流程。
贡献
欢迎提交 Issue:bug 报告、问题和想法。提交 Pull Request 时,请遵循 CLAUDE.md 中的约定和决策:仅使用 Swift 和 Apple 框架,不引入第三方依赖,不依赖服务器,延迟优先于画质。在开始任何大型改动之前,请先开一个 Issue。提交 Pull Request 前,Tests/checks/run-all.sh 会运行与 CI 相同的纯检查,大约需要五分钟,无需设备。贡献内容以项目许可证为依据。安全问题请按照 SECURITY.md 的说明私下报告,不要在公开 Issue 中披露。
许可证
Sill 采用 Apache License 2.0 许可。 版权所有 2026 Noah Saffer。
相似文章
@neuronxwhite: 吃灰的旧 iPad 别卖!一个人写了 696 次提交,把它变成了你 Mac 的"第二台笔记本":免费、开源、不用注册账号。 Sill 今天冲上 Hacker News:把 Mac 上任意一个窗口(或整个桌面)实时投到 iPhone / i…
开源免费工具 Sill 冲上 Hacker News,可把 Mac 上任意窗口或整个桌面实时投射到 iPhone/iPad 并支持触控、Apple Pencil、键盘和触控板操作,全程无需服务器和账号,连接走 TLS 加密。该工具由一个人开发(696 次提交),支持同 Wi-Fi、USB 直连、无线直连或 Tailscale VPN 远程访问,可与旧 iPad 搭配实现随航(Sidecar)式的第二屏体验。
@XAMTO_AI: 手边有闲置的iPhone或iPad?不少人应该都有。放着吃灰觉得可惜,想拿来当副屏又发现市面上的方案多少都有点门槛。 OpenDisplay 这个开源项目把这事儿简单化了。免费、开源、不需要账号、不需要额外硬件,就能把闲置的iOS设备变成…
OpenDisplay 是一个开源项目,可以将闲置的 iPhone 或 iPad 变成 Mac 的第二块屏幕,支持 USB 和 WiFi 连接,免费且无需额外硬件。
iphone-use
iphone-use 开源工具让 AI 智能体操控真实 iPhone 屏幕(tap/type/scroll via WebDriverAgent),并提供 MCP server、HTTP API 与浏览器远程控制,即使是无 API 的应用也能被自动化。
Isly
Isly 是一款 macOS 应用,把 MacBook 的刘海变成活动控制中心,可显示音乐播放、计时器、日历事件及音量/亮度读数,资源占用极低,采用一次性 €3.99 授权。
Show HN:Petal——开源版 CoScreen/ScreenHero 终于免费了
Petal 是一款开源的低延迟、高分辨率屏幕共享与远程控制工具,面向结对编程场景设计,支持多窗口同时共享与持久化房间,并提供云端托管、自托管以及自行构建部署三种部署方式可选。