Mac 上的任意窗口,搬进你的 iPhone 和 iPad

Hacker News Top 工具

摘要

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 有自己专属的布局。

“Your Mac, on your iPad.” The Mac’s Weather app on an iPad held sideways, under Sill’s bar of window thumbnails and buttons.“Laptop mode.” An iPad held upright, with the Mac’s Clock app on top and Sill’s bar, a row of keys and a trackpad below it.“Sharp and smooth.” Sill’s Settings panel on an iPad held upright, with the Mac’s Quality, Resolution and Frame Rate settings.
“Pair once. Private always.” Sill’s Connect to a Mac screen on an iPad, with a Mac listed as Wired and Add a Mac below it.“Launch any Mac app.” Sill’s Apps list on an iPad held sideways, with a search field, the apps open now and every app installed on the Mac.“Every window, one tap away.” On an iPad held sideways, a window’s thumbnail held in Sill’s bar shows Close, Minimize and Full Screen.

系统要求

  • 一台搭载 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 应用:

  1. 打开 iOSClient/Sill.xcodeproj。
  2. 在 Sill target 的 Signing & Capabilities 中,选择你的团队,并将 bundle identifier me.saffer.sill 改为你自己的。
  3. 在与 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…

X AI KOLs Timeline

开源免费工具 Sill 冲上 Hacker News,可把 Mac 上任意窗口或整个桌面实时投射到 iPhone/iPad 并支持触控、Apple Pencil、键盘和触控板操作,全程无需服务器和账号,连接走 TLS 加密。该工具由一个人开发(696 次提交),支持同 Wi-Fi、USB 直连、无线直连或 Tailscale VPN 远程访问,可与旧 iPad 搭配实现随航(Sidecar)式的第二屏体验。

@XAMTO_AI: 手边有闲置的iPhone或iPad?不少人应该都有。放着吃灰觉得可惜,想拿来当副屏又发现市面上的方案多少都有点门槛。 OpenDisplay 这个开源项目把这事儿简单化了。免费、开源、不需要账号、不需要额外硬件,就能把闲置的iOS设备变成…

X AI KOLs Timeline

OpenDisplay 是一个开源项目,可以将闲置的 iPhone 或 iPad 变成 Mac 的第二块屏幕,支持 USB 和 WiFi 连接,免费且无需额外硬件。

iphone-use

Product Hunt

iphone-use 开源工具让 AI 智能体操控真实 iPhone 屏幕(tap/type/scroll via WebDriverAgent),并提供 MCP server、HTTP API 与浏览器远程控制,即使是无 API 的应用也能被自动化。

Isly

Product Hunt

Isly 是一款 macOS 应用,把 MacBook 的刘海变成活动控制中心,可显示音乐播放、计时器、日历事件及音量/亮度读数,资源占用极低,采用一次性 €3.99 授权。

Show HN:Petal——开源版 CoScreen/ScreenHero 终于免费了

Hacker News Top

Petal 是一款开源的低延迟、高分辨率屏幕共享与远程控制工具,面向结对编程场景设计,支持多窗口同时共享与持久化房间,并提供云端托管、自托管以及自行构建部署三种部署方式可选。