Claude Code 的 /loop 让定时任务回归人话
Cron 表达式
*/5 * * * *时代该翻篇了。
一个痛点
你一定写过这种东西:
*/5 * * * * npm run build 2>&1 | tee build.log && echo "OK" || echo "FAIL" | mail -s "Build Failed" you@example.com
为了实现"每 5 分钟跑一次构建,失败了发通知",你得:
- 写 Cron 表达式(五个星号你真的记得哪个是月份哪个是星期几吗?)
- 手动解析退出码
- 自己配日志和邮件通知
- 每次改任务还得
crontab -e
Cron 只负责执行,不负责理解结果。 它不知道构建失败是因为类型错误还是依赖缺失,它只会甩给你一个退出码。
/loop 是什么
Claude Code 的内置定时任务计划。
你给一段自然语言描述 + 一个时间间隔,Claude 自动转成后台调度,每隔指定时间执行一次,并把结果汇报给你。
就这么简单:
/loop 2m 跑构建,告诉我有没有报错
Claude 会回复:
✅ Scheduled loop job created
Job ID: 0d7f7026
Cron: */2 * * * *
Every: 2 minutes
Task: Run npm run build and report pass/fail
Expires: 3 days from now
你不需要写 Cron 表达式,不需要手动解析结果,不需要配通知。说人话就行。
和传统 Cron 的本质区别
| 传统 Cron | Claude Code /loop |
|---|---|
*/2 * * * * npm run build | /loop 2m 跑构建,告诉我有没有报错 |
| 手动解析退出码 | Claude 自动解读结果 |
| 手动写日志 | Claude 自动汇报 |
| 手动配邮件/通知 | Claude 主动告警 |
改任务要 crontab -e | 直接说话,改就行 |
| 需要会 Cron 语法 | 你只需要会说话 |
| 你需要盯着日志 | Claude 主动告诉你发生了什么 |
一句话总结:Cron 只负责执行,Claude 负责理解结果并告诉你发生了什么。
内部运行机制
你的 Claude Code 会话
│
├── 前台:你正常对话
│
└── 后台调度器(每秒检查一次)
│
├── 任务未到时间 → 继续等待
│
└── 任务到时间了
├── Claude 正在响应中?→ 等当前轮次结束
└── Claude 空闲?→ 立即执行任务,汇报结果
/loop 是会话级的,不是系统级的。它跑在你的 Claude Code 会话里,不需要额外的守护进程。
典型使用场景
监控构建状态
/loop 2m 跑 npm run build,失败了告诉我报错内容
开发过程中,你改了代码继续写别的,Claude 每隔 2 分钟帮你跑一次构建,有问题立刻汇报。
监控 API 健康状态
/loop 5m 检查 https://api.example.com/health,看返回状态码和响应时间
部署进度轮询
/loop 1m 检查 kubectl get pods 的状态,看部署有没有完成
代码质量守卫
/loop 10m 跑 eslint,有新报错就告诉我
Git 状态监控
/loop 3m 检查当前分支有没有新的未提交改动
什么时候不该用 /loop
| 适合用 | 不适合用 |
|---|---|
| 构建/测试状态监控 | 需要跨会话持续运行的任务 |
| 部署进度轮询 | 持续时间超过 3 天的监控 |
| PR 检查自动化 | 需要精确到秒级的任务触发 |
| 开发期间的定时提醒 | 需要机器重启后继续跑的任务 |
| 多任务并行监控 | 需要持久化的生产级调度 |
/loop 是开发期间的临时调度器,不是替代 Kubernetes CronJob 的生产工具。它的生命周期绑定在会话上,会话关了任务就没了。超过 3 天的监控、需要机器重启后继续跑的任务,还是老老实实用 Cron 或任务调度平台。
核心收获
/loop 解决的问题很简单:
开发过程中大量「等待 → 检查 → 等待」的重复操作,不应该消耗你的注意力。
以前你做的事:切到终端 → 跑命令 → 看结果 → 没好 → 继续等 → 再跑 → 再看……
现在你做的事:说一句话,然后专注写代码。Claude 帮你盯着,有情况它会主动说。
这不是一个小功能,这是开发体验的升级——从"你来检查"变成"它来汇报"。
本内容由 Coze AI 生成,请遵循相关法律法规及《人工智能生成合成内容标识办法》使用与传播。