凌晨三点,你让Claude Code重构整个模块,合上MacBook去冲杯咖啡。回来一看——屏幕黑了,任务中断,进度丢失。这种“合盖即断”的挫败感,每个用AI写代码的开发者都懂。一款叫Adrafinil的小工具,正在用一种极其聪明的方式解决这个问题:它不搞“永久不休眠”,而是只在AI干活时,偷偷按住Mac的睡眠开关。
不只是防休眠,是一场精准的唤醒博弈
9个目标,一个开关
Adrafinil的胃口很小,小到只认得9款应用。Claude Code、Codex、Cursor、Gemini CLI、Aider、Hermes、OpenCode、Cline、Pi——这些当前最火的AI编程助手,是它唯一的“唤醒”触发器。它不像Caffeine或Amphetamine那样粗暴地锁死系统状态,而是像个守卫,只对特定身份的人开门。你的Word文档、浏览器网页,关上盖子照样睡。只有当你明确告诉AI“开始干活”(也就是这些agent拥有活跃会话时),Mac的睡眠功能才会被临时“接管”。
钩子与50毫秒的呼吸
怎么做到的?秘密在于它深度绑定了这些AI工具的“钩子系统”。每个受支持的agent在启动和结束任务时,都会向系统发出一个微小的信号。Adrafinil就像一个时刻监听的哨兵,通过CLI调用接住这些信号。整个“检测到agent会话→发送阻止睡眠指令”的往返延迟,被压到了50毫秒以内。这个速度,比人类眨眼还快,系统根本来不及做出睡眠的动作。对于需要连续运行数小时的代码生成或调试任务,这种无缝的守护至关重要。
合盖背后的硬核技术
引用计数:多任务的精准调度
更巧妙的是它的调度逻辑。如果你同时开着Cursor改UI,又让Aider处理后端逻辑,Adrafinil不会发出混乱的指令。它为每个活跃的agent会话维护一个独立的“引用计数”。可以理解为它在心里默数:“1号Agent(Cursor)在干活,2号Agent(Aider)也在干活……两个都不能睡。”只有当所有agent的活跃会话都结束,计数归零,它才会松开按住睡眠开关的手。这避免了单个任务结束就导致整个系统立刻进入休眠的尴尬。
温度阈值:最后的安全网
让机器持续高负荷运转,发热是必然的。Adrafinil为此设计了一套“热切出”机制。它会持续监控系统温度,一旦触及开发者设定的阈值(比如CPU温度持续高于95℃),无论AI任务是否结束,它都会强制“释放”对睡眠功能的压制,让系统进入正常的散热休眠流程。这是一个优雅的妥协:宁可中断任务,也不能让硬件过热报废。此外,“空闲释放”和“进程嗅探”机制提供了更多保障,防止因agent卡死或崩溃而造成系统无法休眠。
开发者的“隐形外挂”与它的真实边界
谁在真正用它?
Adrafinil瞄准的是一群特定的“AI原生开发者”。他们不是偶尔用用Copilot补全代码,而是把Claude Code、Gemini CLI当作核心生产力工具,动辄下发耗时数十分钟甚至数小时的复杂重构、架构设计或大规模代码审查任务。在机场候机室、咖啡馆、甚至是睡前,他们习惯合上盖子,让AI在后台默默工作。对他们来说,Adrafinil解决的不是一个功能问题,而是一个工作流断裂的问题。它提供的,是一种“提交任务即可离开”的确定性和自由。
开源的透明与苛刻的门槛
这个工具以开源形式发布,意味着它的所有逻辑——如何监听钩子、如何计数、如何判断温度——都暴露在阳光下,经得起任何开发者审视。但它对运行环境要求不低:需要最新的macOS Tahoe 26.4,并且必须用Xcode 26以上版本编译。最后,它以经过苹果签名公证的磁盘映像形式分发,这虽然增加了一道安全门槛,也劝退了一部分不愿折腾系统环境的用户。它清楚自己的边界:一个为顶尖AI工作流服务的、高度特化的实用工具,而非普适的系统增强软件。
Adrafinil的出现,折射出AI编程工具链的一个有趣切片。当AI能承担的任务越来越重、时间越来越长,支撑它运行的底层基础设施(比如操作系统电源管理)就变得愈发关键。它用不足50毫秒的响应和精巧的引用计数,为这个新兴的工作场景打上了一个小小的、却异常坚实的补丁。对于那些凌晨三点还在和AI并肩作战的开发者而言,它或许就是那杯咖啡最需要的、安静的搭档。

