AI agent 還在工作,Mac 就不睡。

最後一個 agent 做完,睡眠就交還給 macOS 原本的設定。不必再為了怕中斷而把睡眠整個關掉,工作也不會因為沒人碰鍵盤,就在半路斷掉。

即將在 Mac App Store 上架

適用 macOS 15 以上,Apple 晶片與 Intel 的 Mac 都能用。

讓 agent 自己開口

沒人碰鍵盤,macOS 就會睡。agent 跑長時間的工作時也不會去碰鍵盤,於是 Mac 一到閒置時間就在工作途中睡著,整個工作階段也跟著斷掉。有了 Peaberry,agent 會自己要求它的工作需要的那段時間。

# 這個 build 跑多久,Mac 就醒多久
open "peaberry://hold?pid=$$&id=claude&reason=build" && ./build.sh
# shell 一結束,要求也跟著結束,不必另外釋放
兩個 agent 的工作階段,加上一個 90 分鐘的算圖,各自持有自己的租約。只要還有一個在跑,Mac 就保持清醒;最後一個結束的那一刻,就交還給你的睡眠設定。
每一筆要求都會自己結束
要求綁在一個程序上,或是一段分鐘數,最長 24 小時。agent 當掉或忘了收尾,它的要求照樣會結束,程序結束後幾秒內就放手。
多個 agent,同一台 Mac
每個 agent 用自己的名字持有自己的租約,最多同時 16 筆。同名的會取代前一筆,不同名的並存。只要還有一個在工作,Mac 就保持清醒。
開關在你手上
agent 只能提出要求。要不要讓它們要求,是「設定 › AI agent」裡的一個開關,沒有任何指令能替你打開。在你決定之前,「智能控制」下的第一筆要求會先放行最多 15 分鐘,免得工作白做;面板上可以直接停止,或選擇永遠允許。每一筆要求都有自己的「停止」按鈕。
查狀態很便宜
--brief 一行就回答完。--wait 會一直等到真的有事(要求結束、電量偏低或降到你設的下限、Peaberry 被結束)才回一行;實測等一分鐘只花 0.03 秒 CPU。
電池見底前先收尾
使用電池、電量剩 20% 或只剩 20 分鐘時,來查狀態的 agent 會被告知:把工作做到一個段落、釋放要求,並告訴你做到哪裡。電量降到 10% 時(這個下限可以在「設定 › 一般」調整),Peaberry 會放開所有保持清醒的要求,連 agent 的也一起,讓 Mac 在電力耗盡前睡眠。來查狀態的 agent 會被告知立刻存檔並告訴你;接上電源後,這些要求會自己恢復作用。

設定你的 agent

  1. 打開「設定 › AI agent」,按「複製指示」。
  2. 貼到你的 AI agent 對話框。它會讀取 Peaberry 內附的技能檔案,以它自己的方式安裝,再告訴你裝在哪裡。任何讀得到檔案、能執行 shell 指令的 agent 都能用。
  3. 打開「允許其他程式用 peaberry:// 要求保持清醒」,要求才能持續到整份工作做完。

技能會請 agent 在每個工作階段一開始就提出一筆要求,綁在它自己的程序上:它想事情時 Mac 不會睡,工作階段一結束就放手。Peaberry 沒在執行時,agent 不會去動它。app 更新帶來新版技能時,agent 看到版本號比較大,就會自己換掉手上的那份。

$ /Applications/Peaberry.app/Contents/MacOS/Peaberry --brief
running=1 holding=1 scene=system holds=claude-1940,render:5380 agent-control=on warnings=none skill=5 age=3

或者,讓它自己看著工作

切到「工作中」情境,Peaberry 就會在你指定的程序執行時、或 CPU 忙碌時讓 Mac 保持清醒。工作停止後再等兩分鐘才允許睡眠,所以一個工作接下一個工作之間的空檔不算數。

比對你實際在跑的東西
程序名稱、argv[0]、腳本檔名、PID,也支援萬用字元。train.py 會比對到 python3 /work/train.py --epochs 10,python* 會比對到 python3.12。也可以直接從執行中的 app 挑選。
看得見比對到什麼
面板會列出每個符合的程序與它的 PID、CPU,規則有沒有在作用,一眼就知道,不必用猜的。
忙就是真的忙
CPU 規則用的是所有核心 15 秒的平均,與你設定的門檻比較。面板上有即時數值,方便你抓一個合理的門檻。
需要時才去看
只有在規則用得到時才會列舉程序。在「智能控制」下,Peaberry 每 3 秒讀一次系統 CPU,除此之外什麼都不做。

四個情境

一次只有一個情境在運作。在面板上點一下就切換,也可以複製任何一個,改成你自己的。

  • 智能控制

    預設

    睡眠照 macOS 原本的設定走。唯一會讓 Mac 保持清醒的,是 AI agent 的要求。

  • 工作中

    工作在跑時

    你指定的程序在執行、或 CPU 忙碌時保持清醒,結束後再多等兩分鐘。

  • 簡報中

    2 小時

    螢幕保持開啟,桌面藏在你的桌布、漸層或一個顏色後面。

  • 放著讓它跑

    8 小時

    下載、匯出、備份這類你會走開的工作。螢幕可以睡。

選單列豆子的四種狀態:允許系統睡眠、保持清醒中、收尾中、有 AI agent 在等你回答
怎麼看那顆豆子:允許系統睡眠、保持清醒中、收尾中,以及有 AI agent 在等你回答。

有電池的 Mac 上,情境可以設成只在接上電源時運作:使用電池時,這個情境從拔掉電源的那一刻起就不會讓 Mac 保持清醒,AI agent 的要求則照樣有效。留意工作的情境也可以在接上外接螢幕時保持清醒,適合接著外接螢幕放在桌上的 MacBook,螢幕蓋開著或闔上都算。Mac mini、Mac Studio 這類沒有內建螢幕的 Mac,這項永遠不會生效。

有時間限制的情境在結束前 5 分鐘會發一則通知,可以直接延長 30 分鐘。另有全域鍵盤快捷鍵可以開始與停止限時情境,出廠是關閉的,要你自己打開。

為什麼我的 Mac 還醒著?

或是,為什麼它睡著了?設定裡的「診斷」分頁兩個問題都回答,一個答案一行,不用自己去翻。

  • Peaberry 自己正在做什麼,是哪一條規則或哪個 agent 要求的。
  • 其他所有讓 Mac 保持清醒的 app,系統服務收成一列。
  • 有沒有排定的睡眠,是誰排的。
  • 目前的電源與螢幕,以及距離你上次碰鍵盤或滑鼠多久了。
  • 唯一誰都擋不住的情況:MacBook 闔上螢幕、又沒接外接螢幕。

沒有什麼需要你信任的

不連網路
這個 app 完全沒有網路存取權限。就算它想連線,macOS 的沙盒也會擋下來。
不收集任何資料
沒有分析、沒有帳號、沒有追蹤。App Store 的隱私權標籤是「未收集資料」。隱私權政策
沒有加購
沒有訂閱、沒有 App 內購買、沒有廣告。
不吃你的效能
豆子在動的時候,實測約占單一核心的 1.5%;在「智能控制」下閒置時約 0.1%。選單列動畫也可以在設定裡關掉。

截圖

系統需求

macOS
macOS 15 Sequoia 或以上。
Mac
Apple 晶片或 Intel,同一個通用 app。
語言
English、繁體中文、日本語、Español。
它在哪裡
在選單列上,沒有 Dock 圖示。第一次打開時會出現一個簡短的歡迎視窗;保留「登入時自動啟動」的勾選並按「完成」,就會加入登入項目。
輔助使用
VoiceOver 會念出選單列項目目前的狀態,例如「Peaberry,保持清醒中」。
限制
  • MacBook 闔上螢幕且沒接外接螢幕時仍會睡眠,任何 App Store 上的 app 都改不了這點。
  • Peaberry 擋的是閒置睡眠,擋不住別人排定的睡眠。
  • 其他使用者(例如 root)的程序只能用名稱比對。

支援

問題、錯誤回報與功能建議,請到 GitHub 上的 issue tracker。Peaberry 的原始碼沒有公開,那個 repository 只放這個網站與 issues。

請參閱隱私權政策。

即將在 Mac App Store 上架