是什么

Desktop 定时任务在本机运行,可直接访问本地文件和工具,但需要 Desktop 应用保持开启且电脑处于唤醒状态。适合需要访问未提交代码或本地工具的定期任务,与云端 Routines(电脑关机时也运行)和 CLI /loop(会话内轮询)形成互补。

核心机制

三种定时方式对比:

方式运行位置需要电脑开启访问本地文件最小间隔
云端 RoutinesAnthropic 云端否否(新鲜克隆)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

关联

实践要点

  • 定时任务的提示词要明确成功标准,因为任务自主运行无法提问
  • 加入时间守卫:「如果现在是下午 5 点后,跳过审查,只发送摘要」
  • 首次运行后检查权限提示,选择「always allow」避免后续运行卡住
  • 用 worktree 隔离模式避免定时任务与手动会话的文件冲突
  • 可以用自然语言让 Claude 创建任务:「设置每天早上 9 点运行的代码审查任务」