西尔(Sill)可将 Mac 上的单个窗口或整个桌面呈现在 iPhone 与 iPad 上,并通过触控、触控板、键盘或 Apple Pencil 操作。Mac 版 Sill 会捕获窗口、以 HEVC 视频编码后发送到设备端应用,点击、滚动和按键回传至 Mac;两者可通过同一网络、USB 线、无共享网络时的 Direct Wireless Connection,或经由 Tailscale 等 VPN 远程连接,全程无需账号和服务器中转。
正文
Sill 能把 Mac 上的任意窗口,或整个桌面,显示到 iPhone 或 iPad 上,并支持触控、触控板、键盘或 Apple Pencil 操作。Mac 端会捕获该窗口,编码为 HEVC 视频后发送给设备上的 Sill App;你的点按、点击、滚动和按键会传回 Mac。Mac 与设备可通过同一网络、USB 线连接,在没有共同网络时使用“直接无线连接”,或通过你自己的 VPN(如 Tailscale)配合“远程访问”连接。整个过程没有账户,也不经过服务器。
Sill for Mac 是从 getsill.app 下载的免费且经过公证的版本;也可以通过 Homebrew 安装:运行 brew install --cask saffsanity/sill/sill,它会从 Sill 自己的 tap 安装同一个下载包。iPhone 和 iPad 版 Sill 在 App Store 上免费提供,你也可以从源码构建(见下文)。
截图
以下是 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 线连接,或在彼此附近并开启“直接无线连接”。在外时,可通过你自己的 VPN(如 Tailscale)并开启“远程访问”。
工作原理
- Sill for Mac 常驻菜单栏。当设备选择某个窗口或整个桌面时,Sill 会用 ScreenCaptureKit 捕获,并通过 VideoToolbox 编码为 HEVC,使用 Mac 的硬件视频编码器(若其繁忙,则回退到软件编码)。没有设备连接时,它不会捕获任何内容。
- 画面通过加密连接(TLS 1.3)直接发送到 iPhone 或 iPad 上的 Sill App,由后者解码并显示。当编码器或链路跟不上时,Sill 会丢帧而不是排队,以保持画面最新。
- 你的输入沿原路返回:点按和点击、带惯性的滚动、屏幕触控板、按键和输入的文本,以及用作指针的 Apple Pencil。Sill for Mac 将其转换为鼠标和键盘事件,因此需要“辅助功能”权限。画面一出现,连接到设备的键盘就能在 Mac 上输入(包括 Esc);触控板或鼠标可滚动指针下的窗口。三指滑动和捏合与 Mac 触控板一致:通过 Mac 上对应的键盘快捷键实现 Mission Control、App Exposé、Spaces、Apps 和 Show Desktop。
- 在 iPhone 上,竖持时画面在上,下方是按钮、按键和触控板。设置面板中的“更大画面”会把窗口画面的空间扩展到窗口缩略图的区域,直至键盘弹出;桌面则保持常规布局。在你用 Aa 设置文本大小或开启虚拟显示器之前,窗口会保持原有形状;之后 Mac 会让它填满更高的画面。
- 剪贴板在两端都开启“共享剪贴板”时双向同步:在 Mac 上复制的文本可直接在设备上粘贴;Sill 中的“Paste”会把设备上复制的内容发到 Mac 的剪贴板,你随后按 ⌘V 粘贴。Sill 不会主动读取设备的剪贴板;被密码管理器标记为隐藏的复制内容会留在 Mac 上。
- 在 iPhone Duo 上,Sill 会跟随铰链:完全展开时,Mac 画面填满内屏;半开时,画面位于折痕上方,下方是触控板和按键;合上时,Sill 在外屏上运行。你触摸的内容不会落在折痕上。
- 菜单:你所用 App 的菜单也会出现在设备上——在 iPadOS 26 或更高版本上显示在 iPad 自己的菜单栏中,或在 Sill 栏的“Menus”按钮后面。Sill for Mac 会在你打开菜单时通过“辅助功能”读取每个菜单,并选择你点选的项。当有人在 Mac 上移动鼠标时,设备上的指针也会显示在相应位置。
- 附近连接:设备通过本地网络上的 Bonjour 发现 Mac。通过 USB 线连接时,Mac 显示为“有线”,连接走线缆。若没有共同网络,可开启“直接无线连接”(默认关闭),通过点对点 Wi-Fi 连接,方式和 AirDrop 一样。
- 配对:每台 iPhone 或 iPad 只需与 Mac 配对一次。在设备上点击你的 Mac,Mac 会显示一个码:扫描它,或输入 12 位数字。通过 USB 线时设备会自动配对。此后双方都保存对方的密钥,无论附近还是远程,每次连接都绑定这些密钥。在 Mac 上 Sill 的设置里,“Devices”会列出已配对的设备,你可以在其中移除任何设备。
- 远程访问:在外时,“远程访问”(默认关闭)让已配对的设备通过你自己的 VPN 或你在路由器上转发的端口连接到 Mac;设备下次在家并开启“远程访问”时会学到连接方式。外出的设备会使用独立的画质,在标准分辨率下默认为“低”,直到你在设备或 Sill 设置中另行选择,因此慢速连接不会一开始就使用家里的画质;一旦有设备在家连接,家里画质就会恢复。当设备回到家,且网络列出你的 Mac 时,会话会自己切换回本地网络。
- 链路跟不上时,Sill for Mac 会发现自己在积压帧,并通知设备;设备会在画面上提示,并在其“设置”中提供一个链路能承载的画质。
- 文本大小:设备上的 Aa 会通过“辅助功能”调整 Mac 上正在串流的窗口大小,使其文本以你选择的大小显示,并在串流期间保持该大小。当 Sill 停止显示该窗口时(你选择了其他窗口或桌面、最后一台设备断开,或退出 Sill),窗口会恢复原来的大小和位置;如果你期间在 Mac 上移动过它,它会保持新的位置。
- 虚拟显示器(默认关闭)会把你正在串流的窗口移到 Mac 上一个独立的显示器,这样即使被其他窗口覆盖,它也会继续更新。它使用了私有的 macOS API,这也是 Sill for Mac 从官网而非 Mac App Store 发布的原因之一。
需要知道的是:Sill 一次只显示一个窗口或整个桌面,且不传输 Mac 的声音。剪贴板仅同步文本,单次最多 256 KB,且只在两端都启用该功能的 App 之间同步。Mac 必须处于唤醒状态并打开 Sill,Sill 可能无法唤醒它。重启后,只有在有人登录且开启“登录时启动”的情况下,Sill 才会打开。只有已配对的 iPhone 和 iPad 能连接,除非你在“设置 › Devices”中关闭“要求配对”;关闭后,同一网络上的任何设备都能连接(仍会加密)。在家配对功能随 Sill for Mac 0.4.0 和 Sill for iPhone and iPad 0.5 (2) 推出,且二者需要互相匹配:iPhone 和 iPad App 会把较旧的 Sill for Mac 显示为“Update Sill”,而较旧的 iPhone 和 iPad App 无法在家连接到 Sill for Mac 0.4.0 或更高版本。自 0.5.1 起,两个 App 在每次发布时共用同一个版本号。若使用 Sill for Mac 0.3.1 或更早版本,本地网络、线缆和“直接无线连接”下的连接均未加密,且任何能访问 Mac 的设备都无需配对即可连接:请更新。
打赏
Sill 免费,无广告、无追踪、无订阅。如果你觉得它有用,可以通过 GitHub Sponsors 打赏,帮助支付开发者账号费用。打赏不会解锁任何内容:所有功能都免费。
从源码构建
你需要一台装有 Xcode 的 Mac(Sill 使用 Xcode 27 构建;iPhone 和 iPad App 需要 Xcode 27.1 或更高版本,以支持 iPhone Duo 的铰链和折痕),Xcode 需选为活跃开发者目录并已接受许可。
在仓库目录下运行 Scripts/make-app.sh --install --open。它会用 SwiftPM 构建 Sill.app,用你的 Apple Development 身份签名,替换 /Applications/Sill.app 并打开它。如果你之前用的是下载版 Sill for Mac,需要重新授予“屏幕录制”和“辅助功能”权限,并重新配对每台设备:下载版把密钥和已配对设备存放在数据保护钥匙串中,只有带有项目 provisioning profile 的 Developer ID 构建才能读取;而你自己构建的版本会把它们存放在登录钥匙串中。不加 --install 则只构建 .build/Sill.app。若没有 Apple Development 身份,它会进行 ad hoc 签名,此后每次构建后都需要重新授予“屏幕录制”和“辅助功能”权限。
若要在主机本身上工作,可运行 swift run -c release SillHost,在命令行启动同一个主机,但有一点不同:除非加上 --pairing,它的本地入口是开放且无加密的,无需配对,同一网络上的任何设备都能连接,因此仅在开发时运行。App Store 版的 Sill for iPhone and iPad 绝不会连接这类入口(会显示“Update Sill”);而本仓库的 Debug 构建可以(参见 docs/DEVELOPMENT.md,“在家配对”)。加上 --synthetic 会串流测试图案,无需“屏幕录制”权限。
iPhone 和 iPad App:
- 打开
iOSClient/Sill.xcodeproj。 - 在 Sill target 的“Signing & Capabilities”中,选择你的团队,并把 Bundle Identifier
me.saffer.sill改为你自己的。 - 在与 Mac 同一网络的 iPhone 或 iPad 上运行它,然后点击你的 Mac。首次运行时,从本仓库构建的 Sill for Mac 会要求配对:扫描它显示的码,或用 USB 线连接设备。
其余内容(所有命令行标志、测试工具和模拟器脚手架、权限及重置方法、远程访问、故障排查和发布)都在 docs/DEVELOPMENT.md 中。
贡献
欢迎提交 issue:漏洞报告、问题和想法都可以。提交 pull request 时,请遵循 CLAUDE.md 中的约定和决定:仅使用 Swift 和 Apple 框架,不引入第三方依赖,不依赖服务器,且延迟优先于画质。在开始任何大改动前先开 issue。提交 PR 前,可运行 Tests/checks/run-all.sh,它会在约五分钟内、无需设备的情况下执行与 CI 相同的纯检查。贡献需遵循项目许可证。如发现安全问题,请按 SECURITY.md 的要求私下报告,不要在公开 issue 中披露。
许可证
Sill 采用 Apache License 2.0 授权。版权归 2026 Noah Saffer 所有。
评论
整体气氛正面且带技术好奇,评论者普遍称赞这款把 iPhone/iPad 变成 Mac 的触控远端屏或瘦客户端的应用比 VNC 更快更无缝,并看中它复活老旧 iPhone 的潜力;分歧与追问的主轴则是:它究竟只是苹果 Sidecar 在 iPad 上已有能力的 iPhone 延伸,还是真正的新突破,以及应否尽快扩展到 Windows 主机、反向控制 iPhone 与触控笔支持。
认为 iPhone 作为 Mac 触控远端屏比 VNC 更快且能复活旧设备
- 实测用户称其速度和无缝程度明显优于 VNC,当天已多次靠它解决实际问题;另有用户看中“瘦客户端”思路,认为可让性能不足、系统过旧的原版 iPhone 重新连接 Mac 使用。(较多人) > 它比 VNC 快得多也更无缝,今天已经帮了我两次。(@alin23)
指出苹果已用 Sidecar 在 iPad 上实现类似能力,但 iPhone 版仍新颖
- 苹果早已通过 Sidecar 把 iPad 变成 Mac 的另一块屏幕,并继续支持手写笔、鼠标和键盘;因此把 iPhone 变成类似触控屏算新意,但评论者好奇 iPhone 上是否能用触控笔。(少数人) > 苹果已在 iPad 上用 Sidecar 支持这件事,让 iPad 变作 Mac 的另一块屏幕并继续用笔、鼠标、键盘。(@gumby)
希望增加 Windows 主机支持,用触控或笔操作 Windows 窗口
- 有用户询问是否计划支持 Windows,期待能在 iPad 上显示 Windows 窗口,并以触控或手写笔直接控制。(少数人) > 是否计划支持 Windows?想在 iPad 上看到 Windows 窗口并用触控或笔来控制。(@Surac)
想要反向应用:从 Mac 控制 iPhone 并改善输入延迟
- 有用户想要反向版本,因为 iPhone 上打字痛苦、虚拟键盘又不准且变卡,而苹果的 iPhone Mirroring 也很卡;希望能从 Mac 直接控制 iPhone 应用。(少数人) > 想要一个反向应用,能在 Mac 上控制 iPhone 应用,因为 iPhone 打字痛苦且 iPhone Mirroring 很卡。(@greenspam)
有价值的补充
- 该 macOS 应用是通过 YouTube 右侧推荐的一分钟视频被发现的:作者观看 The Rest Is Science 时,看到右侧出现这条约 23 万次观看的短片,第一次通过视频推荐发现应用。
- 多数人根本不读网站文案,所以短小直观的演示片段更能帮用户发现功能;如今用 Claude 配合 Hyperframes 就能快速生成这类视频,作者本周也为自己的 Cling、Clop 做了同类演示,省去 After Effects 的繁琐手工。