Claude Code Desktop 定时任务:创建、补跑与权限设置

Claude Code Desktop 应用的本地定时任务运行在你的机器上,可直接访问本地文件和工具,但需要 Desktop 保持开启且电脑不能休眠。创建时需设定名称、提示语和频率,每个任务有独立权限模式。错过运行时,Desktop 会在重新唤醒后补跑最近一次,丢弃更早的。与云端 Routines 的区别:Routines 关机也能跑,本地任务要求机器常开且可访问本地文件。

三种调度方式对比

Claude Code 提供三种定时或一次性任务调度方式:

云端 Routines Desktop 本地任务 /loop
运行位置 Anthropic 云端 你的机器 你的机器
需要机器开机
需要保持会话
跨重启持久化 仅能通过 --resume 恢复
访问本地文件 否(全新克隆)
MCP 服务器 每任务配置 Connectors 配置文件 + Connectors 继承自当前会话
权限提示 无(完全自主运行) 每任务可配置 继承自当前会话
自定义调度 通过 /schedule 命令
最小间隔 1 小时 1 分钟 1 分钟
  • 云端任务:适合需要可靠运行、不依赖本机的场景。
  • Desktop 任务:适合需要本地文件和工具的重复工作。
  • /loop:适合在正在进行的会话中快速轮询。

默认情况下,定时任务针对当前工作目录运行(包括未提交的改动)。创建任务时开启 worktree 切换,可以让每次运行使用独立的 Git worktree,类似于并行会话

创建定时任务

点击侧边栏 RoutinesNew routineLocal,配置以下字段:

字段 说明
Name 任务标识符,转为小写 kebab-case 并用作磁盘文件夹名,所有任务中唯一
Description 任务列表中显示的简短说明
Instructions 任务运行时发给 Claude 的指令。编写方式与在提示框内输入消息相同;指令输入控件中包含权限模式和模型选择器,下方还需选择工作目录以及是否使用隔离 worktree
Schedule 运行频率,参见下方频率选项

保存任务前必须选择一个已信任的工作目录。如果该目录尚未信任,Desktop 会提示先信任。

你也可以在其他会话中直接描述需求来创建任务。例如 “set up a daily code review that runs every morning at 9am” 会创建一个周期性任务,“remind me at 3pm tomorrow to check the deploy” 会创建一个一次性任务(触发后自动禁用)。

频率选项

从 Schedule 控件选择预设:

  • Manual:不设计划,仅通过点击 Run now 手动触发。适用于保存按需执行的提示语
  • Hourly:每小时运行一次
  • Daily:显示时间选择器,默认本地时间 9:00 AM
  • Weekdays:同 Daily,但跳过周六和周日
  • Weekly:显示时间选择器和星期选择器

对于选择器未提供的间隔(如每15分钟、每月第一天、或某个未来时间的单次运行),可以在任意 Desktop 会话中用自然语言向 Claude 描述,例如 “schedule a task to run all the tests every 6 hours”。

定时任务的运行机制

定时任务运行在你的机器上。Desktop 应用开启时每分钟检查一次计划,任务到期时启动全新会话(独立于你手动打开的会话)。每个任务在预定时间后有一段短延迟(数分钟)以错开 API 流量,该延迟是确定性的:同一任务每次偏移相同。

任务触发时,你会收到桌面通知,新会话出现在侧边栏的 Scheduled 区域下。打开后可查看 Claude 执行的操作、审阅变更或响应权限提示。该会话与普通会话一样:Claude 可以编辑文件、运行命令、创建提交和打开拉取请求。

限制:任务只在 Desktop 应用运行且电脑唤醒时执行。若电脑在预定时间处于休眠,该次运行将被跳过。可以在 Settings → Desktop app → General 中启用 Keep computer awake 阻止空闲休眠。合上笔记本盖仍然会休眠。如需在电脑关闭时运行,请使用云端 Routines

错过运行的补跑

当 Desktop 启动或电脑唤醒时,它会检查每个任务在过去七天内是否有错过的运行。如果有,Desktop 会为最近一次错过的时间启动一次补跑,并丢弃更早的。例如一个每日任务错过了六天,唤醒后只补跑一次。补跑开始时 Desktop 会弹出通知。

编写提示语时需要考虑到这一点:定时 9am 的任务可能在晚上 11pm 才运行(如果电脑整天休眠)。如果时机重要,可以在提示语本身添加防护条件,例如:“Only review today’s commits. If it’s after 5pm, skip the review and just post a summary of what was missed.”

权限

每个任务拥有独立的权限模式,在创建或编辑时设置。~/.claude/settings.json 中的 allow 规则同样适用于定时任务会话。如果任务以 Ask 模式运行但缺少某个工具的权限,运行会停滞直到你批准。该会话会保留在侧边栏,你可以稍后处理。

避免停滞的技巧:创建任务后立即点击 Run now,观察权限提示,对每个工具选择 “always allow”。后续该任务的运行会自动批准这些工具而不再提示。你可以在任务详情页查看和撤销这些批准。

管理定时任务

Routines 列表中点击任务进入详情页,可执行以下操作:

  • Run now:立即启动,不等下次预定时间
  • Status:切换 Active / Paused,暂停或恢复运行而不删除任务
  • Edit:修改指令、计划、目录或其他设置
  • Review history:查看所有历史运行(包括跳过项)。悬停跳过项可查看原因:电脑休眠、上次运行仍在进行、或其他定时任务已在运行。点击 Show more 加载更早的记录
  • Review allowed permissions:在 Always allowed 面板中查看和撤销已保存的工具批准
  • Delete:删除任务并归档其所有会话。确认对话框中有 Also delete files on disk 选项,勾选后也会删除任务的 SKILL.md 文件及 ~/.claude/scheduled-tasks/ 下的相关数据

你也可以在其他 Desktop 会话中通过自然语言管理任务,例如 “pause my dependency-audit task” 或 “show me my scheduled tasks”。删除任务需使用详情页面的 Delete 按钮。

定时任务也可以在自己的运行会话中使用 update_scheduled_task MCP 工具修改自身的计划或提示语。例如,当检测到有 release 分支创建时,任务可以重新安排代码审查提前运行。

编辑磁盘上任务提示语:打开 ~/.claude/scheduled-tasks/<task-name>/SKILL.md(如果设置了 CLAUDE_CONFIG_DIR 则在对应目录下)。文件使用 YAML frontmatter 存放 namedescription,提示语作为正文。修改后下次运行生效。计划、目录、模型和启用状态不在此文件中,请通过编辑表单或直接向 Claude 描述修改。

相关文档


常见问题

本地定时任务和云端 Routines 应该怎么选?

需要访问本地文件、本地工具(如本地 MCP 服务器)或依赖未提交的代码时,用本地定时任务。需要关机也能运行、或希望用 API 调用或 GitHub 事件触发时,选云端 Routines。本地任务要求 Desktop 开启且电脑不硬休眠,Routines 依赖 Anthropic 云端基础设施。

电脑休眠导致任务没跑怎么办?

Desktop 在线且电脑唤醒时才会执行任务。如果休眠,运行会被跳过,但 Desktop 在唤醒后会自动补跑最近一次错过的运行。为防止空闲休眠,可在设置中启用 Keep computer awake。如果任务必须按时执行,建议使用云端 Routines。

任务卡在权限提示如何处理?

打开侧边栏中该任务对应的会话(位于 Scheduled 区域),手动批准权限提示。选择 “always allow” 可让后续同类工具自动批准。你也可以在任务详情页的 Always allowed 面板预先管理已批准的权限。