Claude Code 学习站
Mingyu's Library

学习站 / 实战 Tip / 簇 F · 端到端场景

定时任务

想让 Claude Code 每天自动干活?官方给了三种定时方式——会话内 /loop、桌面定时任务、云端 Routines——选错一种,任务可能压根不会跑。

三种方式的本质区别只有一个问题:任务跑的时候,你的机器(和会话)在不在?想清楚这一点,选型就定了。

一句话结论

结论 按「机器要不要开着」选:完全无人值守(关机也要跑)选云端 Routines;要读写本地文件、机器常开选 Desktop 定时任务;只是当前会话里盯个部署、轮询个 CI 用 /loop官方官方文档的建议原话即「cloud 用于机器不在也要可靠运行,Desktop 用于需要本地文件和工具,/loop 用于会话内快速轮询」。

做法步骤

  1. 先选型。官方官方对比表(两个文档页同表)关键行如下:
    云端 RoutinesDesktop 定时任务/loop(会话内)
    跑在哪Anthropic 云你的机器你的机器
    要求机器开着
    要求会话开着
    重启后仍在未过期时 --resume 可恢复
    能读本地文件否(每次 fresh clone)
    权限提示无(自主运行)每任务可配继承会话
    最小间隔1 小时1 分钟1 分钟
  2. /loop(会话内):官方/loop 5m check if the deployment finished 按固定间隔重跑 prompt;省略间隔则 Claude 每轮自选 1 分钟到 1 小时的等待。任务是会话级的:新开会话就没了,recurring 任务创建 7 天后自动过期。防拥挤有抖动:整点任务最多晚 30 分钟触发,在意准点就别用 :00/:30,写 3 9 * * * 这类分钟。一次性提醒直接说人话:「remind me at 3pm to push the release branch」。管理用自然语言(「what scheduled tasks do I have?」),底层是 CronCreate/CronList/CronDelete 三个工具。
  3. Desktop 定时任务(本地持久):官方Desktop 侧栏 Routines → New routine → 选 Local,填名称、说明、指令、日程(Manual/Hourly/Daily/Weekdays/Weekly 预设,更细粒度让 Claude 帮你设);到点自动开一个新会话跑。只在 app 开着且电脑醒着时运行;睡过头会在唤醒后补跑最近错过的那一次(只补一次)——所以 prompt 里要写时间护栏(见下例)。权限按任务配:建好先点 Run now,把弹出的权限逐个「always allow」,之后就不会卡住。任务 prompt 存在 ~/.claude/scheduled-tasks/<task-name>/SKILL.md,改文件下次运行生效。
  4. 云端 Routines(无人值守):官方研究预览中。在 claude.ai/code/routines 或 CLI 里用 /schedule 创建:prompt + 仓库 + connectors 打包成 routine,跑在 Anthropic 云上,每次 fresh clone 仓库、无权限弹窗、自主运行。除定时外还能被 API POST 或 GitHub 事件(PR/release)触发。最小间隔 1 小时;有每日运行次数上限,消耗订阅用量。需要 claude.ai 订阅登录(API key 登录用不了 /schedule)。
  5. 写 prompt 的共同要点:官方定时任务自主运行、没法追问,所以 prompt 必须自包含:明确做什么、成功长什么样、结果放哪。本站观点再加两条:让任务留下可核查的产物(文件/PR/报告),别只在会话里说说;云端 routine 显示绿色状态只代表会话正常退出,不代表任务成功,要点开 transcript 看。CI 场景的定时也可以走 GitHub Actions 的 cron,见接进 GitHub Actions;移动端盯背景任务见后台运行与手机监控

可直接抄的 prompt

每日任务完整例子 A——云端版,在 CLI 里(需 claude.ai 订阅登录):

/schedule 每天早上 9 点:总结本仓库过去 24 小时合并的 PR 和新开的 issue,
按模块归类,标出高风险改动;把晨报写成 reports/daily-<日期>.md,
提交到 claude/ 前缀分支并开 PR。
成功标准:PR 恰好新增这一个文件,晨报里每条结论都附 PR/issue 编号。

每日任务完整例子 B——本地版,在任意 Desktop 会话里直接说:

帮我建一个本地定时任务:工作日每天 09:10 运行,工作目录 ~/work/my-app。
任务内容:拉最新代码,跑完整测试套件;有失败就定位原因,
把分析和修复建议写进 notes/test-failures-<日期>.md。
时间护栏:如果是电脑睡醒后的补跑且已过下午 5 点,只写一份「今天错过了什么」摘要,不做修复。
建好后立刻 Run now 一次,让我把权限提示逐个设为 always allow。

来源与最后核实日期