Hacker News 中文摘要

RSS订阅

Any window from your Mac, on your iPhone and iPad

西尔(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 上免费提供,你也可以从源码构建(见下文)。

截图

Image 2: Download on the App Store

以下是 App Store 上的 iPad 截图;在 iPhone 和 iPhone Duo 上,Sill 有自己的布局。

“你的 Mac,在你的 iPad 上。”iPad 横屏显示 Mac 的“天气”App,位于 Sill 的窗口缩略图和按钮栏下方

“笔记本模式。”iPad 竖持,上方是 Mac 的“时钟”App,其下方依次是 Sill 的栏、一排按键和触控板

“清晰且流畅。”iPad 竖持,显示 Sill 的设置面板,其中有 Mac 的画质、分辨率和帧率设置

“配对一次,始终私密。”iPad 上的 Sill“连接到 Mac”界面,列表中一台 Mac 显示为“有线”,下方是“添加 Mac”

“启动任意 Mac App。”iPad 横持,显示 Sill 的 App 列表,包含搜索框、当前打开的 App,以及 Mac 上安装的所有 App

“每个窗口,一点即达。”iPad 横持,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:

  1. 打开 iOSClient/Sill.xcodeproj。
  2. 在 Sill target 的“Signing & Capabilities”中,选择你的团队,并把 Bundle Identifier me.saffer.sill 改为你自己的。
  3. 在与 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 的繁琐手工。