Wyobraź sobie, że agent AI właśnie skończył pisać kod i zabiera się za jego sprawdzenie: uruchamia testy XCUITest, bootuje symulator iOS, odpala świeżo zbudowaną aplikację. Efekt? Na ekranie wyskakują okna, fokus przeskakuje między aplikacjami, a ty nie możesz nic wpisać, dopóki cała operacja się nie zakończy. Projekt Offscreen, opublikowany przez Marka Phelpsa na GitHubie i pokazany w dziale „Show HN”, ma ten problem rozwiązać w prosty sposób: dać agentom własny ekran Maca, a deweloperowi zostawić jego własny.
Ideą narzędzia jest izolacja pracy związanej z interfejsem graficznym w jednorazowych maszynach wirtualnych macOS. Zamiast pozwalać automatom przejmować fizyczny pulpit, Offscreen kieruje ich zadania do świeżo tworzonego VM-a. Jak deklaruje autor, dowolna liczba agentów, terminali i skryptów może współdzielić jedną kolejkę zadań, a każde z nich zwraca logi, zrzuty ekranu oraz pakiety .xcresult. To istotna zmiana perspektywy: GUI przestaje być przeszkodą w automatyzacji, a staje się artefaktem, który można obejrzeć po fakcie.
Architektura opiera się na trzech elementach: narzędziu wiersza poleceń offscreen (z krótszym aliasem ofs), demonie offscreend, który faktycznie wykonuje zadania, oraz aplikacji w pasku menu, zarządzającej demonem — jej uruchomienie startuje usługę, a zamknięcie ją zatrzymuje. Menu pokazuje zadania oczekujące, wykonywane i niedawno zakończone. Pod spodem działa Tart, narzędzie do maszyn wirtualnych na Apple silicon, z którego Offscreen korzysta do tworzenia obrazów systemu.
Ciekawym rozwiązaniem jest podział na dwa „tory” wykonania. W trybie lane = vm zadanie trafia do czystej maszyny wirtualnej, tworzonej od zera dla każdego uruchomienia. W trybie lane = host praca odbywa się na prawdziwym pulpicie — ale wyłącznie wtedy, gdy użytkownik jest nieobecny. Gdy wrócisz do komputera, zadanie zostaje zatrzymane i wraca do kolejki. To pragmatyczny kompromis: szybkość i dostęp do sprzętu bez ryzyka, że agent wyrwie ci klawiaturę z rąk.
Wymagania są zawężone do komputerów Mac z Apple silicon i systemem macOS 14 lub nowszym, pełnym Xcode oraz Homebrew. Instalacja sprowadza się do jednego pakietu z repozytorium tap, a jednorazowe zbudowanie obrazu VM z macOS i Xcode trwa na tyle długo, że autor żartobliwie sugeruje wyjście na lunch. W repozytorium znajdziemy przykładową aplikację SwiftUI z trzema zadaniami: testem UI w VM, testem w symulatorze iOS oraz uruchomieniem aplikacji ze zrzutem ekranu. Projekt rozwija się prężnie — ponad sto commitów, licencja MIT, ale też uczciwe ostrzeżenie: to wciąż wersja beta, w której polecenia, konfiguracja i stan na dysku mogą się zmieniać między wydaniami.
Offscreen wpisuje się w szerszy trend porządkowania relacji między deweloperem a autonomicznymi agentami. Coraz więcej osób pracuje równolegle z kilkoma asystentami, którzy kompilują, testują i klikają w interfejsy — a wspólny, fizyczny ekran staje się wąskim gardłem. Przeniesienie tej warstwy do efemerycznych środowisk to nie tylko kwestia wygody, lecz także higieny: powtarzalności testów, braku konfliktów o fokus i możliwości równoległej pracy bez wzajemnego zakłócania się.
Podsumowanie: Offscreen to dojrzały koncepcyjnie, choć wciąż beta, projekt open source, który odpowiada na realny ból zespołów pracujących z agentami AI na macOS. Zamiast walczyć o pulpit, oddaje go maszynom wirtualnym — a człowiekowi zwraca spokój, logi i zrzuty ekranu.