Sill
Any window from your Mac, on your iPhone and iPad.
Sill shows a window from your Mac, or the whole desktop, on your iPhone or
iPad. You use it there with touch, a trackpad, a keyboard or Apple Pencil.
Sill for Mac captures the window, encodes it as HEVC video and sends it to the
Sill app on your device. Your taps, clicks, scrolls and keys go back to your
Mac. Your Mac and your device connect on the same network, over a USB cable,
with Direct Wireless Connection when they share no network, or through your
own VPN, such as Tailscale, with Remote Access. There is no account and no
server in between.
getsill.app ·
Download for Mac ·
Support ·
Privacy ·
Terms


Sill for Mac is a free, notarized download from
getsill.app; with Homebrew,
brew install --cask saffsanity/sill/sill installs the same download from
Sill’s own tap. Sill for iPhone
and iPad is free on the App Store,
and you can also build it from source (below).
To try the next version before it ships: Sill for iPhone and iPad has a
public beta on TestFlight, and Sill for Mac
has nightly builds on
GitHub, notarized like a release but not supported. Your devices stay paired
(a nightly uses the release’s identity), and Sill’s update check never offers
a nightly: the release above is the one to use.
Screenshots
These are the iPad screenshots from the App Store; on iPhone and iPhone Duo,
Sill has layouts of its own.
Requirements
- A Mac with Apple silicon or an Intel processor, on macOS 14 or later.
- An iPhone or iPad with iOS 17 or iPadOS 17 or later.
- On your Mac, Sill asks for Screen Recording, to show your windows, and
Accessibility, to click, scroll and type for you and to move and size the
window it shows. On macOS 15 or later, also allow Local Network. On your
iPhone or iPad, Sill asks for Local Network, to find your Mac, and for the
camera when you scan your Mac’s pairing code (you can type the code
instead).
- Your Mac and your device on the same network, joined by a USB cable, or near
each other with Direct Wireless Connection on. Away from home, your own VPN,
such as Tailscale, with Remote Access on.
How it works
- Sill for Mac lives in the menu bar. When your device picks a window, or
the whole desktop, Sill captures it with ScreenCaptureKit and encodes it as
HEVC with VideoToolbox, on the hardware video encoder in your Mac (or, while
that is busy, in software). It captures nothing while no device is connected.
- The picture goes over an encrypted connection (TLS 1.3) straight to the
Sill app on your iPhone or iPad, which decodes and shows it. When the
encoder or the link falls behind, Sill drops frames rather than queue them,
so the picture stays current.
- Your input goes back the same way: taps and clicks, scrolls with
momentum, the on-screen trackpad, keys and typed text, and Apple Pencil as
the pointer. Sill for Mac turns it into mouse and keyboard events, which
needs Accessibility. A keyboard attached to your device types on your Mac as
soon as the picture shows, Esc included, and a trackpad or a mouse scrolls
the window under its pointer. Chinese, Japanese, Korean and other languages
whose input methods compose text are typed with the keyboards you set up on
your device: you compose and choose there, and what you choose is typed on
your Mac. Dictation types on your Mac too. Reverse Scrolling, in the settings
panel, turns a finger’s scroll and the on-screen trackpad’s the other way.
Three fingers swipe and pinch as on a Mac’s trackpad: Mission Control, App
Exposé, the Spaces, Apps and Show Desktop, through the keyboard shortcuts
your Mac has for them.
Pinch the picture to zoom it, up to 5×, around the point between your
fingers; two fingers move a zoomed picture, and a pinch all the way out
shows the whole picture again.
- On iPhone, held upright, the picture is on top with buttons, keys and a
trackpad below. Larger Picture, in the settings panel, gives a window’s
picture the room of the window thumbnails, down to where the keyboard comes
up; the Desktop keeps the usual layout. With the virtual display (on unless
you turn it off in Sill for Mac), your Mac makes a window fill the taller
picture; with it off, once you set the window’s text size with Aa.
- The clipboard goes both ways while Share Clipboard is on, in both apps:
text you copy on your Mac is ready to paste on your device, and Paste in
Sill pastes what you copied on your device where your Mac’s cursor is (with
Paste on … Right Away off, it only goes to your Mac’s clipboard, where you
press ⌘V). Sill never reads your device’s clipboard by itself.
- Sound from your Mac is a beta, on by default; Send Audio (Beta) in the
Sill menu or Sill’s Settings on your Mac, or in the settings panel of Sill on
your iPhone or iPad, turns it off and on. Sill for Mac captures the sound of
the window’s app, or of every app for the Desktop, and every connected device
plays it a moment behind the picture, never ahead of it. Your Mac keeps
playing it too, and Mute in a device’s settings panel silences it on that
device alone.
- On iPhone Duo, Sill follows the hinge: open it flat and your Mac fills
the inner display; half open, the picture is above the fold with a trackpad
and keys below; closed, Sill runs on the cover display. Nothing you touch
sits on the fold.
- The menus of the app you use reach your device too: in the iPad’s own
menu bar on iPadOS 26 or later, and behind the Menus button in Sill’s bar.
Sill for Mac reads each menu from the app as you open it and chooses the
item you pick, through Accessibility. When someone moves the mouse at your
Mac, your device shows the pointer where it is.
- The connect screen on your device shows each Mac as a tile, a paired Mac
with its screen as your last session with it ended. The picture stays on
your device until you remove it or forget the Mac. The button beside
“Connect to a Mac” lists them instead, and Sill remembers which you chose.
- A short tour shows Sill’s controls the first time your device shows a
Mac’s picture, and once more after an update that adds controls, with
what’s new marked New; Take the Tour, in the settings panel, shows it again.
- Nearby, your device finds your Mac with Bonjour on your local network.
Over a USB cable, your Mac shows as Wired and the connection uses the cable.
With no shared network, Direct Wireless Connection (off by default) connects
over peer-to-peer Wi-Fi, the way AirDrop does.
- Pairing: you pair each iPhone or iPad with your Mac once. Tap your Mac on
the device, and your Mac shows a code: scan it, or type its 12 digits. Over
a USB cable the device pairs by itself. From then on each end knows the
other’s key, and every connection, nearby or away, is pinned to those keys.
In Sill’s Settings on your Mac, Devices lists the devices you paired, and
you can remove any of them there. If you use your Mac through Screen Sharing
or another remote desktop app, as you would a Mac without a display, Sill’s
pairing window doesn’t show there until you turn on Show the pairing window
to screen sharing in the same place. It is off by default: while it is on,
anyone who can see your Mac’s screen remotely can read the code.
- Away from home, Remote Access (off by default) lets the devices you
paired reach your Mac through your own VPN or a port you forward on your
router; a device learns how the next time it connects at home with Remote
Access on. A device away from home gets a quality of its own, Low at Standard
resolution until you pick another there or in Sill’s settings, so a slow
connection never starts at your home quality; your home quality comes back
as soon as a device at home connects. When your device comes home and your
network lists your Mac, the session moves to your network by itself.
- When the link can’t keep up, Sill for Mac notices that it is holding
frames back and tells your device, which says so over the picture and, in
its Settings, offers a quality the link can carry.
- Text size: Aa on your device resizes the window you stream, through
Accessibility, so its text shows at the size you pick, and keeps it at that
size while it streams, on the virtual display or, with that off, on your
Mac’s screen. The window goes back to its own size and place when Sill stops
showing it: you pick another window or the Desktop, your last device
disconnects, or you quit Sill. With the virtual display off, a window you
moved on your Mac meanwhile keeps its new place, and Aa starts at Off, which
leaves the window as it is: slide Aa back to Off and a window Sill resized
goes back at once. Aa sizes a window, so it’s dimmed while the Desktop shows.
- The virtual display, on unless you turn it off in the Sill menu or in
Sill’s Settings on your Mac, or in the settings panel of Sill on your iPhone
or iPad, moves the window you stream onto a display of
its own on your Mac, sized for your device, so it keeps updating when other
windows cover it. The window leaves your Mac’s screen while it streams and
comes back where it was. The display uses a private macOS API, which is one
reason Sill for Mac comes from the website and not from the Mac App Store; if
a macOS update breaks it, Sill streams the window where it is.
Good to know: Sill shows one window, or the whole desktop, at a time, and it
plays your Mac’s sound on your device as a beta, on by default. While the
virtual display is on, the window your device shows isn’t on your Mac’s screen
until you stop. The clipboard carries text only, up to 256 KB at a time, and
only between apps that both have it. Your Mac needs to be awake, with Sill
open. Sill may not be able to wake it. After a restart Sill opens only once
someone logs in, with Launch at Login on.
Only the iPhones and iPads you paired can connect, unless you turn off Require
pairing in Settings › Devices; then any device on your network can, still
encrypted. Pairing at home came with Sill for Mac 0.4.0 and Sill for iPhone and
iPad 0.5 (2), and each needs the other: the iPhone and iPad app shows an older
Sill for Mac as “Update Sill”, and an older iPhone and iPad app can’t connect
to Sill for Mac 0.4.0 or later at home. Since 0.5.1 the two apps share one
version number for each release. With Sill for Mac 0.3.1 or earlier,
connections on your local network, over the cable and over Direct Wireless
Connection are not encrypted, and anything that reaches your Mac there can
connect without pairing: update it.
Nightly builds: every night main changes, a notarized Sill for Mac built from it
goes to the nightly pre-release,
and Sill for iPhone and iPad to TestFlight’s testers. A nightly is tested less
than a release and can break; Sill’s update check never offers one, and going back
from a nightly Sill for Mac to the release keeps its settings and paired devices.
Tips
Sill is free, with no ads, no tracking and no subscription. If it is useful to
you, a tip through GitHub Sponsors
helps pay for the developer account. A tip unlocks nothing: every feature is
free. Who sponsors Sill, who has contributed, and how to join
them: getsill.app/contribute.
Building from source
You need a Mac with Xcode (Sill is built with Xcode 27; the iPhone and iPad
app needs Xcode 27.1 or later, for the iPhone Duo’s hinge and fold), selected
as the active developer directory, with its license accepted.
Sill for Mac, from the repository’s folder:
Scripts/make-app.sh --install --open
This builds Sill.app with SwiftPM, signs it with your Apple Development
identity, replaces /Applications/Sill.app and opens it. If that was the Sill
for Mac you downloaded, grant Screen Recording and Accessibility again and
pair each device again: the download keeps its key and paired devices in the
data-protection keychain, which only a Developer ID build with the project’s
provisioning profile reads, and a build of your own keeps them in your login
keychain. Without --install it only builds .build/Sill.app. With no Apple
Development identity it signs ad hoc, and then Screen Recording and
Accessibility have to be granted again after every build.
For work on the host itself, swift run -c release SillHost runs the same
host on the command line, with one difference: unless you add --pairing, its
home door is plain and open, with no pairing and no encryption, and any device
on your network can connect to it, so run it only while developing. The App
Store’s Sill for iPhone and iPad never dials such a door (“Update Sill”); a
Debug build from this repository can (docs/DEVELOPMENT.md,
Pairing at home). With --synthetic it streams a test pattern with no Screen
Recording needed.
The iPhone and iPad app:
- Open
iOSClient/Sill.xcodeproj.
- In the Sill target’s Signing & Capabilities, pick your team, and change the
bundle identifier
me.saffer.sill to one of your own.
- Run it on an iPhone or iPad on the same network as your Mac, and tap your
Mac. The first time, a Sill for Mac built from this repository asks you to
pair: scan the code it shows, or connect the device with a USB cable.
docs/DEVELOPMENT.md has the rest: every command-line
flag, the test tools and the simulator harness, permissions and how to reset
them, Remote Access, troubleshooting and releases.
Contributing
Issues are welcome: bug reports, questions and ideas. For a pull request, keep
to the conventions and decisions in CLAUDE.md: Swift and Apple
frameworks only, no third-party dependencies, nothing that needs a server, and
latency before picture quality. Open an issue before starting anything large.
Before a pull request, Tests/checks/run-all.sh runs the same pure checks as
CI, in about five minutes and with no device.
Contributions are accepted under the project’s license. Please report a
security problem privately, as SECURITY.md says, not in a
public issue. These rules, with the sponsors and the contributors, are at
getsill.app/contribute.
License
Sill is licensed under the Apache License 2.0.
Copyright 2026 Noah Saffer.
评论