首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Claude Code 番外篇:内置 `/loop` 全解,cron 调度 + 自然语言,自动监控只需一行

Claude Code 番外篇:内置 `/loop` 全解,cron 调度 + 自然语言,自动监控只需一行

作者头像
前端达人
发布2026-04-02 20:37:24
发布2026-04-02 20:37:24
6500
举报
文章被收录于专栏:前端达人前端达人

本文适合:使用 Claude Code 做日常开发的工程师,希望把重复性监控任务从「手动盯屏」升级成「自动汇报」。


等构建跑完,你在干嘛?

刷推?看消息?还是打开另一个终端眼神空洞地盯着进度条?

这件事困扰了我很久——CI 跑着,我不敢走开;部署在进行,我不敢关屏幕。这不是效率,这是焦虑。

直到我发现 Claude Code 悄悄上线了 /loop 命令。

一行自然语言,Claude 替你定时执行任务、监控结果、异常报警。 它背后跑的是 cron 调度,但你永远不需要写一个 cron 表达式。

这篇文章,咱们从头把 /loop 吃透。

/loop 是什么?为什么它不一样?

简单说:/loop 是 Claude Code 的内置定时任务技能。

你描述任务 + 给一个时间间隔,Claude 自动把它转成后台调度,然后每隔指定时间就执行一次,并把结果汇报给你。

跟你自己写 cron 任务有什么区别?看这个对比:

代码语言:javascript
复制
传统 cron 方案                       Claude Code /loop
─────────────────────               ─────────────────────────────
*/2 * * * * npm run build           /loop 2m 跑构建,告诉我有没有报错
手动解析退出码
手动写日志
手动配邮件或通知
每次改任务要改 crontab

你需要会 cron 语法                   你只需要会说话
你需要自己处理结果                    Claude 负责解读和汇报
你需要盯着日志                        Claude 主动告警

本质差别是:cron 只负责执行,Claude 负责理解结果并告诉你发生了什么。

快速上手:最小可用示例

image
image

先跑起来再说。打开一个有 npm run build 脚本的项目,进入 Claude Code:

代码语言:javascript
复制
claude

然后输入:

代码语言:javascript
复制
/loop 2m run npm run build and tell me if it passed or failed

Claude 会立刻返回一个调度确认:

代码语言:javascript
复制
✅ 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

你不需要写 */2 * * * *,Claude 帮你算好了。

从这一刻起,每 2 分钟,Claude 就会自动跑一次构建并告诉你结果。你可以去做别的事了。

时间间隔怎么写?

/loop 支持的时间单位如下:

单位

示例

实际含义

s

30s

30 秒(向上取整到 1 分钟)

m

5m

每 5 分钟

h

2h

每 2 小时

d

1d

每天一次

几个注意点:

① 秒级间隔会被取整

因为 cron 的最小粒度是 1 分钟,所以 30s 实际上会按 1m 执行,Claude 会告诉你它做了这个调整。

② 不能整除的间隔会被「取整到合理值」

比如你写 7m,cron 没办法精确表达 7 分钟的循环,Claude 会自动取整到 5m10m,并说明原因。同理 90m 会变成 1h2h

③ 时间间隔的位置很灵活

写在前面、后面都行:

代码语言:javascript
复制
/loop 5m check deployment status
/loop check deployment status every 5m

不加时间间隔也行——Claude 会问你或者用合理默认值。

/loop 内部怎么运行的?

很多人用这个命令之前会问:它是开了一个后台进程吗?会不会跑飞?

看这张运行机制图:

代码语言:javascript
复制
你的 Claude Code 会话
│
├── 前台:你正常对话
│
└── 后台调度器(每秒检查一次)
      │
      ├── 任务未到时间 → 继续等待
      │
      └── 任务到时间了
            │
            ├── Claude 正在响应中?→ 等当前轮次结束
            │
            └── Claude 空闲?→ 立即执行任务,汇报结果

关键点:定时任务「插队」在你的两次对话之间,不会打断你当前的操作。

时区是你本机时区,不是 UTC。所以如果你设置 /loop 1d send morning report at 9am,它真的就是你本地时间早上 9 点执行,不需要换算。

实战:构建监控完整流程

下面走一遍从「搭项目」到「自动捕获错误」的完整流程。

第一步:准备项目

代码语言:javascript
复制
mkdir loop-demo && cd loop-demo
npm init -y

index.js(初始版,构建成功):

代码语言:javascript
复制
console.log("Build successful");

package.json scripts 部分:

代码语言:javascript
复制
{
  "scripts": {
    "build": "node index.js"
  }
}

验证一下:

代码语言:javascript
复制
npm run build
# 输出:Build successful

第二步:进入 Claude Code,启动监控循环

代码语言:javascript
复制
claude
代码语言:javascript
复制
/loop 2m run npm run build and tell me if it passed or failed

Claude 返回调度成功确认,记下 Job ID 备用。

第三步:看正常输出

等 2 分钟,Claude 会自动汇报:

代码语言:javascript
复制
● PASSED — npm run build 执行成功,输出:Build successful.

第四步:故意搞坏构建

index.js 改成有语法错误的版本:

代码语言:javascript
复制
console.log("Build successful"   // 缺少右括号

不需要做任何操作,等下一个循环周期。

2 分钟后,Claude 自动汇报:

代码语言:javascript
复制
● FAILED — npm run build 执行失败

  错误信息:
  SyntaxError: Unexpected end of input
    at wrapSafe (internal/modules/cjs/loader.js:915:16)

  建议检查 index.js 的语法错误。

你全程没有盯着终端——Claude 替你盯着,失败了主动告诉你。

高级用法:把 /loop 指向另一个命令

/loop 可以触发任何 Claude Code 的命令或自定义技能。

比如你已经有一个 /review-pr 命令,想让它每 20 分钟自动检查一次 PR:

代码语言:javascript
复制
/loop 20m /review-pr 1234

每次循环触发时,Claude 会完整执行 /review-pr 1234 的逻辑——就像你手动输入了一样。

更多实战场景:

代码语言:javascript
复制
# 监控部署,完成后通知
/loop 5m check if the k8s deployment is ready and notify me

# 每 30 分钟检查测试套件
/loop 30m run npm test and summarize which tests failed

# 结合 Slack MCP,每天早上发日报
/loop 1d generate a daily summary of open PRs and send to Slack channel #dev-updates

管理已有的循环任务

任务跑起来之后,怎么查看和取消?

查看所有活跃任务,直接用自然语言问:

代码语言:javascript
复制
what scheduled tasks do I have?

Claude 会列出所有任务,含 Job ID、触发频率和任务内容。

取消某个任务,两种方式:

代码语言:javascript
复制
# 自然语言(推荐,多任务时不用记 ID)
cancel the build monitor job

# 直接用 Job ID
CronDelete 0d7f7026

使用限制和边界条件

在实际生产中用 /loop 之前,这几个限制要心里有数:

① 3 天自动过期

所有循环任务在创建后第 3 天自动触发最后一次,然后自动删除。不会有「忘了关的任务」。如果你的需求超过 3 天,需要手动取消再重建,或者使用系统级 cron。

② 会话绑定

/loop 的任务跟你当前的 Claude Code 会话绑定。关掉终端或者会话断开,任务就停了。想要「机器重启也能跑」的持久任务,需要用 Desktop 里的 Scheduled Tasks 功能,那个会在后台独立运行。

③ 完全禁用

如果某些场景下你不想让任何定时任务跑,设置环境变量:

代码语言:javascript
复制
export CLAUDE_CODE_DISABLE_CRON=1

之后 /loop 命令不可用,已有任务也停止触发。

什么时候该用 /loop,什么时候不该用?

代码语言:javascript
复制
适合用 /loop 的场景               不适合用 /loop 的场景
──────────────────               ───────────────────────
构建/测试状态监控                  需要跨会话持续运行的任务
部署进度轮询                      持续时间超过 3 天的监控
PR 检查自动化                     需要精确到秒级的任务触发
开发期间的定时提醒                 需要机器重启后继续跑的任务
多任务并行监控不同服务

小结

/loop 解决的核心问题很简单:开发过程中大量「等待-检查-等待」的重复操作,不应该消耗你的注意力。

它不是什么魔法——背后就是 cron + Claude 的任务理解能力。但这个组合让原来需要「会写 shell 脚本 + 会 cron 语法 + 自己处理结果解析」的事情,变成了「说一句话」。

对于日常在 Claude Code 环境中开发的同学,这个命令值得加到你的常用工具里。


👇 你在用 Claude Code 做开发时,最烦的「手动重复操作」是什么?

是一遍遍刷新部署日志?还是反复跑测试确认有没有回归?

评论区聊聊你的场景,说不定下期就写你的需求 😄

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端达人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • /loop 是什么?为什么它不一样?
  • 快速上手:最小可用示例
  • 时间间隔怎么写?
  • /loop 内部怎么运行的?
  • 实战:构建监控完整流程
    • 第一步:准备项目
    • 第二步:进入 Claude Code,启动监控循环
    • 第三步:看正常输出
    • 第四步:故意搞坏构建
  • 高级用法:把 /loop 指向另一个命令
  • 管理已有的循环任务
  • 使用限制和边界条件
  • 什么时候该用 /loop,什么时候不该用?
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档