主题
桌面端定时任务
在 Claude Code Desktop 中按设定时间和频率自动开启新会话,处理周期性工作。
是什么
桌面端定时任务(Local scheduled task)是 Claude Code Desktop 的 Routines 页面提供的一种调度方式:在你选定的时间和频率自动开启一个全新会话,运行 Claude 处理周期性工作,例如每日代码审查、依赖更新检查、或汇总日历和收件箱的晨报。
它运行在你的本机上,可直接访问本地文件和工具,但只在 app 打开且电脑唤醒时才会触发。Routines 页面同时可创建本地定时任务和运行在 Anthropic 云端的远程 routines;本页只讲本地定时任务。
怎么工作
- Desktop 在 app 打开期间每分钟检查一次调度表,到点时独立于你手动打开的会话另起一个全新会话。
- 每个任务在计划时间后会有几分钟的固定延迟以错峰 API 流量;同一任务的偏移量是确定性的,每次都从相同偏移启动。
- 任务触发时会弹桌面通知,侧边栏的 Scheduled 区出现新会话;该会话与普通会话一样,可改文件、跑命令、建 commit、开 PR。
- 任务只在桌面 app 运行且电脑唤醒时执行;若电脑在计划时间处于睡眠状态则跳过该次运行。
- app 启动或电脑唤醒时,Desktop 检查过去 7 天内是否有错过的运行;若有,只对最近一次错过的时间补跑一次(catch-up run),更早的丢弃,并弹通知。
- 每个任务有独立的 permission mode;~/.claude/settings.json 的 allow 规则同样作用于定时任务会话。
- Ask 模式下若需要未授权的工具,运行会停住等待你批准,会话保留在侧边栏供稍后回应。
- 可在任意 Desktop 会话用自然语言创建/列出/编辑/暂停任务,例如 set up a daily code review that runs every morning at 9am。
怎么配置 / 用法
创建:侧边栏点 Routines → New routine → 选 Local,填写字段:
- Name:任务标识,会转成小写 kebab-case 作为磁盘文件夹名,须唯一
- Description:任务列表里显示的简短说明
- Instructions:任务运行时让 Claude 做什么(内含 permission mode、model 选择器,下方选工作文件夹及是否在隔离 worktree 中运行)
- Schedule:运行频率
保存前必须指定文件夹;若该文件夹未信任,会提示先信任。
Schedule 预设:Manual(无计划,仅 Run now)/ Hourly / Daily(默认本地时间 9:00 AM)/ Weekdays(同 Daily 但跳过周六日)/ Weekly(含时间和星期选择器)。预设没有的间隔可在会话里用自然语言让 Claude 设置,例如:
schedule a task to run all the tests every 6 hours磁盘编辑 prompt:打开 ~/.claude/scheduled-tasks/<task-name>/SKILL.md(若设了 CLAUDE_CONFIG_DIR 则在其下)。文件用 YAML frontmatter 写 name 和 description,prompt 作为正文,下次运行生效。schedule、folder、model、enabled 状态不在此文件,需用 Edit 表单或让 Claude 改。
自我改期:运行中的任务可用 update_scheduled_task MCP 工具修改自身的 schedule 或 prompt。
什么时候用
- 需要访问本地文件和工具的周期性工作(区别于云端 routines)
- 每日代码审查、依赖更新检查、晨报等定时重复任务
- 想保存一个按需手动触发的 prompt(用 Manual + Run now)
- 用自然语言让 Claude 安排一次性提醒(触发后自动停用)
限制 / 坑
- 只在桌面 app 运行且电脑唤醒时执行;电脑睡眠时计划运行被跳过(可在 Settings → Desktop app → General 开启 Keep computer awake 防空闲睡眠)
- 错过的运行最多只补跑最近一次(7 天窗口内),更早的丢弃;时间敏感的任务需在 prompt 内加护栏
- Ask 模式下遇未授权工具会停住等待人工批准
- 电脑关机、或需按 API 调用 / GitHub 事件触发的场景需改用远程 routine
- 本地最小间隔 1 分钟
硬事实速查(12 条)
- 三种调度方式对比:Cloud(跑在 Anthropic 云、无需开机/开会话、最小间隔 1 小时、无本地文件访问)、Desktop(跑在本机、需开机不需开会话、最小间隔 1 分钟、可访问本地文件)、/loop(跑在本机、需开机且需开着会话、最小间隔 1 分钟)
- Desktop 任务最小间隔为 1 分钟
- Daily 预设默认本地时间 9:00 AM
- Schedule 预设:Manual / Hourly / Daily / Weekdays / Weekly
- catch-up(补跑)检查窗口为过去 7 天,只补跑最近一次错过的运行
- 任务文件夹名由 Name 转为小写 kebab-case 生成,须唯一
- 任务数据与 prompt 存于 ~/.claude/scheduled-tasks/<task-name>/SKILL.md(受 CLAUDE_CONFIG_DIR 影响)
- SKILL.md 用 YAML frontmatter 存 name、description,正文为 prompt;schedule/folder/model/enabled 不在其中
- ~/.claude/settings.json 的 allow 规则适用于定时任务会话;可在任务详情页 Always allowed 面板查看/撤销已保存的工具授权
- 运行中任务可用 update_scheduled_task MCP 工具改自身 schedule 或 prompt
- 触发的会话出现在侧边栏 Scheduled 区并伴随桌面通知;可 Run now、Active/Paused 切换、Edit、查看运行历史、Delete
- 删除任务时可勾选 Also delete files on disk 以一并移除磁盘上的 SKILL.md 及相关数据
官方出处:https://code.claude.com/docs/en/desktop-scheduled-tasks