Uruchamiasz długą sesję w Claude Code, odchodzisz od komputera i po godzinie odkrywasz, że Mac przeszedł w stan uśpienia, a proces został zatrzymany? To częsty problem podczas generowania kodu, analizowania projektu czy wykonywania długich komend w terminalu. Na szczęście macOS ma na to proste narzędzie, bez grzebania w ustawieniach zasilania.
W skrócie
caffeinate -i polecenie— Mac nie zaśnie, dopóki polecenie działa.caffeinate -di polecenie— dodatkowo ekran się nie wygasi.caffeinate -i -t 3600— blokada na godzinę, bez żadnego programu.caffeinate -i -w PID— blokada do końca już działającego procesu.- Wyłączasz przez Ctrl+C albo
killall caffeinate. - Zamknięcie pokrywy MacBooka i tak uśpi komputer — caffeinate tego nie blokuje.
Czym jest caffeinate?
caffeinate to narzędzie wbudowane w macOS (jest w systemie od OS X 10.8, nie trzeba niczego instalować ani pobierać przez Homebrew). Tworzy tymczasowe blokady uśpienia systemu (Power Management Assertions). Zamiast na stałe zmieniać ustawienia zasilania, informuje system, że aktualnie wykonywane zadanie nie powinno zostać przerwane przez automatyczne usypianie komputera.
Po zakończeniu działania caffeinate wszystkie blokady są automatycznie usuwane, a macOS wraca do standardowych ustawień oszczędzania energii. Dzięki temu nie trzeba pamiętać o ponownym włączaniu lub wyłączaniu opcji w Ustawieniach systemowych.
Najprostsze użycie to samo słowo w Terminalu:
caffeinate
Bez żadnej flagi caffeinate blokuje uśpienie z powodu bezczynności (tak jak -i) i działa, dopóki go nie przerwiesz.
Flagi caffeinate (-d, -i, -m, -s, -u, -t, -w)
Flagi można łączyć w jedną, np. -di albo popularne -dimsu.
| Flaga | Co robi |
|---|---|
-i |
blokuje uśpienie komputera z powodu bezczynności (najczęściej używana) |
-d |
nie pozwala wygasić ekranu |
-m |
blokuje uśpienie dysku |
-s |
blokuje uśpienie systemu — działa tylko przy podłączonym zasilaczu |
-u |
zgłasza „użytkownik jest aktywny”: włącza wygaszony ekran; bez -t trwa tylko 5 sekund |
-t sekundy |
blokada przez podaną liczbę sekund |
-w PID |
blokada do zakończenia procesu o danym PID |
caffeinate -i — zapobiega uśpieniu komputera
To najczęściej używana flaga.
caffeinate -i claude
Komputer pozostanie aktywny, nawet jeśli przez dłuższy czas nie będziesz używać klawiatury ani myszy. Ekran może jednak zostać wygaszony zgodnie z ustawieniami systemu.
caffeinate -d — nie wygaszaj ekranu
Jeżeli chcesz obserwować, co dzieje się w terminalu, dodaj flagę -d.
caffeinate -di claude
Mac pozostanie aktywny, a ekran nie zostanie wygaszony. To dobre rozwiązanie podczas:
- monitorowania logów,
- obserwowania postępu pracy agenta,
- prezentacji,
- debugowania aplikacji.
caffeinate -s — uśpienie systemu przy zasilaczu
-s działa podobnie do -i, ale mocniej: blokuje uśpienie systemu w ogóle, nie tylko to z bezczynności. Haczyk: działa tylko przy podłączonym zasilaczu. Na baterii MacBook potraktuje tę flagę tak, jakby jej nie było.
caffeinate -s npm run build
caffeinate -t — określ czas działania
Nie zawsze chcesz uruchamiać konkretny program przez caffeinate. Możesz po prostu określić czas działania w sekundach.
caffeinate -i -t 7200
Komputer pozostanie aktywny przez dwie godziny, a następnie caffeinate zakończy działanie automatycznie. Przydatne przeliczniki: 1800 = 30 minut, 3600 = godzina, 14400 = 4 godziny.
caffeinate -w — dla procesu, który już działa
Zapomniałeś dopisać caffeinate przed długą komendą? Nie trzeba jej przerywać. Sprawdź PID procesu (np. pgrep -f "npm run build" albo w Monitorze aktywności) i w drugiej karcie Terminala wpisz:
caffeinate -i -w 12345
Blokada zniknie sama, gdy proces o numerze 12345 się zakończy.
caffeinate -dimsu — wszystko naraz
caffeinate -dimsu
Ta kombinacja często krąży w poradnikach: blokuje uśpienie ekranu, systemu i dysku oraz „budzi” ekran. W praktyce do długich zadań w terminalu wystarcza -i (albo -di, jeśli chcesz patrzeć na ekran) — -u bez -t i tak wygasa po 5 sekundach, a -s na baterii nic nie zmienia.
Caffeinate i Claude Code
Claude Code często wykonuje zadania trwające kilkanaście minut, a czasem nawet kilka godzin. Dotyczy to między innymi:
- refaktoryzacji dużych projektów,
- generowania kodu,
- analizowania repozytorium,
- uruchamiania testów,
- kompilacji aplikacji,
- pracy z agentami AI wykonującymi wiele kroków.
Tryb automode robi robotę :).
Jeżeli komputer przejdzie w stan uśpienia, proces może zostać zatrzymany lub utracić połączenie z usługami sieciowymi. Najprostszym rozwiązaniem jest uruchomienie Claude Code przez caffeinate:
caffeinate -i claude
Od tej chwili Mac nie będzie przechodził w stan uśpienia z powodu bezczynności. Gdy zakończysz pracę w Claude Code, caffeinate również zakończy działanie i system wróci do normalnego trybu pracy.
Dzięki temu można zlecić dłuższą robotę i wyjść do kuchni na kawę czy do sklepu na szybkie zakupy. Robota będzie się robiła „sama”. Przy długich sesjach warto też pilnować kosztów — o tym, jak to robię, piszę w tekście jak zmniejszyć zużycie tokenów w Claude Code.
Żeby nie pisać tego za każdym razem, dodaj alias do ~/.zshrc:
alias cc='caffeinate -i claude'
Po ponownym otwarciu Terminala wystarczy wpisać cc.
Inne praktyczne przykłady
Budowanie projektu
caffeinate -i npm run build
Komputer pozostanie aktywny aż do zakończenia kompilacji.
Uruchamianie testów
caffeinate -i npm test
Przydatne przy długich zestawach testów integracyjnych. Trochę na siłę, ale pokazuję, że można inne komendy uruchamiać.
Kopia zapasowa na dysk zewnętrzny
caffeinate -i rsync -av ~/Projects /Volumes/Backup
Backup nie zostanie przerwany przez automatyczne uśpienie komputera.
Lokalny serwer PHP
caffeinate -i php -S localhost:8080
Serwer deweloperski działa, a Mac nie zaśnie, dopóki go nie zatrzymasz.
Pobieranie dużego pliku
caffeinate -i curl -O https://example.com/duzy-plik.iso
Jak sprawdzić, czy caffeinate działa?
macOS udostępnia narzędzie pokazujące aktywne blokady uśpienia.
pmset -g assertions
Jeżeli caffeinate działa poprawnie, zobaczysz wpis podobny do:
pmset -g assertions 2026-07-06 18:48:23 +0200 Assertion status system-wide: BackgroundTask 0 ApplePushServiceTask 0 UserIsActive 1 PreventUserIdleDisplaySleep 1 SoftwareUpdateTask 0 PreventSystemSleep 0 ExternalMedia 0 PreventUserIdleSystemSleep 1 NetworkClientActive 0 Listed by owning process: pid 10150(caffeinate): [0x0004db950001a0cd] 00:03:17 PreventUserIdleSystemSleep named: "caffeinate command-line tool" Details: caffeinate asserting for 300 secs Localized=THE CAFFEINATE TOOL IS PREVENTING SLEEP. Timeout will fire in 102 secs Action=TimeoutActionRelease pid 2992(caffeinate): [0x0004d3ed00019f3e] 00:35:57 PreventUserIdleSystemSleep named: "caffeinate command-line tool" Details: caffeinate asserting forever Localized=THE CAFFEINATE TOOL IS PREVENTING SLEEP. pid 2992(caffeinate): [0x0004d3ed00059f3f] 00:35:57 PreventUserIdleDisplaySleep named: "caffeinate command-line tool" Details: caffeinate asserting forever Localized=THE CAFFEINATE TOOL IS PREVENTING SLEEP. pid 1211(sharingd): [0x0004dc240001a0e0] 00:00:54 PreventUserIdleSystemSleep named: "Handoff" pid 83(powerd): [0x0004cf1600019e16] 00:56:36 PreventUserIdleSystemSleep named: "Powerd - Prevent sleep while display is on" pid 141(WindowServer): [0x0004d92d00099fff] 00:00:00 UserIsActive named: "com.apple.iohideventsystem.queue.tickle serviceID:100000fb9 service:AppleHIDKeyboardEventDriverV2 product:Apple Internal Keyboard / Trackpad eventType:3" Timeout will fire in 120 secs Action=TimeoutActionRelease No kernel assertions.
Liczy się linia PreventUserIdleSystemSleep 1 i proces caffeinate na liście. To oznacza, że system nie uśpi komputera z powodu bezczynności. Szybsza wersja, jeśli chcesz tylko sprawdzić, czy caffeinate w ogóle działa:
pmset -g assertions | grep caffeinate
Jak wyłączyć caffeinate?
- Ctrl+C w oknie Terminala, w którym działa.
killall caffeinatez innego okna — kończy wszystkie uruchomione instancje.- Samo się wyłączy po czasie z
-t, po zakończeniu procesu z-walbo programu uruchomionego przez caffeinate.
Zamknięcie okna Terminala też kończy caffeinate — warto o tym pamiętać, gdy zostawiasz komputer na noc.
Caffeinate a zamknięta klapa MacBooka
caffeinate nie zapobiega uśpieniu po zamknięciu pokrywy MacBooka — nawet z flagą -s. Jeżeli zamkniesz laptop, system przejdzie w stan uśpienia zgodnie z normalnym zachowaniem macOS. Są dwa wyjścia:
- Tryb z zamkniętą pokrywą (clamshell) — podłącz zasilacz i zewnętrzny monitor (oraz klawiaturę i mysz). Wtedy MacBook pracuje z zamkniętą klapą normalnie, a caffeinate działa jak zwykle.
pmset disablesleep— całkowicie wyłącza usypianie, także po zamknięciu pokrywy:sudo pmset -a disablesleep 1
Po skończonej pracy koniecznie przywróć ustawienie:
sudo pmset -a disablesleep 0
To zmienia ustawienia systemu na stałe (do odwołania). Nie wkładaj tak ustawionego laptopa do plecaka — z zamkniętą pokrywą będzie pracował dalej i się nagrzewał.
Caffeinate nie działa — najczęstsze przyczyny
- Zamknięta pokrywa — patrz wyżej, caffeinate tego nie obejmuje.
- Flaga
-sna baterii — działa tylko przy zasilaczu. Użyj-i. - Ekran gaśnie mimo caffeinate — samo
-inie blokuje wygaszania ekranu, dodaj-d. To, że gaśnie ekran, nie znaczy, że komputer zasnął. - caffeinate już się zakończył — minął czas z
-t, skończył się program albo zamknięto okno Terminala. Sprawdźpmset -g assertions | grep caffeinate. - Pojawia się ekran blokady — blokada ekranu (wygaszacz, „wymagaj hasła”) to co innego niż uśpienie. Procesy działają dalej, nawet jeśli Mac jest zablokowany.
Aplikacja zamiast komendy
Jeżeli wolisz klikać niż pisać w Terminalu, w App Store jest darmowa aplikacja Amphetamine — ikonka na pasku menu, sesje „nie usypiaj” na określony czas, do końca działania wybranej aplikacji albo pobierania pliku. Pod spodem korzysta z tych samych mechanizmów co caffeinate.
Na stałe (bez żadnych narzędzi) można też zmienić ustawienia: Ustawienia systemowe → Ekran blokady (czas wyłączania ekranu) oraz w MacBookach Bateria → Opcje (zapobieganie automatycznemu usypianiu przy podłączonym zasilaczu). Tylko że wtedy trzeba pamiętać, żeby to później cofnąć — dlatego do jednorazowych zadań caffeinate jest wygodniejszy.
Przy okazji pracy w Terminalu: jeśli zamiast polskich znaków widzisz krzaczki, zobacz szybki fix na brak polskich liter w Terminalu.
Najczęstsze pytania o caffeinate
01Czy caffeinate trzeba instalować?+
02Co oznacza caffeinate -dimsu?+
03Jak wyłączyć caffeinate?+
04Czy caffeinate działa po zamknięciu pokrywy MacBooka?+
05Jak długo działa caffeinate?+
06Czy caffeinate szkodzi baterii?+
Podsumowanie
Jeżeli regularnie korzystasz z Claude Code albo uruchamiasz długie procesy z poziomu terminala, caffeinate powinien znaleźć się wśród podstawowych narzędzi. Jedna komenda wystarczy, aby uniknąć przypadkowego uśpienia komputera podczas wielogodzinnej pracy:
caffeinate -i claude
To rozwiązanie jest proste, bezpieczne i nie wymaga modyfikowania ustawień zasilania w macOS. Po zakończeniu pracy wszystko wraca do domyślnej konfiguracji systemu. A jeśli myślisz o Macu pod lokalne modele AI, które potrafią mielić godzinami, zajrzyj do tekstu który MacBook najlepiej sprawdzi się do lokalnych modeli LLM.