Keepresso
Keepresso
使用 Keepresso

用自動化租約讓 AI 智能體與指令碼保持 Mac 喚醒

György
審核
György
更新於 Jul 28, 2026 2 min

通宵執行長時間任務的智能體,需要 Mac 在工作時保持喚醒,工作完成後進入睡眠。單純的「開啟保持喚醒」只做到前半段,卻做不到後半段:一旦工具當掉或忘了關閉它,Mac 就會永遠被釘在喚醒狀態。自動化租約正是為此而生。指令碼或 AI 智能體取得一份有時限的租約,在工作進行期間持續續約,並在結束時釋放它。如果工具在任務進行中掛掉,租約就會直接到期,Mac 便可再次睡眠。不會有任何東西不小心讓機器一直醒著。

Keepresso 為此提供了完整的一整套工具:keepresso lease 指令、任何支援 MCP 的智能體都能呼叫的 MCP 伺服器,以及可一鍵安裝的內建智能體技能。

偵測負責觀察,租約負責發話

Keepresso 早已內建一個 AI 智能體觸發條件,能偵測編碼智能體何時正在實際工作。已知的智能體(claudecursorcodexgeminipi 等)根據它們自身處理程序的活動來判斷,這一側完全不需要在智能體裡做任何設定。如果想取得精確的工作階段狀態,可以在 AI 智能體條件下連接 Claude Code、Cursor、Codex 或 Antigravity,這也包括 Cursor 和 Antigravity 應用程式內建的智能體,它們沒有自己的處理程序可供觀察。只會提供你 Mac 上實際安裝的工具,Keepresso 還會隨時間重新檢查每個連接,修復遺失或過期的掛鉤。

但偵測只能涵蓋 Keepresso 知道如何辨識的智能體,而新的智能體每週都在出現。租約則翻轉了方向:不再由 Keepresso 猜測,而是由智能體自己告訴 Keepresso,它何時需要 Mac 保持喚醒、為了什麼、以及需要多久,接著持續證明自己還活著。任何能執行指令或呼叫 MCP 伺服器的工具都做得到,不論它叫什麼名字、內部如何運作。兩者搭配得宜:偵測涵蓋你沒想到的日常工作階段,租約則涵蓋刻意安排的長時間任務,以及一切偵測看不到的情況。

為什麼要用租約,而不是 keepresso start

keepresso start 是個不錯的手動開關,但自動化需要的是不同的保證:

  • 有界限。 租約有一個擁有者必須持續續約的 TTL,還有一個心跳永遠無法延長的最長存活時間(上限為 7 天)。失控的任務無法讓 Mac 保持喚醒超過這個上限。
  • 自我修復。 沒有心跳,就沒有保持。當掉的指令碼,其租約會自行到期。
  • 乾淨共享。 多個工具可以同時持有租約。Keepresso 會將它們聯集起來,等最後一個結束後才讓 Mac 睡眠,並在那時、而非更早,執行你的工作階段結束動作。
  • 可見。 每一份運作中的租約都會顯示在選單裡,帶有各自的倒數計時,並以取得它的工具和任務命名。

租約的生命週期

在任務開始時取得一份租約。你自己指定 id(一組 UUID)、為工具和任務命名,並以秒為單位設定 TTL:

ID=$(uuidgen)
keepresso lease acquire --id "$ID" --tool my-script --task "nightly render" --ttl 600

在 TTL 過了一半之前送出心跳,並在工作進行期間持續循環。心跳也可以調整 TTL:

keepresso lease heartbeat --id "$ID"            # renew with the same TTL
keepresso lease heartbeat --id "$ID" --ttl 300  # renew and shorten it

任務完成後就釋放,這樣 Mac 就不必等完剩下的 TTL:

keepresso lease release --id "$ID"

也可以列出目前運作中的租約,包括你自己的和其他所有人的:

keepresso lease list --json

每個指令都接受 --json 以輸出機器可讀的結果,結束代碼也是為指令碼量身打造:0 正常、2 應用程式沒有執行、3 找不到租約或租約已結束、4 租約已在偏好設定中關閉。

租約由 偏好設定 → 自動化 下的一個開關控管,預設為開啟。關掉它,每次取得租約都會被拒絕並回傳結束代碼 4,因此自動化永遠無法凌駕你的選擇。

從選單查看並停止它們

運作中的租約會出現在選單面板的狀態卡片上,各自帶有倒數計時。主導權仍在你手上:Stop 會一次結束全部,Mac 便可再次自由睡眠。

Keepresso 選單顯示帶有倒數計時的活動自動化租約
選單中的活動租約:任務、工具與倒數計時。

一鍵教會你的智能體

你不必手動向智能體解釋這一切。應用程式包內附一個現成的保持喚醒技能,能教會智能體整套協定,同時涵蓋 keepresso 命令列和 MCP 伺服器,還有該在什麼時候使用它:在長時間建置、渲染、下載或通宵執行之前。在 偏好設定 → 自動化 下,可以直接從磁碟把它安裝到智能體的技能資料夾。對於沒有技能資料夾的智能體,Keepresso 則會把完整的技能複製成可直接貼上的指示:把它們貼進智能體一次,協定就學會了,或是把它們存進智能體每次都會讀取的全域設定檔,例如 CLAUDE.mdAGENTS.md,讓往後每個工作階段都已經知道該如何、以及何時讓 Mac 保持喚醒。如果你想自己動手接好它,這個技能也存放在應用程式包的 Keepresso.app/Contents/Resources/AgentSkill/keep-awake

Keepresso 的自動化偏好設定:允許自動化租約開關已開啟、允許自動化修改喚醒排程開關已關閉,還有用來複製智能體指示、複製 MCP 設定,以及顯示技能資料夾的按鈕
自動化偏好設定:租約開關、喚醒排程的選用啟用項,以及一鍵智能體設定。

MCP 伺服器

對於使用 Model Context Protocol 的智能體,應用程式包內附 keepresso-mcp

/Applications/Keepresso.app/Contents/Helpers/keepresso-mcp

它提供了取得、送出心跳、釋放和列出租約,讀取 Keepresso 狀態,以及讀取系統喚醒排程的各種工具。MCP 是一個開放協定,所以這不限於編碼智能體:任何支援 MCP 的應用程式都能持有自己的租約,在工作期間讓 Mac 保持運作。偏好設定 → 自動化 已備好可直接複製的設定片段,適用於 Claude Code、Gemini CLI、Grok 和 Codex。以 Claude Code 而言,只需要一道指令:

claude mcp add keepresso -- /Applications/Keepresso.app/Contents/Helpers/keepresso-mcp

供自動化使用的喚醒排程,需選用啟用

自動化也可以讀取系統下次排定喚醒的時間,並在你允許的情況下修改該排程:

keepresso wake status                          # always allowed, for anyone
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

讀取一律允許。只有在 偏好設定 → 自動化 下的 允許自動化修改喚醒排程 開啟時,才能修改排程。它預設為關閉,因為排定喚醒是一項由管理員輔助程式套用的系統層級變更。MCP 伺服器也依相同規則提供對應的工具。

為排定的 AI 任務喚醒 Mac

租約和 CLI 涵蓋的是已經在執行的工作。但有些智能體任務是排定在稍後執行的:像是設定在凌晨 3 點執行的 Claude Desktop 例行任務,或按夜間節奏執行的 Codex 自動化。如果那時 Mac 已經睡著,任務就會直接被跳過。

排定 AI 任務功能不需要寫任何指令碼就能補上這個缺口。在 偏好設定 → 自動化 → 排定 AI 任務 下開啟它,然後為每個你想喚醒的工具個別開啟開關。Keepresso 會讀取該工具已排定的例行任務,在每次任務開始前幾分鐘喚醒 Mac,並讓它保持喚醒一小段時間,這樣即使閉蓋任務也能照常執行。

Keepresso 的排定 AI 任務偏好設定,列出找到的例行任務:兩個 Claude Desktop 任務和一個 Codex 任務,各自附有下一次執行時間與獨立開關,上方是下一次喚醒時間與保持喚醒的時間窗
Keepresso 找到的例行任務,各自附有獨立開關與下一次執行時間。

在你開啟某個工具的開關之前,不會匯入任何內容,而且每個例行任務都有自己的開關,所以你可以只為夜間報告任務喚醒,其餘的不管。如果清單是空的,代表這個工具目前還沒有本機例行任務。

  • 依工具個別選用啟用。 Claude Desktop 和 Codex 預設都是關閉的,所以你不使用的工具永遠不會被喚醒。它只讀取排程和任務名稱,絕不會讀取任務的提示內容。
  • 僅限本機排程。 雲端例行任務不論你的 Mac 是否喚醒都會在廠商的伺服器上執行,因此會被忽略。這項功能只針對真正需要你的 Mac 保持喚醒的任務。
  • 對於較長的任務, 可以搭配租約使用:喚醒視窗負責把任務啟動起來,接著由智能體持有租約,讓 Mac 保持喚醒直到工作真正完成。
排定 AI 任務面板顯示找不到任何例行任務,提示你在 Claude Desktop 的「例行任務、新增例行任務、本機」下新增一個,或在 Codex 中新增,並說明雲端例行任務不需要喚醒
目前還沒有需要喚醒的任務:面板會說明該去哪裡新增本機例行任務。

在底層,它使用的是和上方 CLI 的 keepresso wake 指令相同的排定喚醒機制,因此需要管理員輔助程式,接電源時可靠(用電池時韌體可能會略過這次喚醒)。

你需要什麼

  • Keepresso 1.17 或更新版本即可使用租約、MCP 伺服器和 CLI 喚醒指令;排定 AI 任務功能則需要 1.18 或更新版本。安裝步驟:入門指南
  • 若是 DMG 安裝要使用 CLI,請手動連結指令一次
  • 若要修改喚醒排程或使用排定 AI 任務,需要管理員輔助程式和上述的選用啟用開關。

相關文章

取得 Keepresso

免費開源,支援 macOS 14 以上版本。安裝它,讓 Mac 照你的方式保持喚醒。