Open-source macOS devtool
WakeUp Samurai
Menu bar app dla macOS, która wykrywa pracujące agenty kodujące i nie pozwala Macowi zasnąć, dopóki kończą zadanie.
Opis
WakeUp Samurai powstał z bardzo praktycznego problemu: agent koduje, ja odchodzę od komputera, a macOS usypia maszynę w złym momencie. Aplikacja siedzi w menu barze, wykrywa aktywne procesy agentów i utrzymuje Maca awake tylko wtedy, gdy faktycznie trzeba.
Problem
Klasyczne stay-awake apps wymagają ręcznego włączania i wyłączania. Przy agentach AI to łatwo przeoczyć: albo Mac zaśnie w środku pracy, albo zostanie awake dłużej niż powinien.
Hipoteza produktowa
Jeśli aplikacja rozumie, kiedy agent naprawdę pracuje, może zachować się lepiej niż ręczny przełącznik: utrzymać komputer przy życiu podczas zadania i oddać kontrolę macOS zaraz po zakończeniu.
Co zbudowałem
- Natywna aplikacja menu bar dla macOS.
- Wykrywanie procesów agentów kodujących, między innymi Codex, Claude Code, Cursor, Gemini, Copilot, Kimi i JetBrains AI.
- Automatyczne utrzymywanie Maca awake tylko podczas aktywnej pracy agentów.
- Ustawienia startu przy logowaniu i ręczne sterowanie z menu.
- Publiczne repozytorium open-source oraz osobny landing page z download CTA do latest release.
Warstwa AI
AI nie siedzi tu jako chatbot w interfejsie. Produkt jest zbudowany wokół realnego workflow pracy z agentami: obserwuje procesy narzędzi AI i reaguje na ich stan, zamiast wymagać ręcznej kontroli od developera.
Architektura
Swift, SwiftUI, AppKit, Process monitoring, IOKit power assertions, Launch Services oraz osobny landing w Next.js na Vercel.
Kluczowe decyzje
- Najpierw małe natywne narzędzie rozwiązujące jeden irytujący problem.
- Menu bar zamiast pełnej aplikacji, bo produkt ma działać w tle.
- Open-source od początku, żeby developerzy mogli zaufać temu, co utrzymuje ich Maca awake.
- Bez telemetryki i bez App Store na starcie, żeby release path był prosty.
Efekt / dowód
Publiczny projekt z releasem na GitHubie, landingiem na Vercel i szeroką listą wykrywanych narzędzi agentowych.
Co dalej
Doprecyzować dystrybucję, zebrać feedback od developerów używających agentów i dodać kolejne integracje tylko wtedy, gdy wynikają z realnego użycia.