Sill is een gratis, open-source tool die het mogelijk maakt om een specifiek venster of het volledige bureaublad van een Mac te streamen naar een iPhone of iPad. De verbinding is versleuteld via TLS 1.3 en kan tot stand komen via het lokale netwerk, een USB-kabel, een directe draadloze verbinding of een VPN voor toegang op afstand.
Belangrijkste functionaliteiten:
- Bediening: De Mac kan worden bediend via touch, een trackpad, een toetsenbord of de Apple Pencil.
- Beeld & Geluid: Gebruikt HEVC-codering via ScreenCaptureKit en VideoToolbox voor een lage latentie. Let op: geluid wordt niet ondersteund.
- Extra features: Beschikt over een bidirectioneel klembord voor tekst, aanpasbare tekstgrootte (
Aa) en een 'Virtual Display'-modus waardoor gestreamde vensters onafhankelijk van andere vensters op de Mac worden bijgewerkt.
- Systeemvereisten: De software vereist een Mac met Apple silicon (macOS 14+) en een iOS/iPadOS 17+ apparaat.
Sill is gelicentieerd onder de Apache License 2.0 en is ontwikkeld zonder gebruik van third-party dependencies of externe servers.
Sill: Elke window van je Mac, live op je iPhone of iPad
Sill voor Mac legt het venster vast, codeert dit als HEVC-video en verzendt dit naar de Sill-app op je mobiele apparaat. Je tiks, klikken, scrolls en toetsaanslagen worden teruggestuurd naar je Mac. De verbinding tussen je Mac en je apparaat verloopt via hetzelfde netwerk, via een USB-kabel, via Direct Wireless Connection (wanneer er geen gedeeld netwerk is), of via je eigen VPN (zoals Tailscale) met Remote Access. Er is geen account nodig en er bevindt zich geen server tussen de apparaten.
Links en installatie:
- Website: getsill.app
- Download voor Mac: Beschikbaar via getsill.app of via Homebrew:
brew install --cask saffsanity/sill/sill
- Voor iPhone en iPad: Beschikbaar in de App Store of kan worden gebouwd vanuit de broncode.
Systeemvereisten
Hardware en Software
- Mac: Een Mac met Apple silicon, draaiend op macOS 14 of later.
- iPhone/iPad: Een iPhone of iPad met iOS 17 of iPadOS 17 of later.
Vereiste Machtigingen
- Op de Mac: Sill vraagt om Schermopname (om vensters te tonen) en Toegankelijkheid (om te kunnen klikken, scrollen, typen en om het getoonde venster te verplaatsen of te schalen). Vanaf macOS 15 is ook toestemming voor het Lokale Netwerk vereist.
- Op de iPhone/iPad: Sill vraagt om toegang tot het Lokale Netwerk (om de Mac te vinden) en toegang tot de Camera (voor het scannen van de koppelingscode; de code kan ook handmatig worden ingevoerd).
Connectiviteit
De Mac en het mobiele apparaat moeten zich op hetzelfde netwerk bevinden, verbonden zijn via een USB-kabel, of dicht bij elkaar zijn met Direct Wireless Connection ingeschakeld. Voor gebruik buiten de eigen omgeving is een eigen VPN (zoals Tailscale) met Remote Access vereist.
Hoe het werkt
Beeld en Verbinding
Sill voor Mac bevindt zich in de menubalk. Wanneer een apparaat een venster of het volledige bureaublad selecteert, legt Sill dit vast met ScreenCaptureKit en codeert het als HEVC met VideoToolbox via de hardware-video-encoder van de Mac (of via software indien de hardware bezet is). Er wordt niets vastgelegd wanneer er geen apparaat is verbonden.
Het beeld wordt via een versleutelde verbinding (TLS 1.3) rechtstreeks naar de Sill-app op de iPhone of iPad gestuurd. Als de encoder of de verbinding vertraagt, laat Sill frames vallen in plaats van ze in een wachtrij te plaatsen, zodat het beeld actueel blijft.
Bediening en Input
Input wordt op dezelfde wijze teruggestuurd: tiks en klikken, scrolls met momentum, het on-screen trackpad, toetsen en getypte tekst, en de Apple Pencil als aanwijzer. Sill voor Mac zet dit om in muis- en toetsenbordevenementen, waarvoor de machtiging Toegankelijkheid nodig is.
- Toetsenbord: Een extern toetsenbord dat aan je mobiele apparaat is gekoppeld, typt direct op je Mac (inclusief de Esc-toets).
- Trackpad/Muis: Een trackpad of muis scrollt het venster onder de aanwijzer.
- Gebaren: Swipes met drie vingers en pinch-bewegingen werken zoals op een Mac-trackpad (voor Mission Control, App Exposé, Spaces, Apps en 'Toon Bureaublad') via de toetsenbordcombinaties van de Mac.
Apparaat-specifieke Layouts
- iPhone (rechtop): Het beeld staat bovenaan, met knoppen, toetsen en een trackpad eronder. Via de instelling Larger Picture kan het beeld van een venster worden vergroot tot aan de plek waar het toetsenbord verschijnt; de Desktop-modus behoudt de standaard layout. Een venster behoudt zijn eigen vorm, tenzij de tekstgrootte wordt aangepast via
Aa of de virtuele weergave wordt ingeschakeld.
- iPhone Duo: Sill volgt de scharnierstand. Volledig open staat de Mac op het interne display; half open staat het beeld boven de vouw met een trackpad en toetsen eronder; gesloten draait Sill op het coverdisplay.
Clipboard en Menu's
- Clipboard: Wanneer Share Clipboard is ingeschakeld in beide apps, werkt het klembord bidirectioneel. Tekst gekopieerd op de Mac kan op het apparaat worden geplakt, en de functie Paste in Sill stuurt tekst van het apparaat naar het klembord van de Mac (waar je
⌘V gebruikt). Sill leest het klembord van het apparaat nooit zelfstandig; wachtwoorden die door een wachtwoordmanager als 'verborgen' zijn gemarkeerd, blijven op de Mac staan.
- Menu's: Menu's van de gebruikte app zijn toegankelijk via de eigen menubalk van de iPad (iPadOS 26 of later) of via de Menus-knop in de balk van Sill. Sill voor Mac leest elk menu uit de app op het moment van openen en selecteert het gekozen item via Toegankelijkheid. Wanneer iemand de muis op de Mac beweegt, ziet het mobiele apparaat de aanwijzer op die positie.
Koppeling en Toegang
- Ontdekking: Op het lokale netwerk vindt het apparaat de Mac via Bonjour. Via een USB-kabel verschijnt de Mac als Wired. Zonder gedeeld netwerk kan Direct Wireless Connection (standaard uit) verbinding maken via peer-to-peer wifi, vergelijkbaar met AirDrop.
- Pairing (Koppelen): Elk apparaat wordt één keer gekoppeld aan de Mac. Door op de Mac te tikken vanaf het apparaat, verschijnt er een code die gescand of handmatig ingevoerd kan worden. Via USB gebeurt dit automatisch. Na koppeling is de verbinding altijd versleuteld met de opgeslagen sleutels. Gekoppelde apparaten kunnen worden beheerd in de instellingen van Sill op de Mac.
- Remote Access: Voor toegang buiten het eigen netwerk kan Remote Access (standaard uit) worden gebruikt via een VPN of een doorgestuurde poort op de router. Het apparaat leert deze configuratie de volgende keer dat het thuis verbinding maakt met Remote Access aan. Bij een verbinding van afstand wordt een aparte kwaliteit (standaard 'Low' bij standaardresolutie) gebruikt, zodat een trage verbinding de thuiskwaliteit niet beïnvloedt. Wanneer het apparaat terugkeert naar het thuisnetwerk, verplaatst de sessie zich automatisch terug naar het lokale netwerk.
Geavanceerde functies
- Tekstgrootte (
Aa): Hiermee kan de grootte van het gestreamde venster op de Mac worden aangepast via Toegankelijkheid. Het venster keert terug naar zijn oorspronkelijke grootte en positie zodra Sill stopt met het tonen ervan.
- Virtuele weergave (Virtual Display): (Standaard uit). Dit verplaatst een gestreamd venster naar een eigen virtueel display op de Mac, zodat het wordt bijgewerkt zelfs als andere vensters het bedekken. Dit maakt gebruik van een private macOS API, wat de reden is dat Sill voor Mac via de website en niet via de Mac App Store wordt verspreid.
Belangrijke informatie
- Beperkingen: Sill toont slechts één venster (of het volledige bureaublad) tegelijk. Er wordt geen geluid van de Mac afgespeeld. Het klembord ondersteunt alleen tekst tot maximaal 256 KB.
- Systeemstatus: De Mac moet aanstaan en Sill moet openstaan. Sill kan de Mac mogelijk niet wekken uit slaapstand. Na een herstart opent Sill alleen nadat iemand is ingelogd (indien Launch at Login aanstaat).
- Beveiliging: Alleen gekoppelde apparaten kunnen verbinden, tenzij Require pairing is uitgeschakeld in de instellingen. Vanaf versie 0.4.0 (Mac) en 0.5 (iOS) zijn verbindingen op het lokale netwerk, via kabel en via Direct Wireless versleuteld. Oudere versies (0.3.1 of eerder) zijn niet versleuteld; updates worden sterk aangeraden.
Tips en Ondersteuning
Sill is gratis, bevat geen advertenties, geen tracking en geen abonnementen. Donaties via GitHub Sponsors helpen de kosten voor het ontwikkelaarsaccount te dekken. Donaties ontgrendelen geen extra functies; alle functies zijn gratis.
Bouwen vanuit broncode
Vereisten
Een Mac met Xcode (Sill is gebouwd met Xcode 27; de iOS-app vereist Xcode 27.1 of later voor ondersteuning van de iPhone Duo). De licentie van Xcode moet zijn geaccepteerd.
Sill voor Mac
Voer vanuit de map van de repository uit: Scripts/make-app.sh --install --open
Dit bouwt Sill.app met SwiftPM, ondertekent deze met je Apple Development-identiteit, vervangt /Applications/Sill.app en opent de app. Indien je eerder de gedownloade versie gebruikte, moet je de machtigingen voor Schermopname en Toegankelijkheid opnieuw verlenen en apparaten opnieuw koppelen, omdat de sleutels in verschillende keychains worden opgeslagen.
Voor testen op de host zelf kan swift run -c release SillHost worden gebruikt via de command line. Let op: zonder de vlag --pairing is de poort open en onversleuteld, wat enkel voor ontwikkeling is bedoeld. Gebruik --synthetic om een testpatroon te streamen zonder dat Schermopname nodig is.
iPhone en iPad app
- Open
iOSClient/Sill.xcodeproj.
- Kies in Signing & Capabilities van het Sill-target je team en wijzig de bundle identifier
me.saffer.sill naar een eigen identifier.
- Draai de app op een iPhone of iPad in hetzelfde netwerk als de Mac. Bij de eerste keer zal een zelfgebouwde versie van Sill voor Mac vragen om te koppelen via een code of USB-kabel.
Voor verdere details over command-line vlaggen, testtools en troubleshooting zie docs/DEVELOPMENT.md.
Bijdragen
Issues (bugrapporten, vragen en ideeën) zijn welkom. Voor pull requests dienen de conventies in CLAUDE.md te worden gevolgd:
- Gebruik uitsluitend Swift en Apple-frameworks.
- Geen third-party dependencies.
- Geen server-afhankelijke functies.
- Prioriteit ligt bij latentie boven beeldkwaliteit.
Open eerst een issue voordat je aan grote wijzigingen begint. Voer voor een pull request Tests/checks/run-all.sh uit om de CI-checks lokaal te controleren. Beveiligingsproblemen dienen privé gemeld te worden conform SECURITY.md.
Licentie
Sill is gelicenseerd onder de Apache License 2.0. Copyright 2026 Noah Saffer.
Sill: Elke window van je Mac, live op je iPhone of iPad
Sill voor Mac legt het venster vast, codeert dit als HEVC-video en verzendt dit naar de Sill-app op je mobiele apparaat. Je tiks, klikken, scrolls en toetsaanslagen worden teruggestuurd naar je Mac. De verbinding tussen je Mac en je apparaat verloopt via hetzelfde netwerk, via een USB-kabel, via Direct Wireless Connection (wanneer er geen gedeeld netwerk is), of via je eigen VPN (zoals Tailscale) met Remote Access. Er is geen account nodig en er bevindt zich geen server tussen de apparaten.
Links en installatie:
- Website: getsill.app
- Download voor Mac: Beschikbaar via getsill.app of via Homebrew:
brew install --cask saffsanity/sill/sill
- Voor iPhone en iPad: Beschikbaar in de App Store of kan worden gebouwd vanuit de broncode.
Systeemvereisten
Hardware en Software
- Mac: Een Mac met Apple silicon, draaiend op macOS 14 of later.
- iPhone/iPad: Een iPhone of iPad met iOS 17 of iPadOS 17 of later.
Vereiste Machtigingen
- Op de Mac: Sill vraagt om Schermopname (om vensters te tonen) en Toegankelijkheid (om te kunnen klikken, scrollen, typen en om het getoonde venster te verplaatsen of te schalen). Vanaf macOS 15 is ook toestemming voor het Lokale Netwerk vereist.
- Op de iPhone/iPad: Sill vraagt om toegang tot het Lokale Netwerk (om de Mac te vinden) en toegang tot de Camera (voor het scannen van de koppelingscode; de code kan ook handmatig worden ingevoerd).
Connectiviteit
De Mac en het mobiele apparaat moeten zich op hetzelfde netwerk bevinden, verbonden zijn via een USB-kabel, of dicht bij elkaar zijn met Direct Wireless Connection ingeschakeld. Voor gebruik buiten de eigen omgeving is een eigen VPN (zoals Tailscale) met Remote Access vereist.
Hoe het werkt
Beeld en Verbinding
Sill voor Mac bevindt zich in de menubalk. Wanneer een apparaat een venster of het volledige bureaublad selecteert, legt Sill dit vast met ScreenCaptureKit en codeert het als HEVC met VideoToolbox via de hardware-video-encoder van de Mac (of via software indien de hardware bezet is). Er wordt niets vastgelegd wanneer er geen apparaat is verbonden.
Het beeld wordt via een versleutelde verbinding (TLS 1.3) rechtstreeks naar de Sill-app op de iPhone of iPad gestuurd. Als de encoder of de verbinding vertraagt, laat Sill frames vallen in plaats van ze in een wachtrij te plaatsen, zodat het beeld actueel blijft.
Bediening en Input
Input wordt op dezelfde wijze teruggestuurd: tiks en klikken, scrolls met momentum, het on-screen trackpad, toetsen en getypte tekst, en de Apple Pencil als aanwijzer. Sill voor Mac zet dit om in muis- en toetsenbordevenementen, waarvoor de machtiging Toegankelijkheid nodig is.
- Toetsenbord: Een extern toetsenbord dat aan je mobiele apparaat is gekoppeld, typt direct op je Mac (inclusief de Esc-toets).
- Trackpad/Muis: Een trackpad of muis scrollt het venster onder de aanwijzer.
- Gebaren: Swipes met drie vingers en pinch-bewegingen werken zoals op een Mac-trackpad (voor Mission Control, App Exposé, Spaces, Apps en 'Toon Bureaublad') via de toetsenbordcombinaties van de Mac.
Apparaat-specifieke Layouts
- iPhone (rechtop): Het beeld staat bovenaan, met knoppen, toetsen en een trackpad eronder. Via de instelling Larger Picture kan het beeld van een venster worden vergroot tot aan de plek waar het toetsenbord verschijnt; de Desktop-modus behoudt de standaard layout. Een venster behoudt zijn eigen vorm, tenzij de tekstgrootte wordt aangepast via
Aa of de virtuele weergave wordt ingeschakeld.
- iPhone Duo: Sill volgt de scharnierstand. Volledig open staat de Mac op het interne display; half open staat het beeld boven de vouw met een trackpad en toetsen eronder; gesloten draait Sill op het coverdisplay.
Clipboard en Menu's
- Clipboard: Wanneer Share Clipboard is ingeschakeld in beide apps, werkt het klembord bidirectioneel. Tekst gekopieerd op de Mac kan op het apparaat worden geplakt, en de functie Paste in Sill stuurt tekst van het apparaat naar het klembord van de Mac (waar je
⌘V gebruikt). Sill leest het klembord van het apparaat nooit zelfstandig; wachtwoorden die door een wachtwoordmanager als 'verborgen' zijn gemarkeerd, blijven op de Mac staan.
- Menu's: Menu's van de gebruikte app zijn toegankelijk via de eigen menubalk van de iPad (iPadOS 26 of later) of via de Menus-knop in de balk van Sill. Sill voor Mac leest elk menu uit de app op het moment van openen en selecteert het gekozen item via Toegankelijkheid. Wanneer iemand de muis op de Mac beweegt, ziet het mobiele apparaat de aanwijzer op die positie.
Koppeling en Toegang
- Ontdekking: Op het lokale netwerk vindt het apparaat de Mac via Bonjour. Via een USB-kabel verschijnt de Mac als Wired. Zonder gedeeld netwerk kan Direct Wireless Connection (standaard uit) verbinding maken via peer-to-peer wifi, vergelijkbaar met AirDrop.
- Pairing (Koppelen): Elk apparaat wordt één keer gekoppeld aan de Mac. Door op de Mac te tikken vanaf het apparaat, verschijnt er een code die gescand of handmatig ingevoerd kan worden. Via USB gebeurt dit automatisch. Na koppeling is de verbinding altijd versleuteld met de opgeslagen sleutels. Gekoppelde apparaten kunnen worden beheerd in de instellingen van Sill op de Mac.
- Remote Access: Voor toegang buiten het eigen netwerk kan Remote Access (standaard uit) worden gebruikt via een VPN of een doorgestuurde poort op de router. Het apparaat leert deze configuratie de volgende keer dat het thuis verbinding maakt met Remote Access aan. Bij een verbinding van afstand wordt een aparte kwaliteit (standaard 'Low' bij standaardresolutie) gebruikt, zodat een trage verbinding de thuiskwaliteit niet beïnvloedt. Wanneer het apparaat terugkeert naar het thuisnetwerk, verplaatst de sessie zich automatisch terug naar het lokale netwerk.
Geavanceerde functies
- Tekstgrootte (
Aa): Hiermee kan de grootte van het gestreamde venster op de Mac worden aangepast via Toegankelijkheid. Het venster keert terug naar zijn oorspronkelijke grootte en positie zodra Sill stopt met het tonen ervan.
- Virtuele weergave (Virtual Display): (Standaard uit). Dit verplaatst een gestreamd venster naar een eigen virtueel display op de Mac, zodat het wordt bijgewerkt zelfs als andere vensters het bedekken. Dit maakt gebruik van een private macOS API, wat de reden is dat Sill voor Mac via de website en niet via de Mac App Store wordt verspreid.
Belangrijke informatie
- Beperkingen: Sill toont slechts één venster (of het volledige bureaublad) tegelijk. Er wordt geen geluid van de Mac afgespeeld. Het klembord ondersteunt alleen tekst tot maximaal 256 KB.
- Systeemstatus: De Mac moet aanstaan en Sill moet openstaan. Sill kan de Mac mogelijk niet wekken uit slaapstand. Na een herstart opent Sill alleen nadat iemand is ingelogd (indien Launch at Login aanstaat).
- Beveiliging: Alleen gekoppelde apparaten kunnen verbinden, tenzij Require pairing is uitgeschakeld in de instellingen. Vanaf versie 0.4.0 (Mac) en 0.5 (iOS) zijn verbindingen op het lokale netwerk, via kabel en via Direct Wireless versleuteld. Oudere versies (0.3.1 of eerder) zijn niet versleuteld; updates worden sterk aangeraden.
Tips en Ondersteuning
Sill is gratis, bevat geen advertenties, geen tracking en geen abonnementen. Donaties via GitHub Sponsors helpen de kosten voor het ontwikkelaarsaccount te dekken. Donaties ontgrendelen geen extra functies; alle functies zijn gratis.
Bouwen vanuit broncode
Vereisten
Een Mac met Xcode (Sill is gebouwd met Xcode 27; de iOS-app vereist Xcode 27.1 of later voor ondersteuning van de iPhone Duo). De licentie van Xcode moet zijn geaccepteerd.
Sill voor Mac
Voer vanuit de map van de repository uit: Scripts/make-app.sh --install --open
Dit bouwt Sill.app met SwiftPM, ondertekent deze met je Apple Development-identiteit, vervangt /Applications/Sill.app en opent de app. Indien je eerder de gedownloade versie gebruikte, moet je de machtigingen voor Schermopname en Toegankelijkheid opnieuw verlenen en apparaten opnieuw koppelen, omdat de sleutels in verschillende keychains worden opgeslagen.
Voor testen op de host zelf kan swift run -c release SillHost worden gebruikt via de command line. Let op: zonder de vlag --pairing is de poort open en onversleuteld, wat enkel voor ontwikkeling is bedoeld. Gebruik --synthetic om een testpatroon te streamen zonder dat Schermopname nodig is.
iPhone en iPad app
- Open
iOSClient/Sill.xcodeproj.
- Kies in Signing & Capabilities van het Sill-target je team en wijzig de bundle identifier
me.saffer.sill naar een eigen identifier.
- Draai de app op een iPhone of iPad in hetzelfde netwerk als de Mac. Bij de eerste keer zal een zelfgebouwde versie van Sill voor Mac vragen om te koppelen via een code of USB-kabel.
Voor verdere details over command-line vlaggen, testtools en troubleshooting zie docs/DEVELOPMENT.md.
Bijdragen
Issues (bugrapporten, vragen en ideeën) zijn welkom. Voor pull requests dienen de conventies in CLAUDE.md te worden gevolgd:
- Gebruik uitsluitend Swift en Apple-frameworks.
- Geen third-party dependencies.
- Geen server-afhankelijke functies.
- Prioriteit ligt bij latentie boven beeldkwaliteit.
Open eerst een issue voordat je aan grote wijzigingen begint. Voer voor een pull request Tests/checks/run-all.sh uit om de CI-checks lokaal te controleren. Beveiligingsproblemen dienen privé gemeld te worden conform SECURITY.md.
Licentie
Sill is gelicenseerd onder de Apache License 2.0. Copyright 2026 Noah Saffer.