一句话说清楚:这组软件是干什么的 #
Mac 默认会在闲置一段时间后自动睡眠、关屏幕或启动屏保。Caffeine 和 Cocainate 都是“让 Mac 别睡”的小工具,但它们让你“发出指令”的方式完全不同:一个是用鼠标点一下,一个是在终端里敲一行命令。
简短答案:如果你想要“点一下咖啡杯图标,Mac 就醒着”,选 Caffeine;如果你本来就常开终端、想把“防睡眠”写进脚本或绑定到某个任务上,选 Cocainate。 本次只比较 macOS 上的表现,Cocainate 对 Windows 的支持不纳入同平台对比。
两款软件分别解决什么问题 #
Caffeine:把“别睡”变成一个可以点击的开关 #
Caffeine 的逻辑是把系统里原本藏在“节能”设置里的防睡眠行为,变成一个菜单栏上的图标。点击咖啡杯,图标变成“满杯”,Mac 就不会自动睡眠、屏幕不会变暗、屏保不会启动;再点一下,恢复默认。它不要求你记住任何命令,也不要求你打开终端。你只需要知道“满杯 = 醒着,空杯 = 正常”。
它解决的是临时性的、一次性的“别让屏幕黑掉”需求:演示幻灯片时、看视频时、或者只是想让屏幕多亮一会儿时,点一下就够了。
Cocainate:把“别睡”变成一行可以放进脚本的命令 #
Cocainate 是一个命令行工具,名字和功能都受 macOS 自带的 caffeinate 命令启发,但它是用 Go 语言独立实现的,并且在 macOS 上通过 Homebrew 安装。它的行为是:在终端里运行 cocainate,Mac 就保持不睡眠,直到你按 Ctrl+C 停止;你也可以用 -d 指定一个时长,比如 cocainate -d 2h 让它只工作两小时。更关键的是 -p 参数:你可以把一个进程 ID 交给它,等那个进程结束后,Cocainate 自动停止防睡眠。
它解决的是需要和“某个任务”绑定的防睡眠需求:跑一个长时间编译、下载一个大文件、或者执行一个不知道要多久的脚本,你不需要自己盯着时间关掉工具,任务结束它自己会停。
功能够不够? #
对 macOS 上“阻止睡眠”这件事,两者的核心能力都够。 它们都能阻止系统进入空闲睡眠,也都能阻止屏幕关闭。Caffeine 的“够”体现在覆盖面:它同时阻止睡眠、屏幕变暗和屏保启动,符合“我不想让屏幕黑掉”这个最直觉的期待。
Cocainate 的“够”体现在可绑定:它不要求你手动记得关掉,-d 可以定时,-p 可以绑定进程,任务结束自动释放。如果你需要的正是这种“和任务同生共死”的行为,它在功能上是更精确的。
但两者有一个共同的边界需要说清楚:合上 MacBook 的盖子,系统会强制睡眠,这类防睡眠工具通常无法阻止合盖睡眠。这是 macOS 的电源行为,不是两款软件谁做得更好或更差的问题。
学起来难不难? #
Caffeine 几乎没有学习成本。 安装后菜单栏出现一个咖啡杯,左键或右键切换状态,就结束了。你不需要理解“空闲睡眠”“电源断言”这些概念,也不需要记住任何参数。
Cocainate 的学习成本集中在“你愿不愿意用终端”这一步。 如果你从来没有打开过“终端”应用,第一道门槛是安装:它不是双击 .app 拖进“应用程序”文件夹,而是要通过 Homebrew 执行一条安装命令。第二道门槛是使用:你需要知道在终端里输入 cocainate,需要停止时按 Control+C,想定时就加 -d 2h。如果你已经习惯在终端里工作,这些不算负担;如果你完全不用终端,这个门槛是真实存在的。
使用成本高不高? #
两者的货币成本都是零。 Caffeine 是免费开源软件,Cocainate 同样开源免费。它们都没有付费版、订阅或功能锁。
区别在隐性成本。Caffeine 的资源占用官方数据是磁盘约 8 MB、内存不到 20 MB,常驻菜单栏,几乎感觉不到它的存在。Cocainate 作为一个命令行进程,运行时占用同样很轻,但它不是一个常驻菜单栏的工具:你需要在需要的时候主动运行它,或者把它写进脚本。“需要记得去运行它”本身就是一种轻量的注意力成本,如果你不习惯用终端,这个成本会持续存在。
数据是否好迁移? #
这类工具几乎没有“数据”需要迁移。 两者都不需要账号,不上传任何使用数据,配置极少。Caffeine 没有需要备份的用户词库或历史记录;Cocainate 的行为完全由你运行时给的参数决定,参数写在你的脚本或 shell 历史里,换一台 Mac 重新安装即可。迁移成本可以忽略不计,这是防睡眠工具这类单功能软件的共同优点。
哪些人不适合? #
不适合选 Caffeine 的人:需要在任务结束后自动停止防睡眠、不想手动点开关的人;希望把“保持唤醒”写进自动化脚本或 CI 流程的人;以及完全不用图形界面、只通过 SSH 或终端操作 Mac 的人(菜单栏图标对他们没有意义)。
不适合选 Cocainate 的人:从来不打开终端的人;希望“安装完就在菜单栏看到一个图标、点一下就行”的人;以及需要同时阻止屏幕变暗和屏保的人——Cocainate 的核心行为是保持屏幕唤醒,但如果你期待的是一个像 Caffeine 那样“点一下就全包”的图形开关,它的命令行形态不会提供那种体验。
macOS 同平台对照 #
| 维度 | Caffeine | Cocainate |
|---|---|---|
| 形态 | 菜单栏图形工具 | 命令行工具(CLI) |
| 触发方式 | 点击咖啡杯图标切换 | 在终端运行 cocainate |
| 停止方式 | 再点一下图标 | 按 Control+C,或 -d 时间到 |
| 定时能力 | 有,菜单中可选时长 | 有,-d 2h 等 |
| 绑定进程自动停止 | 不提供 | 提供,-p <PID> |
| 合盖后阻止睡眠 | 通常不生效 | 通常不生效 |
| 安装方式 | 常规 .app 安装 | Homebrew:brew install AppleGamer22/tap/cocainate |
| 资源占用 | 约 8 MB 磁盘 / 不到 20 MB 内存 | 轻量,运行时占用很小 |
| 费用 | 免费开源 | 免费开源 |
按用户画像给选择路径 #
画像 A:你只是偶尔需要屏幕亮着——演示、看视频、临时下载。 选 Caffeine。点一下咖啡杯,用完再点一下,不需要打开终端,不需要记参数。
画像 B:你经常跑长时间命令,并且希望防睡眠在命令结束后自动停止。 选 Cocainate。-p 绑定进程 ID 的用法比“手动点开关”更不容易忘记关,也更适合写进脚本。
画像 C:你完全不用终端,也不打算学。 选 Caffeine。Cocainate 的安装和使用都在终端里,对这个画像来说门槛不低,没有必要为了“轻量”付出学习成本。
画像 D:你同时用 macOS 和 Windows,希望两边的防睡眠工具尽量一致。 Cocainate 是跨平台的,但本次只比较 macOS;它在 Windows 上的可用性不构成 macOS 场景下的选择理由。在 macOS 这一侧,Cocainate 的价值仍然是命令行和可绑定,而不是“跨平台”本身。
先试用再决定 #
两者都免费,不存在“试用期”或“到期”问题。建议的做法是:先装 Caffeine,用几天。 如果你发现“每次都要手动点一下”并不构成负担,它就已经解决了问题;如果你开始觉得“我跑完这个任务还要记得去点一下关掉”很麻烦,或者你本来就在终端里工作,再花几分钟用 Homebrew 装上 Cocainate,试试 cocainate -p <你的进程ID> 这种用法。Cocainate 的卸载同样是 brew uninstall 一条命令,试错成本很低。
| 软件名称 | 适用平台 | 下载地址 |
|---|---|---|
| Caffeine | macOS | 去下载 |
| Cocainate | Windows、macOS | 去下载 |
