Skip to content
Mac 怎么不休眠:让 Codex、Claude Code 和本地 AI Agent 持续运行

Mac 怎么不休眠:让 Codex、Claude Code 和本地 AI Agent 持续运行

更新于

Mac 怎么不休眠、MacBook 合盖不休眠、Codex 或 Claude Code 本地任务被休眠打断怎么办:这里给出 caffeinate、pmset 和 Macchiato 的选择方法,以及如何恢复正常休眠。

最快的答案取决于你说的“Mac 不休眠”到底是哪一种。

  • 如果 MacBook 盖子一直打开,只是想让下载、构建或测试继续跑,caffeinate 通常够用。
  • 如果你想合上 MacBook 盖子后任务还继续运行,就要处理“合盖休眠”,不能只靠普通防 idle sleep。
  • 如果你在跑 Codex、Claude Code、Cursor agent、本地脚本、模型任务或自动化测试,一个看得见的开关比记一串 pmset 命令更稳。

第三种场景建议用 Macchiato (opens in a new tab):一个轻量的 Mac 菜单栏工具,可以一键让 Mac 保持唤醒,包括合盖继续运行。

命令行方案本身不复杂,但很容易忘记收尾:

# Disable sleep, including lid-close sleep behavior.
sudo pmset -a disablesleep 1
 
# Restore normal macOS sleep behavior.
sudo pmset -a disablesleep 0

真正重要的是第二条命令。难点通常不是“怎么禁用休眠”,而是 AI agent、构建任务或自动化跑完以后,记得把 Mac 恢复成正常会休眠的状态。

按场景快速选择

你搜索的问题实际想解决的事推荐做法
“Mac 怎么不休眠”盖子打开时,让 Mac 暂时保持唤醒caffeinate 或 Macchiato
“Mac 合盖不休眠”合上 MacBook 后任务继续运行用 Macchiato 或 pmset disablesleep
“MacBook 合上盖子继续运行”带着电脑离开,但本地任务不能停用可见开关,任务结束后恢复休眠
“Codex 跑任务时 Mac 休眠怎么办”Codex 正在本地改代码、跑命令或测试离开前打开 Macchiato
“Claude Code 合盖还要继续跑”Claude Code 正在执行长任务打开防休眠,回来后关闭
“AI Agent 被 Mac 休眠打断”本地 shell、浏览器、dev server 或测试进程被暂停只在这个任务窗口内阻止休眠
“怎么恢复 Mac 正常休眠”之前禁用了休眠,现在 Mac 不睡了关闭 Macchiato,或运行 sudo pmset -a disablesleep 0

很多命令行答案只解决第一行。但现在更常见的问题发生在中间几行:你把一个本地 AI agent 放在那里跑,它还没结束,Mac 先睡了。

为什么先看场景,而不是先背命令

大多数人搜这个问题,不是想学习 macOS 电源管理。他们通常遇到的是一个很具体的中断:

  • Codex 还在修改仓库、运行测试或验证改动;
  • Claude Code 正在执行多步命令;
  • 本地 AI agent 还在读文件、控制浏览器或等待工具调用;
  • 数据导出、下载、视频转码、模型运行还没结束;
  • 你需要合上 MacBook,离开桌面一段时间。

如果答案只说“运行 caffeinate”,可能解决错问题。caffeinate 对普通的空闲休眠很有用,但合盖是另一个层级:macOS 会把合上盖子当成更强的休眠信号,用来保护电池和散热。

所以这篇文章先按使用场景讲,再讲命令。你需要的是让任务稳定完成,而不是把系统长期改成不休眠。

为什么 caffeinate 现在经常不够用

caffeinate 仍然是“Mac 怎么不休眠”的经典答案。只要 MacBook 盖子打开,它适合很多短时间任务。

比如,这条命令会让 Mac 在命令运行期间保持唤醒:

caffeinate

这条命令让 Mac 保持唤醒一小时:

caffeinate -t 3600

这条命令让 Mac 在构建完成前保持唤醒:

caffeinate npm run build

问题在于 2026 年的开发工作流已经变了。很多人不是在等一个下载完成,而是让 AI agent、本地 dev server、Notebook 任务、测试套件、视频导出或模型任务继续跑。

如果 MacBook 一直开盖放在桌上,caffeinate 通常可以接受。可一旦你想合盖、把电脑放到一边,或者带去另一个房间,同时还要让 agent 继续工作,就要考虑合盖休眠,而不是只考虑普通空闲休眠。

场景 1:开盖时让 Mac 暂时不休眠

这个场景适合你还在电脑附近,只是想等一个进程跑完。

常见例子包括:

  • 文件下载;
  • 包安装;
  • build 或 test 命令;
  • 短时间数据导出;
  • 开会时保持本地 dev server 运行。

这种情况下,用一个有时间限制的命令就够了:

caffeinate -t 3600

它会让 Mac 保持唤醒一小时。风险较低,因为你没有改变合盖行为,而且命令本身有自然的结束时间。

场景 2:MacBook 合盖不休眠,任务继续运行

这是很多简单答案会失效的场景。

MacBook 合盖后,macOS 默认会认为你明确想让它休眠。这对电池和散热是好事,但对正在跑长任务的本地环境不友好。

如果你确实需要合盖继续运行,可以用 Macchiato,或者直接用 pmset

sudo pmset -a disablesleep 1

任务结束后恢复正常行为:

sudo pmset -a disablesleep 0

如果你经常这么做,建议用一个可见的开关,而不是靠记忆。合盖不休眠不是一个应该长期打开的默认状态。

场景 3:让 Codex、Claude Code 或本地 Agent 跑完

AI coding agent 改变了“休眠”问题的性质,因为你停下打字以后,工作可能还在继续。Codex、Claude Code、Cursor agent、本地浏览器 agent 和 Notebook agent 可能还在读写文件、跑测试、调用工具或等待命令完成。

可以按这个流程做:

  1. 启动 agent 任务。
  2. 确认这个任务适合无人值守地继续运行。
  3. 打开 Macchiato。
  4. 合盖,或者离开电脑。
  5. 回来检查结果,然后关闭 Macchiato。

这比让每个人都背一条终端命令更适合日常使用,因为菜单栏状态能直接回答一个关键问题:我现在的 Mac 还会不会正常休眠?

真正容易出错的是忘记恢复休眠

控制休眠本身不难,人的记忆才是风险。

常见流程是这样的:

  1. 启动一个长任务。
  2. 用终端命令禁用休眠。
  3. 合盖离开。
  4. 过一阵回来。
  5. 忘记恢复正常休眠。

最后一步最麻烦。如果休眠一直被禁用,Mac 会在你以为它该休息的时候继续耗电。用电池时,这会带来不必要的电量消耗;放进包里时,还可能出现发热。长期看,这也不是一个好的使用习惯。

所以对经常跑 Codex、Claude Code 或本地 agent 的人来说,一键开关比裸命令更实用。

推荐:用 Macchiato 做可见开关

Macchiato (opens in a new tab) 是一个 macOS 菜单栏小工具,专门服务这个工作流:长任务需要继续时保持 Mac 唤醒,包括合盖;任务结束后,用同一个开关恢复正常休眠。

Macchiato 菜单栏防休眠开关

核心行为很简单:

Macchiato 状态会发生什么
开启Mac 保持唤醒,包括合盖时
关闭macOS 恢复正常合盖休眠行为

这就是它的价值。你不需要回想自己到底开了哪个 shell tab、是否还有 caffeinate 在跑,也不用猜 pmset 现在是不是还处在禁用休眠状态。

如何安装 Macchiato

  1. 打开 Macchiato GitHub 仓库 (opens in a new tab)
  2. 进入 Releases (opens in a new tab)
  3. 下载打包好的 Macchiato.dmg
  4. 打开 DMG,把应用安装到本地。
  5. 启动 Macchiato,通过菜单栏图标切换状态。

第一次使用时,macOS 可能会要求你在系统设置里批准 helper。这个授权是为了让 Macchiato 可以执行需要权限的休眠控制,而不是每次切换都让你输入管理员密码。

如何配合 Codex 或 Claude Code 使用

当 Codex、Claude Code 或其他本地 agent 需要在你离开后继续执行时,可以这样做:

  1. 启动 agent 任务、构建、模型运行或脚本。
  2. 从菜单栏打开 Macchiato。
  3. 需要移动或离开时再合上盖子。
  4. 回来后打开 Mac,检查任务结果。
  5. 任务不再需要继续跑时,关闭 Macchiato。

这特别适合 AI coding 工作流,因为很多工作发生在本机。如果 Mac 睡了,shell、本地服务器、浏览器自动化或测试进程都可能暂停,甚至直接失败。

对 Codex 用户来说,这适合它正在运行命令、修改文件或验证本地仓库改动的时候。对 Claude Code 用户来说,这适合它正在跑较长的 build、test 或自动化任务的时候。重点不是 Codex 或 Claude Code 有什么特殊的休眠设置,而是运行它们的 Mac 必须保持唤醒。

如果你想继续了解 AI coding 工作流,可以看 Codex 使用指南并行 Code Agent2026 年最佳 Vibe Coding 工具Codex vs Claude Code SkillsClaude Code Jupyter 数据科学工作流

Macchiato 底层做了什么

Macchiato 封装的是你本来要手动管理的系统行为。

最重要的恢复命令是:

sudo pmset -a disablesleep 0

这会告诉 macOS 重新允许正常休眠。禁用休眠时,对应命令是:

sudo pmset -a disablesleep 1

Macchiato 也会使用 macOS power assertions,让系统知道有一个应用正在有意保持机器唤醒。你可以用下面的命令检查这类 assertion:

pmset -g assertions | grep Macchiato

也可以查看当前是否处于 SleepDisabled 状态:

pmset -g live | grep SleepDisabled

大多数用户日常不需要这些命令。它们更适合用来调试、验证状态,或者在应用被强制退出后恢复现场。

什么时候直接用 pmset

只有在你明确想用终端控制,并且能记得恢复设置时,才建议直接用 pmset

离开前,长任务需要继续跑:

sudo pmset -a disablesleep 1

任务结束后:

sudo pmset -a disablesleep 0

风险在于这个状态可能比任务活得更久。如果你运行了禁用命令,却忘记关掉,Mac 后面会继续表现得“不太正常”。一次性、可控的场景可以这么做;反复跑 AI agent 的日常工作,还是可见的菜单栏开关更安全。

常见坑

坑 1:把“屏幕熄灭”和“系统休眠”混为一谈

屏幕变黑不等于 Mac 睡了。你的屏幕可以关闭,但进程仍然在跑;也可能屏幕早就黑了,系统随后进入休眠。对后台任务来说,真正要关心的是系统休眠。

坑 2:以为 caffeinate 一定能解决合盖休眠

caffeinate 适合阻止空闲休眠。合盖行为更严格,可能打断你最想保住的那类本地任务。

坑 3:忘记恢复命令

如果你直接用过 pmset,现在想恢复正常行为,运行:

sudo pmset -a disablesleep 0

坑 4:合盖后放进包里继续发热

如果 Mac 合盖后还在认真工作,它仍然会使用 CPU、网络、磁盘和电池。尤其在没接电源、放进内胆包或背包前,要注意温度和电量。

坑 5:所有任务都强行防休眠

不是每个任务都值得覆盖系统休眠。如果任务可以恢复、重跑,或者本来就适合放到云端,正常休眠反而是更好的默认选择。

排查流程

现象先检查什么处理方式
合盖后 Mac 还是睡了Macchiato 是否打开?helper 是否完成授权?打开 Macchiato,并在系统设置里批准 helper
Mac 现在不正常休眠休眠是否还被禁用?运行 sudo pmset -a disablesleep 0,或关闭 Macchiato
不确定 Macchiato 是否生效看菜单栏状态,或检查 pmset -g assertions先关再开,确认任务开始前处于正确状态
电池异常掉电可能仍在禁用休眠,或后台进程还在跑恢复休眠,并检查正在运行的任务
终端命令之前有用,现在没用shell 会话、权限或系统状态变了频繁切换时改用 Macchiato

安全检查清单

合盖前,如果 Mac 还要继续跑任务,先确认:

  • 长任务或高 CPU 任务尽量接电源。
  • 不要把正在高负载运行的 Mac 放进密闭包里。
  • 确认任务真的需要在本地继续运行。
  • 任务结束后关闭 Macchiato。
  • 状态不确定时,用 sudo pmset -a disablesleep 0 恢复正常休眠。

实用的平衡点是:任务确实需要继续时让 Mac 保持唤醒;其他时间,让 macOS 继续负责电池和散热保护。

常见问题

Mac 怎么不休眠?

如果是开盖状态下的临时任务,可以在终端运行 caffeinate。如果是 MacBook 合盖继续运行,比如 Codex、Claude Code、本地 AI agent 或长时间构建,建议用 Macchiato,或者运行 sudo pmset -a disablesleep 1,任务结束后再用 sudo pmset -a disablesleep 0 恢复正常休眠。

MacBook 合盖后怎么不休眠?

用 Macchiato 这类合盖防休眠工具,或者直接运行 sudo pmset -a disablesleep 1。记得结束后关闭开关,或运行 sudo pmset -a disablesleep 0

caffeinate 能让 Mac 合盖不休眠吗?

caffeinate 主要用于阻止系统在开盖、空闲状态下睡眠。合盖行为更严格,尤其在电池供电时,不建议只依赖 caffeinate。合盖继续运行更适合用 Macchiato 或 pmset 控制。

Codex 跑任务时,怎么避免 Mac 休眠打断?

从系统层面让 Mac 保持唤醒。启动 Codex 任务后打开 Macchiato,任务结束后关闭。Codex 本身不需要特殊的休眠命令,关键是运行 Codex 的 Mac 不能睡。

Claude Code 合上 MacBook 后怎么继续运行?

合盖前打开 Macchiato,或者运行 sudo pmset -a disablesleep 1。Claude Code 任务完成后,用 Macchiato 关闭防休眠,或运行 sudo pmset -a disablesleep 0

为什么 AI Agent 会在 Mac 休眠后停止?

大多数本地 agent 依赖本机 shell、文件系统、浏览器、本地服务器或测试进程。macOS 一旦休眠,这些资源可能暂停、断开或停止推进。

合盖不休眠会伤 Mac 吗?

短时间、可控地使用通常没问题,但不应该长期当作默认状态。长时间合盖运行会消耗电量并产生热量,尤其是在没接电源或放进包里的时候。

恢复 Mac 正常休眠的命令是什么?

运行 sudo pmset -a disablesleep 0。这是禁用休眠后恢复正常睡眠行为的命令。

为什么用 Macchiato,而不是每次敲终端命令?

Macchiato 提供一个看得见的一键开关。你更容易知道当前 Mac 是否允许正常休眠,也更不容易在 AI agent、构建或脚本结束后忘记恢复。

相关指南

📚