用 keepresso CLI 從命令列讓 Mac 保持喚醒
Keepresso 內建一個小巧的命令列工具,讓你能從終端機、殼層指令碼、Makefile 或 CI 工作來控制它,不用伸手點選單列。指令名稱是 keepresso,它有兩種運作方式:可以和選單列應用程式對話,也可以像內建的 caffeinate 一樣自行讓 Mac 保持喚醒。
安裝這個指令
如果你用 Homebrew 安裝了 Keepresso,keepresso 指令已經在你的 PATH 裡了,不用另外處理:
brew install --cask gyorgysh/keepresso/keepresso
如果你是用 DMG 安裝應用程式,這個工具位在應用程式包裡,你的 PATH 還不知道它的存在。手動連結一次:
sudo ln -s /Applications/Keepresso.app/Contents/Helpers/keepresso /usr/local/bin/keepresso
確認它已經連結好:
keepresso version
控制應用程式
這些指令會送到 Keepresso 應用程式;如果它還沒在執行,會先啟動它。它們是選單的指令碼版雙生兄弟。
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
因此一項長時間任務可以在開始時喚醒 Mac,結束後再讓它睡眠:
keepresso start
make release
keepresso stop
讀取狀態
keepresso status 會告訴你目前是否有工作階段在執行,結束代碼也方便在指令碼裡分支判斷:
0Mac 正在被保持喚醒1沒有2應用程式沒有執行
keepresso status && echo "awake" || echo "asleep"
加上 --json 可取得機器可讀的結果:
keepresso status --json
相同的工作階段狀態也會鏡像寫入一個檔案,因此選單列工具、狀態列或小工具不必啟動任何東西就能讀取:
~/Library/Application Support/Keepresso/status.json
它帶有目前狀態與 ISO 8601 時間戳記。
獨立保持喚醒,不必開應用程式
有時你完全不想動到應用程式,只想讓這一個殼層像 caffeinate 一樣讓 Mac 保持喚醒。在這個模式下,keepresso 處理程序本身持有電源斷言,一旦它結束,Mac 便可再次自由睡眠。
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
最實用的模式,是把喚醒狀態綁在某個指令或殼層的生命週期上:
keepresso -w $$ & # stay awake as long as this shell lives
ffmpeg -i in.mov out.mp4 & keepresso -w $! # hold until the encode finishes
因為這些保持喚醒都是真正的 macOS 電源斷言,它們會出現在 pmset -g assertions 與 Keepresso 自己的活動面板裡,和其他讓 Mac 保持喚醒的應用程式並列。
自動化租約,給指令碼與智能體
只有 start 而沒有 stop,一旦指令碼當掉,就可能把 Mac 永遠釘在喚醒狀態。對於無人看管的自動化,改用租約:一份有時限的授權,擁有者必須持續續約。工具若掛掉,租約會到期,Mac 便可再次睡眠。
ID=$(uuidgen)
keepresso lease acquire --id "$ID" --tool my-script --task "nightly render" --ttl 600
keepresso lease heartbeat --id "$ID" # renew before half the TTL elapses, on a loop
keepresso lease release --id "$ID" # done, let the Mac rest
keepresso lease list --json # every live lease, machine-readable
運作中的租約會以倒數計時顯示在選單裡,Keepresso 會將它們聯集起來,還有一個心跳永遠無法延長的最長存活時間(上限為 7 天)。完整協定、MCP 伺服器與一鍵安裝的智能體技能,見讓 AI 智能體保持你的 Mac 喚醒。
喚醒排程
CLI 也能讀取系統的排程喚醒,並在你允許的情況下修改它們:
keepresso wake status # read the schedule, always allowed
keepresso wake set --at "2026-07-24 07:30" # one-shot wake
keepresso wake set --repeat MTWRF --time 07:30 # repeating wake
keepresso wake clear
status 對任何人都能用。set 與 clear 會透過管理員輔助程式套用系統層級變更,因此只有在 偏好設定、自動化 下的 允許自動化修改喚醒排程 開啟時才能運作。它預設為關閉。
相關
- 用捷徑、Raycast 或指令碼控制 Keepresso 涵蓋「捷徑」動作與
keepresso://URL scheme,適合不開終端機的自動化。 - Keepresso 對比 Amphetamine、KeepingYouAwake 與 caffeinate 說明 Keepresso 與內建
caffeinate指令的關係。
更多「使用 Keepresso」內容
