Appearance
Claude Code 提供两种定时任务机制:/loop 是 session 级别的本地周期任务,最长运行 7 天,机器关机即停止;/schedule(Routines)是云端定时任务,即使本地 Claude Code 未运行也能触发。选对机制能让你的自动化工作流持续运转。
Claude Code 定时任务:/loop 与 /schedule 的使用与区别
两种机制一眼对比
/loop | /schedule | |
|---|---|---|
| 运行位置 | 本地 session(内存中) | 云端(Routines) |
| 机器关机后 | 停止 | 继续运行 |
| 最长持续 | 7 天(自动过期) | 无硬性限制 |
| 最小间隔 | 1 分钟(cron 最小粒度) | 取决于云端配置 |
| 配置方式 | /loop <interval> "<prompt>" | /schedule <description> |
| 查看状态 | 自动显示在 session 中 | claude.ai 查看 |
/loop:本地周期任务
/loop 是内置 Skill,无需额外安装,使用 CronCreate/CronList/CronDelete 工具管理周期调度。
基本用法
bash
# 每分钟报告当前时间
/loop 1m "tell current time"
# 每 5 分钟运行 simplify skill
/loop 5m /simplify
# 每 10 分钟检查部署状态
/loop 10m "check deploy status"
# 每 30 分钟监控 API 健康
/loop 30m "call GET /health and report status"间隔语法
| 写法 | cron 表达式 | 含义 |
|---|---|---|
1m | */1 * * * * | 每 1 分钟 |
5m | */5 * * * * | 每 5 分钟 |
30m | */30 * * * * | 每 30 分钟 |
1h | 0 * * * * | 每 1 小时 |
生命周期
- 最小粒度:1 分钟(cron 限制)
- 自动过期:7 天后自动删除(任务仍会触发最后一次,然后被删除)
- session 绑定:Claude Code 关闭则任务消失
- 取消任务:
cron cancel <job-id>(job-id 在创建时显示)
查看运行中的任务
bash
/tasks # 显示所有后台任务(包括 loop 任务)/schedule:云端定时任务(Routines)
/schedule 创建云端 Routine,在 claude.ai 服务器上运行,不依赖本地 Claude Code 是否开启。
bash
# 创建定时任务
/schedule every weekday at 9am, check GitHub issues and summarize new ones
# 列出已有 Routines
/schedule
# 别名
/routines适用场景:
- 每日晨报、周报生成
- 定时 API 健康检查(需要机器不关机也能运行)
- 定期代码质量分析
/loop 的实战场景
场景 1:开发时的定时代码审查
bash
/loop 30m /simplify每 30 分钟自动对最近修改的代码运行 simplify skill,在你专注编码时在后台持续优化。
场景 2:监控部署
bash
/loop 2m "run curl -s https://api.example.com/health | check if status is ok, report if not"每 2 分钟检查 API 健康状态,异常时立即在 session 中报告。
场景 3:周期性 git 状态检查
bash
/loop 10m "run git status and git log --oneline -5, summarize what changed"每 10 分钟汇报仓库状态,适合长时间的重构工作。
关键注意事项
关于 7 天限制:
/loop任务在创建 7 天后自动过期,无法续期- 如果需要超过 7 天的周期任务,使用
/schedule(云端 Routines)
关于 cron 最小粒度:
- cron 最小单位是 1 分钟,无法设置"每 30 秒"之类的间隔
- 比 1 分钟更频繁的任务需要在 session 中自定义循环逻辑
关于 hooks 触发:
- loop 任务每次触发都会走完整的
UserPromptSubmit和Stophook 生命周期 - 如果你配置了声音通知等 hooks,每次 loop 触发都会执行
FAQ
Q: /loop 任务和 session 中我正在对话有冲突吗? A: loop 任务只在 session 空闲时触发(Claude 没有在处理其他任务时)。如果你正在对话,loop 任务会等待,不会打断。
Q: 设置了 /loop 1m 但它不按时触发怎么回事? A: /loop 基于 cron,实际触发时间有最多 10% 的抖动(1 分钟任务可能在 54-66 秒间触发)。另外如果 session 在忙,任务会延迟到空闲后执行。
Q: 机器重启后 /loop 任务消失了,怎么办? A: /loop 是 session 级别的内存任务,session 结束即消失。如需跨 session 持久化,使用 /schedule(Routines)替代。
Q: /loop 和 /schedule 可以同时使用吗? A: 可以。它们是完全独立的机制。常见组合:/loop 用于开发期间的临时监控,/schedule 用于生产级的持续自动化任务。