mcpField
A
anti-sleep

anti-sleep

github.com/davidondrej生产力4.2k224 次安装今天更新
代码仓库

关于 anti-sleep

anti-sleep 是一项技能,通过附带的启动脚本和 macOS 内置工具管理定时防睡眠。它指导用户检查、启动、验证和停止一次性 LaunchAgent 会话。

主要功能

  1. 01定时防睡眠会话
  2. 02屏幕与闲置睡眠标志选项
  3. 03状态、启动、验证和停止命令
  4. 04支持指定 PID 的会话
  5. 05LaunchAgent 跟踪与备用方案指引

适用场景

  1. 01在定时任务期间保持 Mac 唤醒
  2. 02阻止系统闲置睡眠,同时允许屏幕变暗
  3. 03工作期间保持屏幕开启
  4. 04检查防睡眠会话是否正在运行

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davidondrej/skills --skill anti-sleep

安装后在 Claude Code 中输入/anti-sleep确认已加载。

附带文件agents/openai.yamlscripts/anti-sleep.sh

详细介绍

防止休眠(macOS caffeinate)

使用此技能目录中附带的启动器。它仅使用 macOS 内置工具创建一个一次性用户 LaunchAgent。

必需工作流

切勿使用原始 &、nohup、disown 或 launchctl submit 启动 caffeinate。临时执行 shell 可能会终止其子进程,而 launchctl submit 可能会重启定时任务。

根据此 SKILL.md 的位置解析 scripts/anti-sleep.sh;切勿假设用户当前所在的目录。运行:

  1. 检查当前状态:
scripts/anti-sleep.sh status
  1. 如果 status 报告存在活动会话,且用户请求了新的时长,请自动停止旧会话。切勿请求确认。
scripts/anti-sleep.sh stop
  1. 按请求的时长启动新计时器:
scripts/anti-sleep.sh start 10800    # 3 hours

针对特定进程,请使用 start-pid。如果另一个会话处于活动状态,同样应用自动替换规则。

scripts/anti-sleep.sh start-pid <PID>
  1. 在启动命令返回后,另行调用一次工具/shell进行验证:
scripts/anti-sleep.sh verify

只有在验证结果返回 STATUS=running 和 ASSERTIONS=active 时,才报告成功。确认 PID、标志和实际到期时间。如果验证失败,请运行 stop,且不要声称 Mac 已受到保护。

断言标志

默认值为 -d -i:保持显示器开启,并防止系统因空闲而休眠。需要时,可在时长或 PID 后传入明确标志:

标志效果
-i防止系统因空闲而休眠;显示器可能变暗
-d防止显示器休眠
-d -i -s接入交流电源时,也防止系统休眠

这些选项都无法阻止合上盖子时休眠。对于必须在笔记本电脑合盖后继续运行的 Agent,请参阅笔记本电脑合盖时保持 Claude Code 运行。

示例:

scripts/anti-sleep.sh start 10800 -i

状态和停止

scripts/anti-sleep.sh status
scripts/anti-sleep.sh stop

启动器会在 ~/Library/Caches 下跟踪一个确切的 LaunchAgent 标签、PID、开始时间和到期时间。它绝不会使用范围过广的 pkill。

后备方案

如果 launchctl bootstrap 失败,请使用可见且持久的终端或 cmux 窗格。与 cmux 交互前,请先阅读 cmux 技能。如果没有可用的持久界面,请告知用户,而不要启动不可靠的后台任务。

caffeinate 无法让键盘背光保持亮起。此设置需要手动调整:系统设置 → 键盘 →“闲置后关闭键盘背光”→ 永不。

评论

支持 Markdown