是什么
Desktop 定时任务在本机运行,可直接访问本地文件和工具,但需要 Desktop 应用保持开启且电脑处于唤醒状态。适合需要访问未提交代码或本地工具的定期任务,与云端 Routines(电脑关机时也运行)和 CLI /loop(会话内轮询)形成互补。
核心机制
三种定时方式对比:
| 方式 | 运行位置 | 需要电脑开启 | 访问本地文件 | 最小间隔 |
|---|---|---|---|---|
| 云端 Routines | Anthropic 云端 | 否 | 否(新鲜克隆) | 1 小时 |
| Desktop 定时任务 | 本机 | 是 | 是 | 1 分钟 |
CLI /loop | 本机 | 是 | 是 | 1 分钟 |
创建任务:点击侧边栏「Routines」→「New routine」→「Local」,配置:
- 名称(转为 kebab-case 作为文件夹名)
- 指令(含权限模式和模型选择)
- 工作目录
- 执行计划(手动/每小时/每天/工作日/每周)
执行机制:
- Desktop 每分钟检查一次调度
- 每次触发创建独立会话,显示在侧边栏「Scheduled」区域
- 触发时发送桌面通知
- 错过的运行:应用启动或电脑唤醒时,最多补跑一次(7天内最近一次)
Worktree 隔离:创建任务时启用 worktree 开关,每次运行获得独立 git worktree,与手动会话不冲突。
自我修改:任务可在运行时通过 update_scheduled_task MCP 工具修改自己的调度计划(如检测到发布分支时提前运行)。
关键细节
- 任务文件存储在
~/.claude/scheduled-tasks/<task-name>/SKILL.md - 首次创建后点击「Run now」测试,对每个权限提示选择「always allow」
- 电脑睡眠时跳过的运行不会补跑(只补最近一次)
- 关闭笔记本盖子会让电脑睡眠,即使启用了「Keep computer awake」
- 需要电脑关机时也运行的任务,改用云端 Routines
关联
- desktop — Desktop 完整功能参考
- platforms-overview — 各种定时任务方式对比
- common-workflows — 定时任务使用场景
实践要点
- 定时任务的提示词要明确成功标准,因为任务自主运行无法提问
- 加入时间守卫:「如果现在是下午 5 点后,跳过审查,只发送摘要」
- 首次运行后检查权限提示,选择「always allow」避免后续运行卡住
- 用 worktree 隔离模式避免定时任务与手动会话的文件冲突
- 可以用自然语言让 Claude 创建任务:「设置每天早上 9 点运行的代码审查任务」