用 Claude Code 跑部署,然后每隔五分钟切回来看「好了没?」——这个画面是不是很熟悉?其实你可以叫 Claude 自己去盯,好了再通知你。一行指令,部署、build、PR 什么都能盯,你就放着做别的事就好。
一、基本用法:/loop 指令
最简单的方式就是用 /loop 指令。直接在 Claude Code 里面输入:
/loop 5m 帮我看一下部署好了没,好了跟我讲结果一行搞定。/loop 是排程指令,5m 就是每 5 分钟跑一次,后面那段就是你要 Claude 做的事情。
Claude 收到之后会帮你把这个转成一个 cron 排程,然后跟你确认「我每 5 分钟会去检查一次部署状态」。设好之后你就不用管了,Claude 会自己在背景跑。
二、时间间隔语法
/loop 的时间格式蛮弹性的,有几种写法。
写法一:时间放前面
/loop 30m 帮我看 build 跑完了没每 30 分钟检查一次 build。
写法二:时间放后面
/loop 帮我看 build 跑完了没 每2小时一样的意思,只是时间写在后面。
写法三:不写时间
/loop 帮我看 build 跑完了没不写时间的话,默认就是每 10 分钟跑一次。
| 单位 | 缩写 | 说明 |
|---|---|---|
| 秒 | s | 最小单位是 1 分钟,写 30s 会自动进位到 1m |
| 分钟 | m | 最常用的单位 |
| 小时 | h | 适合长时间监控 |
| 天 | d | 每日定时任务 |
小提示:像 7m 或 90m 这种不是整除的数字,Claude 会自动调整到最接近的干净间隔,然后告诉你它选了什么。不用担心写错。
三、进阶:用 /loop 跑其他指令
你可以用 /loop 去跑其他的指令或 skill:
/loop 20m 跑 npm test 然后把结果整理给我每 20 分钟,Claude 就会自动跑一次测试,跑完把结果整理好等你回来看。也可以搭配自定义的 slash command,比如你有一个 /review-pr 的 skill,就写 /loop 20m /review-pr 1234,每隔一段时间自动 review 一次 PR,有新的 commit 推上来它就会自动再看一次。
四、一次性提醒
除了重复跑的循环之外,Claude Code 还可以设一次性的提醒。不用 /loop,直接用自然语言讲就好:
下午3点提醒我 push release branch或者:
45分钟后跑 npm test 看有没有过用讲话的方式跟 Claude 说「几点几分提醒我做什么」或「几分钟后跑什么指令」,Claude 会自己算好时间设排程,时间到了做完就自动删掉了。
小技巧:指令要讲清楚。像「帮我看整合测试过了没」这种太模糊,Claude 会反问你。直接讲「跑 npm test」或「去看 GitHub Actions 的状态」,它就不会啰嗦了。
五、管理排程任务
设了好几个排程,怎么管理?一样用自然语言就好。想看现在有哪些排程在跑:
我现在有哪些排程任务?Claude 会把所有排程任务列出来,每个任务都有一个 8 码的 ID。要取消某个任务也很直觉:
取消那个部署检查的排程直接讲你要取消哪个就好,Claude 会帮你找到对的那个然后删掉。
底层其实是三个工具在做这些事:
| 工具 | 功能 | 参数 |
|---|---|---|
| CronCreate | 建立新的排程 | cron 表达式、要跑的 prompt、是否重复执行 |
| CronList | 列出所有排程任务 | 无 |
| CronDelete | 用 ID 取消一个任务 | 任务 ID |
你不需要直接调用这些工具,用自然语言讲就好。一个 session 最多可以同时跑 50 个排程任务。
六、排程怎么运作的
排程任务是在 Claude Code 闲着的时候才会触发的。如果 Claude 正在忙着回答你的问题或跑一个任务,排程到了它不会打断你,它会等 Claude 忙完才跑。
所有时间都是用你本地的时区。你在台湾,设 9 点就是早上 9 点台湾时间,不是 UTC。
七、Jitter 机制
你设了一个「每小时整点」执行的任务,但它不一定会刚好在整点跑。Claude 会加一个小小的随机偏移,避免所有人的排程都在同一个时间点打 API。
| 任务类型 | 偏移规则 | 范例 |
|---|---|---|
| 重复执行 | 最多延迟间隔时间的 10%,上限 15 分钟 | 每小时的任务,可能在 :00 到 :06 之间跑 |
| 一次性 | 如果设在整点或半点,最多提早 90 秒触发 | 设 3:00 可能 2:58:30 就跑了 |
这个偏移是根据任务 ID 算出来的,所以同一个任务每次偏移都一样,不是真的随机。
小技巧:如果你需要精确的时间,不要设在整点或半点。比方说你想要 9 点跑,就设 9:03,这样 jitter 就不会影响到你了。
八、3 天自动过期
重复执行的排程,3 天之后会自动过期。Claude 会让它跑最后一次,然后就自动删掉了。这是为了防止你忘记取消一个 loop,结果它在那边跑了一个礼拜都没人管。
如果你的任务需要跑超过 3 天,有两个选择:
- 在过期之前取消掉然后重新建一个
- 用 Claude Code 桌面版的排程功能,那个是持久性的,不会过期
九、Cron 表达式速查
如果你想要更精确地控制排程时间,可以直接用 cron 表达式。格式是五个字段:分钟、小时、日、月、星期几。
| 表达式 | 含义 |
|---|---|
*/5 * * * * | 每 5 分钟 |
0 * * * * | 每小时整点 |
0 9 * * * | 每天早上 9 点 |
0 9 * * 1-5 | 周一到周五早上 9 点 |
30 14 15 3 * | 3 月 15 号下午 2 点半 |
星期几的部分,0 跟 7 都是星期天,1 到 6 是星期一到星期六。大部分时候用 /loop 加自然语言就够了,但如果你要「每天早上 9 点只有工作天」这种比较复杂的排程,知道 cron 怎么写就派上用场了。
十、关闭排程功能与限制
如果你完全不想用排程功能,可以设一个环境变量把它关掉:
export CLAUDE_CODE_DISABLE_CRON=1设了之后 /loop 跟 cron 工具都会消失,已经排好的任务也会停掉。
几个限制要知道:
- 排程任务只在 Claude Code 跑着的时候有效。关掉 terminal,全部排程就没了
- 如果排程时间到了但 Claude 正在忙,它不会补跑错过的次数,等 Claude 闲了只会跑一次
- 重启 Claude Code 会清掉所有排程
如果你需要不管 terminal 开不开都要跑的自动化,就用 GitHub Actions 搭配 schedule 触发器,或者用桌面版的排程功能。
十一、总结
| 功能 | 用法 | 说明 |
|---|---|---|
| 重复排程 | /loop 5m 你要做的事 | 每隔一段时间自动执行 |
| 一次性提醒 | 自然语言:「几分钟后帮我做什么」 | 时间到了执行一次就删除 |
| 查看排程 | 「我有哪些排程任务?」 | 列出所有任务和 ID |
| 取消排程 | 「取消那个 XX 的排程」 | 用描述或 ID 取消 |
这个功能最大的好处就是,你不用再当人肉监控了。部署丢给 Claude 盯、build 丢给 Claude 盯、PR 也丢给 Claude 盯,你就专心写代码就好。记得排程 3 天会过期、有 jitter 偏移、只在 session 内有效。