使用 Keepresso
用 keepresso CLI 從命令列讓 Mac 保持喚醒
更新於 Jul 6, 2026 1 min
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 # 啟動一個不限時的工作階段
keepresso start --for 90 # 啟動一個 90 分鐘的工作階段
keepresso start --until 18:00 # 執行到指定的時間點
keepresso stop # 結束目前的工作階段
keepresso toggle # 開啟或關閉它
所以一個長時間任務可以在開始時喚醒 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 時間戳記。
獨立保持喚醒,不需要應用程式
有時你根本不想牽涉到應用程式,只想要這個殼層本身讓 Mac 保持喚醒,就跟 caffeinate 一模一樣。在這個模式下,keepresso 處理程序本身會持有電源斷言,一旦它結束,Mac 就能立刻再度睡眠。
keepresso -i # 保持喚醒直到你按下 Ctrl-C
keepresso -t 3600 # 保持喚醒指定的秒數
keepresso -w 5123 # 保持喚醒直到處理程序 5123 結束
keepresso -d # 同時讓顯示器保持喚醒(可與上面的選項合併使用)
keepresso -u # 宣告使用者活動:立即喚醒顯示器
最實用的模式是把保持喚醒綁定在某個指令或殼層的生命週期上:
keepresso -w $$ & # 只要這個殼層存在,就保持喚醒
ffmpeg -i in.mov out.mp4 && keepresso stop
因為這些是真正的 macOS 電源斷言,它們會出現在 pmset -g assertions 裡,也會出現在 Keepresso 自己的活動面板中,和其他每一個讓 Mac 保持喚醒的應用程式並列。
相關文章
- 用捷徑、Raycast 或指令碼控制 Keepresso 涵蓋「捷徑」動作,以及不需要終端機的
keepresso://URL scheme 自動化方式。 - macOS 上 caffeinate 的真正選單列替代方案 說明 Keepresso 和內建
caffeinate指令的關聯。
更多「使用 Keepresso」內容