Mac von der Kommandozeile aus wach halten mit der keepresso-CLI
Keepresso liefert ein kleines Kommandozeilen-Tool, mit dem du es aus dem Terminal, einem Shell-Skript, einem Makefile oder einem CI-Job steuern kannst, ohne zur Menüleiste zu greifen. Der Befehl heißt keepresso, und er funktioniert auf zwei Arten: Er kann mit der Menüleisten-App sprechen, oder er kann den Mac ganz von allein wach halten wie das eingebaute caffeinate.
Den Befehl installieren
Hast du Keepresso mit Homebrew installiert, ist der keepresso-Befehl schon in deinem PATH, nichts zu tun:
brew install --cask gyorgysh/keepresso/keepresso
Hast du die App stattdessen aus der DMG installiert, steckt das Tool im App-Bundle, und dein PATH weiß noch nichts davon. Verlink es einmal:
sudo ln -s /Applications/Keepresso.app/Contents/Helpers/keepresso /usr/local/bin/keepresso
Prüf, ob es funktioniert:
keepresso version
Die App steuern
Diese Befehle werden an die Keepresso-App geschickt und starten sie, falls sie nicht schon läuft. Sie sind das skriptbare Gegenstück zum Menü.
keepresso start # start an open-ended session
keepresso start --for 90 # start a 90 minute session
keepresso start --until 18:00 # run until a wall-clock time
keepresso stop # end the current session
keepresso toggle # flip it on or off
So kann ein langer Job den Mac beim Start wecken und beim Ende schlafen lassen:
keepresso start
make release
keepresso stop
Den Status auslesen
keepresso status sagt dir, ob eine Sitzung läuft, und sein Exit-Code macht es leicht, in einem Skript darauf zu verzweigen:
0der Mac wird wach gehalten1wird er nicht2die App läuft nicht
keepresso status && echo "awake" || echo "asleep"
Füg --json hinzu für eine maschinenlesbare Antwort:
keepresso status --json
Derselbe Sitzungsstatus wird auch in eine Datei gespiegelt, damit ein Menüleisten-Tool, eine Statuszeile oder ein Widget ihn auslesen kann, ohne etwas zu starten:
~/Library/Application Support/Keepresso/status.json
Sie enthält den aktuellen Status und ISO-8601-Zeitstempel.
Eigenständige Holds, ganz ohne App
Manchmal willst du die App gar nicht involvieren, du willst einfach, dass diese eine Shell den Mac wach hält, genau wie caffeinate. In diesem Modus hält der keepresso-Prozess selbst die Power Assertion, und der Mac darf wieder schlafen, sobald er beendet wird.
keepresso -i # hold until you press Ctrl-C
keepresso -t 3600 # hold for a number of seconds
keepresso -w 5123 # hold until process 5123 exits
keepresso -d # also keep the display awake (combine with the above)
keepresso -u # declare user activity: wake the display now
Das nützlichste Muster ist, die Wachheit an die Lebensdauer eines Befehls oder einer Shell zu binden:
keepresso -w $$ & # stay awake as long as this shell lives
ffmpeg -i in.mov out.mp4 && keepresso stop
Weil diese Holds echte macOS-Power-Assertions sind, tauchen sie in pmset -g assertions auf, und auch in Keepressos eigenem Aktivitäts-Bereich, direkt neben jeder anderen App, die den Mac wach hält.
Verwandte Themen
- Keepresso von Shortcuts, Raycast oder einem Skript aus steuern behandelt die Shortcuts-Aktionen und das
keepresso://URL scheme für Automatisierung ganz ohne Terminal. - Eine caffeinate-Alternative für macOS erklärt, wie Keepresso sich zum eingebauten
caffeinate-Befehl verhält.
Keepresso holen
Kostenlos und Open Source, für macOS 14 und neuer. Installiere es und halte deinen Mac wach, zu deinen Bedingungen.
Mehr in Keepresso verwenden