原生 Swift AppKit • 轻量无依赖 • MIT 授权

Mac 优雅防休眠

KeepAwake (CoffeeORTea) 是一个原生 macOS 菜单栏工具。它可以让你的 Mac 一直保持激活,不再因为休眠而中断。无论是后台的 AI agent 运行、大文件下载,还是远程控制场景,都能为你保驾护航。

macOS 13+ 最低系统要求
0 Dep 零第三方依赖
Universal Apple Silicon + Intel
macOS 菜单栏交互模拟体验
22:24
💤 睡眠
☕️ 咖啡
按系统设置休眠
👆 点击开关体验防休眠切换
设置时长 1 小时
息屏模式(省电)
☕️

KeepAwake 已激活

当前防休眠模式:1 小时 (caffeinate 活跃)

为什么需要 Blackout Mode?

传统的熄屏和电源休眠会导致 macOS 清除显示器图形拓扑结构,造成后台截图、AI Computer Use 代理或远程桌面无法正常工作。Blackout Mode 完美解决了这一难题。

传统熄屏 / 休眠
无信号 / 拓扑断开
  • 系统发送屏保/显示器关机命令,断开 DDC 连接
  • 后台截图捕获到黑色全空帧或引发系统渲染异常
  • Computer Use AI 代理由于无法读取 UI 元素而中断
KeepAwake Blackout Mode
⚡️ 物理暗黑 / GPU 视窗完整
图形拓扑在线 100%
  • 内置屏采用 DisplayServices,外接屏优先使用 DDC/CI 降亮
  • 保持 Mac 在系统的图形拓扑中,后台渲染与截图持续可用
  • 无需物理遮挡屏幕,节能护眼,完美契合 AI 挂机与自动化测试

体验屏幕唤醒防护与快速恢复机制

KeepAwake 挂载了独立 Watchdog 守护进程。支持通过鼠标晃动或连续按键 3 次迅速解锁回复原亮度。

轻量强悍,专为 macOS 打造

抛弃臃肿的前端框架与复杂的配置,用原生 AppKit 呈现极简高效的体验。

⚡️

系统级 Caffeinate 绑置

直接通过系统 caffeinate -w PID 断言防休眠,KeepAwake 退出后断言自动安全释放,绝不会遗留孤儿子进程。

⏱️

灵活预设定时器

提供 15 分钟、1 小时、3 小时、直到早上 8:00 以及永久保持唤醒等多种快捷时长,菜单栏直观倒计时展示。

🖥️

多显示器 DDC/CI 控制

内置屏采用 DisplayServices,外接显示器优先使用 DDC/CI VCP 指令调亮降至 0,不支持时自动 Gamma 降级。

🛡️

Watchdog 守护与恢复

Blackout 写入临时恢复文件并启动独立 Watchdog;即使主进程异常崩溃退出,守护进程也会安全将亮度复原。

🌐

原生双语自动跟随

无缝适配中英双语菜单与系统通知。自动跟随 macOS 系统首选语言设定,符合 Mac 审美标准。

🍏

Universal 通用架构

纯 Swift 单文件直接编译,原生支持 Apple Silicon (M1/M2/M3/M4) 与 Intel 芯片 Mac,零运行库负担。

明确的安全边界与规范

🔒

锁屏与密码保护

KeepAwake 仅响应防空闲休眠断言,不修改系统的屏保、密码解锁或合盖认证策略。不会绕过 macOS 的身份验证机制。

🧩

断言只针对自身

KeepAwake 只管理自身启动的 caffeinate 进程。关闭状态或退出时不会强行杀死其他开发工具或下载器启动的防休眠断言。

⚙️

私有 API 与打包说明

项目使用了 DisplayServices 与 Apple Silicon IOAVService DDC 接口,适合开源编译及自签名。公开发布时使用 Developer ID 即可。

一键 Clone、构建与安装

无需完整安装 Xcode,安装命令行工具后即可完成 Universal App 编译、安装与运行。

zsh — Terminal
$git clone https://github.com/KhalilHsu/CoffeeORTea.git
$cd CoffeeORTea
$./install.sh
$open /Applications/KeepAwake.app
AI Agent Prompt
🤖 Agent 提示词 (Direct Prompt for AI Agent):
"Please clone https://github.com/KhalilHsu/CoffeeORTea.git, cd into CoffeeORTea, run ./install.sh, and launch /Applications/KeepAwake.app."

常见问题解答

1. 为什么项目名称是 CoffeeORTea 但生成 App 是 KeepAwake? +

CoffeeORTea 是仓库全名与代号,灵感来自于用咖啡(☕️)或茶(🍵)提神保持清醒。KeepAwake 是用户系统菜单栏中实际显示的应用名称。

2. 所有外接显示器都能完美支持 DDC/CI 亮度调零吗? +

DDC/CI 的支持取决于显示器固件、HDMI/DP/Type-C 转接线以及 Apple Silicon 接口层。KeepAwake 提供了双重降级方案:若 DDC 无响应,会自动使用 macOS Gamma 曲线衰减机制将亮度屏幕调暗。

3. Blackout Mode 如何恢复显示? +

快速摇晃/移动鼠标,或者在 2 秒内连续按键盘任意键 3 次,或者通过系统菜单栏图标关闭开关键,都能触发亮度瞬间还原。

🌙

Blackout 屏幕暗黑演示

在实际硬件上,屏幕亮度调至 0%,但系统 GPU 图形帧缓冲区仍保持 100% 渲染运转。

按键盘任意键 3 次 大幅滑动鼠标 结束演示
KeepAwake Icon

关于 KeepAwake

KeepAwake 是一款 100% 原生 macOS 菜单栏应用,可在开启期间阻止系统和显示器空闲休眠,但不会绕过手动锁屏或身份验证。

包含息屏模式,可安全地将显示器亮度降至 0%,适用于自动化代理和省电场景。

功能特色:
  • • DDC/CI 外接显示器亮度控制
  • • 不支持的显示器使用 Gamma 降级方案
  • • 通过鼠标/键盘安全自动恢复
使用 Swift 和 AppKit 构建。
版本 1.2.0