让 Claude Code 在 Mac 上后台处理任务
文章使用 Claude Code 非交互模式、Shell 文件队列和 macOS 保活机制搭建后台任务进程。示例先验证登录复用,再从收件目录读取提示词并将结果写入完成目录。
原文暂未完整获取,基于公开信息的快读
Claude Code 的非交互模式,被 dev.to 上一篇文章用来搭建 Mac 后台任务进程:Shell 脚本读取文件中的提示词,调用模型,再把结果写回目录。作者还用 macOS 的 launchd 管理进程。骨架不复杂,但无人值守能否跑稳,取决于登录状态、额度和机器是否休眠。
目前能确认什么
入口是 claude -p "prompt",执行后输出答案并退出。作者先在正常终端运行 claude auth login,再用简单提示词验证登录复用。后台进程无法回答登录提示,这一步必须先打通。
示例脚本轮询 ~/worker/inbox 中的 .txt 文件,将结果写入 ~/worker/done。调用成功后删除任务文件,失败则保留,等待下一轮重试,并记录日志。遇到包含 limit 的错误会暂停后再试。
launchd 是 macOS 的服务管理器,可以在用户登录时启动脚本,并在进程退出后重新拉起。它的环境变量可能与终端不同,因此需要显式配置 PATH。它也不能替代防休眠设置。
作者报告,这套运行方式复用了订阅登录,不需要 API key;后台任务与交互使用共享额度,登录过期仍需人工处理。
我的判断
这是一套可以起步的任务骨架,离可靠的无人值守服务还有距离。
对程序员而言,它适合尝试可重复执行的文本任务。代码只在调用成功后删除文件,却没有展示重试上限、任务超时或并发领取机制;失败任务会反复进入执行流程。如果任务会修改文件或触发外部操作,还需要防止重复执行产生副作用。
作者也遇到过任务自行追加后续任务、持续消耗额度的问题。限制任务自我派生,比单纯增加重试更关键。
另外,终端测试成功只能验证当下的登录状态,不能保证长期后台可用。订阅运行的适用规则、具体额度和认证有效期,现有材料没有交代清楚,需要官方文档确认,不能把作者的运行经验当成服务承诺。