Claude Code 排程任务:/loop 指令自动监控部署、Build、PR

用 Claude Code 跑部署,然后每隔五分钟切回来看「好了没?」——这个画面是不是很熟悉?其实你可以叫 Claude 自己去盯,好了再通知你。一行指令,部署、build、PR 什么都能盯,你就放着做别的事就好。

一、基本用法:/loop 指令

最简单的方式就是用 /loop 指令。直接在 Claude Code 里面输入:

Claude Code
/loop 5m 帮我看一下部署好了没,好了跟我讲结果

一行搞定。/loop 是排程指令,5m 就是每 5 分钟跑一次,后面那段就是你要 Claude 做的事情。

Claude 收到之后会帮你把这个转成一个 cron 排程,然后跟你确认「我每 5 分钟会去检查一次部署状态」。设好之后你就不用管了,Claude 会自己在背景跑。

二、时间间隔语法

/loop 的时间格式蛮弹性的,有几种写法。

写法一:时间放前面

Claude Code
/loop 30m 帮我看 build 跑完了没

每 30 分钟检查一次 build。

写法二:时间放后面

Claude Code
/loop 帮我看 build 跑完了没 每2小时

一样的意思,只是时间写在后面。

写法三:不写时间

Claude Code
/loop 帮我看 build 跑完了没

不写时间的话,默认就是每 10 分钟跑一次。

单位 缩写 说明
s 最小单位是 1 分钟,写 30s 会自动进位到 1m
分钟 m 最常用的单位
小时 h 适合长时间监控
d 每日定时任务

小提示:像 7m 或 90m 这种不是整除的数字,Claude 会自动调整到最接近的干净间隔,然后告诉你它选了什么。不用担心写错。

三、进阶:用 /loop 跑其他指令

你可以用 /loop 去跑其他的指令或 skill:

Claude Code
/loop 20m 跑 npm test 然后把结果整理给我

每 20 分钟,Claude 就会自动跑一次测试,跑完把结果整理好等你回来看。也可以搭配自定义的 slash command,比如你有一个 /review-pr 的 skill,就写 /loop 20m /review-pr 1234,每隔一段时间自动 review 一次 PR,有新的 commit 推上来它就会自动再看一次。

四、一次性提醒

除了重复跑的循环之外,Claude Code 还可以设一次性的提醒。不用 /loop,直接用自然语言讲就好:

Claude Code
下午3点提醒我 push release branch

或者:

Claude Code
45分钟后跑 npm test 看有没有过

用讲话的方式跟 Claude 说「几点几分提醒我做什么」或「几分钟后跑什么指令」,Claude 会自己算好时间设排程,时间到了做完就自动删掉了。

小技巧:指令要讲清楚。像「帮我看整合测试过了没」这种太模糊,Claude 会反问你。直接讲「跑 npm test」或「去看 GitHub Actions 的状态」,它就不会啰嗦了。

五、管理排程任务

设了好几个排程,怎么管理?一样用自然语言就好。想看现在有哪些排程在跑:

Claude Code
我现在有哪些排程任务?

Claude 会把所有排程任务列出来,每个任务都有一个 8 码的 ID。要取消某个任务也很直觉:

Claude Code
取消那个部署检查的排程

直接讲你要取消哪个就好,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 怎么写就派上用场了。

十、关闭排程功能与限制

如果你完全不想用排程功能,可以设一个环境变量把它关掉:

Bash
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 内有效。