跳到正文
FunCoding

搜索

搜索文档、智能体、博客、Skill 和 MCP

用例程自动化工作

例程是保存好的 Claude Code 配置(提示词、仓库、连接器),在云端按计划、API 调用或 GitHub 事件自动运行:创建、触发器配置、管理运行、用量限制与排障(研究预览)。

例程处于研究预览阶段,行为、限制和 API 可能变化;下文的限额数字和 API beta 头以官方为准。

例程是一份保存好的 Claude Code 配置:一条提示词、一个或多个仓库,以及一组连接器,打包一次就能自动运行。例程在 Anthropic 管理的云基础设施上执行,或在被路由到你组织的自托管环境时在那里执行,所以你的笔记本关机时它们也继续运行。

每个例程可以附带一个或多个触发器:

  • 定时:按每小时、每晚或每周这样的节奏重复运行,或在未来某个特定时间运行一次。
  • API:向每个例程专属的端点发送带 bearer 令牌的 HTTP POST,按需触发。
  • GitHub:响应拉取请求或发布等仓库事件自动运行。

一个例程可以组合多个触发器:例如一个 PR 评审例程可以每晚运行、被部署脚本触发,也对每个新 PR 作出反应。

例程在 Pro、Max、Team 和 Enterprise 套餐上可用,在 claude.ai/code/routines 创建和管理,或在 CLI 里用 /schedule。Team 和 Enterprise 的 Owner 可以用 claude.ai/admin-settings/claude-code 的 Routines 开关为所有成员关闭例程;关闭后,现有例程停止运行,成员也不能创建新的。

适合的用例

每个例子把一种触发器与适合例程的工作配对:无人值守、可重复、与明确结果挂钩。

  • 积压整理:定时触发器每个工作日夜里通过连接器对着你的工单系统运行。例程读取自上次运行后新开的 issue,打标签、根据涉及的代码区域分配负责人,并把摘要发到 Slack,让团队以整理好的队列开始一天。
  • 告警分诊:监控工具在错误阈值被越过时调用例程的 API 端点,把告警内容作为 text 传入。例程的提示词让 Claude 调查触发负载里的告警:拉取堆栈跟踪、与仓库里的近期提交关联,并开一个带修复提议和回到告警链接的草稿拉取请求。值班人员评审这个 PR,而不是从空白终端开始。
  • 定制代码评审:GitHub 触发器在 pull_request.opened 时运行。例程应用你团队自己的评审清单,针对安全、性能和风格问题留下行内评论,并添加摘要评论,让人类评审者专注于设计而不是机械检查。
  • 部署验证:你的 CD 流水线在每次生产部署后调用例程的 API 端点。例程对新构建运行冒烟检查、扫描错误日志里的回归,并在部署窗口关闭之前向发布频道发布通过或不通过。
  • 文档漂移:定时触发器每周运行。例程扫描自上次运行以来合并的 PR,标记引用了已变更 API 的文档,并在文档仓库上开更新 PR 供编辑评审。
  • 库移植:GitHub 触发器在 pull_request.closed 时运行,过滤到某个 SDK 仓库里已合并的 PR。例程把改动移植到另一种语言的平行 SDK 并开一个对应的 PR,让两个库保持同步,而不需要人工重新实现每个改动。

创建例程

可以在网页 claude.ai/code/routines、桌面应用或 CLI 里创建例程。三个界面都写入同一个云账号,所以你在一处创建的例程会立即出现在其他地方。在桌面应用的 Code 标签页里,点击侧边栏里的 Routines(或侧边栏 More 菜单里的),再点 New routine,并选择 Cloud;选择 Local 则创建桌面定时任务,它运行在你的机器上而不是云端。

创建表单设置例程的提示词、仓库、环境、连接器和触发器。例程作为完整的 Claude Code 云端会话自主运行:没有权限模式选择器,会话运行 shell 命令、使用已克隆仓库里提交的 skills,并调用你包含的任何连接器,除了某些 artifact 操作之外,全程不停下来请求批准。

例程能触及什么,取决于你选择的仓库、环境的网络访问和变量,以及你包含的连接器;把每一项都限定在例程真正需要的范围内。

当例程的计划或 Run now 启动一次运行时,只有以下条件全部成立,Claude 才会不经询问地重新发布已有的 artifact:

  • 你能编辑该 artifact,且它属于你自己的组织;
  • 该 artifact 没有公开分享;
  • 如果该 artifact 分享给了特定的人或你的组织,它的查看者不会自动看到每个新版本;
  • 发布只携带页面本身,没有支持文件或其他附加内容,并且不强制覆盖更新的版本;
  • 页面不持有超出页面本身的授权,如连接器调用。

在其他所有情况下(包括发布新的 artifact),Claude 先询问。当例程的任务是让某个页面保持最新时,给它一个你已经发布的 artifact。

例程属于你个人的 claude.ai 账号:它们不与队友共享,它们的运行计入你账号的用量和限制。例程通过你连接的 GitHub 身份或连接器所做的一切都以你的名义出现:提交和拉取请求带你的 GitHub 用户,Slack 消息、Linear 工单或其他连接器操作使用你为这些服务链接的账号。

在网页上创建

  1. 打开创建表单:访问 claude.ai/code/routines 并点击 New routine。

  2. 命名例程并写提示词:给例程一个描述性的名字,并写下 Claude 每次运行的提示词。提示词是最重要的部分:例程自主运行,所以提示词必须自成一体,明确说明要做什么以及成功是什么样子。触发器触发时,会话把例程保存的提示词作为分配给它的任务来接收并执行,而不是把它当作对话中途到达的不受信任的内容。触发器只证明该提示词是你账号上某个获授权的会话事先存储的,所以触发的提示词不是实时用户输入,不能充当运行期间各种操作的批准或同意;会话在运行期间获取的内容仍按正常方式处理(v2.1.213 之前,会话收到的是同一条提示词,但被框定为不受信任的后台通知,并可能拒绝据此行动)。提示词输入框带有模型选择器,Claude 每次运行都使用所选模型。

  3. 选择仓库:添加一个或多个让 Claude 在其中工作的 GitHub 仓库。每个仓库在运行开始时克隆,从默认分支开始;Claude 为它的改动创建带 claude/ 前缀的分支。

  4. 选择环境:为例程选一个云环境,环境控制云端会话能访问什么:

    • 网络访问:设置每次运行期间可用的互联网访问级别。
    • 环境变量:提供 Claude 每次运行期间能用的值。它们对任何使用该环境的人可见,所以在 Pro 和 Max 套餐上,把 Claude 在运行中调用的 API 的密钥存为 API 凭据而不是环境变量;该部分还列出永远不会获得凭据的请求。
    • 设置脚本:安装例程需要的依赖和工具;结果会被缓存,所以脚本不会在每个会话里重新运行。

    系统提供一个 Default 环境,带 Trusted 网络访问,只允许会话网络通过默认允许列表里的包注册表、云提供商 API、容器注册表和常见开发域名。你添加到例程的连接器通过 Anthropic 的服务器到达它们的服务,所以不需要改允许列表。如果你的例程需要直接访问你自己的服务或该列表之外的域名,运行前编辑环境的网络访问;要使用单独的环境,先创建一个。

  5. 选择触发器:在 Select a trigger 下选择例程如何启动,可以选一种触发器类型,也可以组合多种:

    • Schedule:选一个预设频率做重复运行,或安排在特定时间戳的一次性运行,时区处理、延迟启动、自定义 cron 间隔和一次性运行见「添加定时触发器」。
    • GitHub event:选择仓库、要响应的事件和可选的过滤器,支持的事件和过滤字段的完整列表见「添加 GitHub 触发器」。
    • API:在这里选 API,然后保存例程。URL 和令牌在例程保存之后才生成,因为它们依赖例程 ID;复制 URL 和生成令牌见「添加 API 触发器」。
  6. 检查连接器:在表单底部的 Connectors 下,你所有已连接的 MCP 连接器默认都被包含。移除例程不需要的:Claude 在运行期间可以使用被包含连接器的每个工具(包括写入),无需请求权限。

  7. 创建例程:点击 Create。例程出现在列表里,并在它的某个触发器下一次匹配时运行。要立即开始一次运行,在例程的详情页点击 Run now。每次运行都会在你的其他会话旁边创建一个新会话,你可以在那里看到 Claude 做了什么、评审改动并创建拉取请求。

在 CLI 里创建

在任何会话里运行 /schedule,以对话方式创建定时例程。你也可以直接传一个描述:重复的例程如 /schedule daily PR review at 9am,一次性的如 /schedule clean up feature flag in one week。Claude 走一遍与网页表单收集的相同信息,然后把例程保存到你的账号;该命令也有别名 /routines。

成功的开始看起来像一场对话:Claude 在保存之前会就计划、仓库和提示词问跟进问题。如果 Claude 反而回复说你需要认证或无法连接到你的远程 claude.ai 账号,就没有创建例程,见下面的「排障」。

CLI 里的 /schedule 创建定时例程。要添加 API 触发器,在网页 claude.ai/code/routines 上编辑例程;GitHub 触发器可以从网页或从 CLI 添加(CLI 路径需要 Claude Code v2.1.225 或更高)。没有定时触发器的例程(如只由 API 调用或 GitHub 事件启动的)没有下次运行时间,Claude 保存或更新它时 CLI 也不显示(v2.1.211 之前,CLI 对这些例程报告的是公元 1 年的下次运行时间)。

配置触发器

例程在它的某个触发器匹配时启动。你可以把定时、API 和 GitHub 触发器的任意组合附加到同一个例程,并随时从例程编辑表单的 Select a trigger 部分添加或移除它们。

添加定时触发器

定时触发器按重复节奏或在未来某个特定时间一次性地运行例程。在 Select a trigger 部分选一个预设频率:每小时、每天、工作日或每周。时间以你的本地时区输入并自动转换,所以不论云基础设施位于何处,例程都在该墙上时钟时间运行。

如果你把运行安排在整点(如 9:00),它可能晚几分钟才启动;要在接近计划时间启动,选整点之后的几分钟,比如 9:07。对每两小时一次或每月第一天这样的自定义间隔,在表单里选最接近的预设,然后在 CLI 里运行 /schedule update 设置具体的 cron 表达式。最小间隔是一小时,运行更频繁的表达式会被拒绝。

安排一次性运行

一次性计划在特定时间戳让例程触发一次。用它在本周晚些时候提醒自己、在发布完成后开清理 PR,或在上游改动上线后启动后续任务。例程触发之后自动禁用,网页界面把它标记为 Ran;要再次运行,编辑例程并设置新的一次性时间。

从 CLI 创建一次性运行时,用自然语言描述时间。Claude 对照当前时间解析该短语,并在保存前确认绝对时间戳:

/schedule tomorrow at 9am, summarize yesterday's merged PRs
/schedule in 2 weeks, open a cleanup PR that removes the feature flag

与重复计划一样的本地到 UTC 的转换也适用于一次性时间戳。一次性运行与其他定时运行计入同一个每小时限制,详见「用量与限制」。

添加 API 触发器

API 触发器给例程一个专用的 HTTP 端点。用例程的 bearer 令牌向该端点 POST 会启动新会话并返回会话 URL。用它把 Claude Code 接入告警系统、部署流水线、内部工具,或任何你能发出认证 HTTP 请求的地方。API 触发器从网页添加到现有例程;CLI 目前不能创建或撤销令牌。

  1. 打开例程进行编辑:进入 claude.ai/code/routines,点击你想通过 API 触发的例程,然后打开例程名称旁的菜单并选 Edit。
  2. 添加 API 触发器:滚动到 Instructions 框下方的 Select a trigger 部分,点击 Add another trigger,选 API。
  3. 复制 URL 并生成令牌:弹窗显示这个例程的 URL 和一条 curl 示例命令。复制 URL,然后点击 Generate token 并立即复制令牌。令牌只显示一次,之后无法取回,所以把它存在安全的地方,比如你告警工具的密钥存储。
  4. 调用端点:向该 URL POST 时,在 Authorization: Bearer 头里发送令牌,完整示例见下面的「触发例程」。

每个例程有自己的令牌,范围只限于触发该例程。要轮换或撤销它,回到同一个弹窗点击 Regenerate 或 Revoke。

触发例程

向 /fire 端点发送 POST 请求,在 Authorization 头里带 bearer 令牌。请求体接受一个可选的 text 字段,用于本次运行特定的上下文(如告警内容或失败日志),它与例程保存的提示词一起传给例程。该值是自由格式的文本,不会被解析:如果你发送 JSON 或其他结构化负载,例程收到的是字面字符串。

text 的值不是作为裸消息到达例程的:它被包在 <routine-fire-payload> 块里,该块把它标为不受信任的数据,并告诉 Claude 不要遵循其中的指令,除非例程自己的提示词这么说。网页界面里 Run now 提供的文本适用同样的包装。这意味着例程保存的提示词必须选择性地表示要对触发文本采取行动:把提示词写成明确引用该负载,例如「Investigate the alert described in the routine-fire-payload block」,否则例程把该文本当作惰性上下文。任何持有 bearer 令牌的人都能发送 text,所以这个包装让泄露的令牌发来的触发文本,以被标记为不受信任数据的方式到达,而不是作为给你例程的直接指令。

下面的例子从 shell 触发例程。所示的例程 ID 和令牌是占位符:换成你在添加 API 触发器时复制的 URL 和令牌,否则请求会以 401 认证错误失败:

curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_01ABCDEFGHJKLMNOPQRSTUVW/fire \
  -H "Authorization: Bearer sk-ant-oat01-xxxxx" \
  -H "anthropic-beta: experimental-cc-routine-2026-04-01" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"text": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'

成功的请求返回带新会话 ID 和 URL 的 JSON 体:

{
  "type": "routine_fire",
  "claude_code_session_id": "session_01HJKLMNOPQRSTUVWXYZ",
  "claude_code_session_url": "https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ"
}

在浏览器里打开会话 URL,可以实时观看运行、评审改动,或手动继续对话。

注意:/fire 端点在 experimental-cc-routine-2026-04-01 beta 头下发布。在功能处于研究预览期间,请求和响应的形状、速率限制和令牌语义可能变化;破坏性变更会放在新的带日期的 beta 头版本之后发布,最近的两个旧头版本继续有效,让调用方有时间迁移。

API 参考

完整的 API 参考(包括所有错误响应、验证规则和字段限制)见 Claude Platform 文档里的「Trigger a routine via API」。/fire 端点只对 claude.ai 用户可用,不属于 Claude Platform API 面。

添加 GitHub 触发器

GitHub 触发器在连接的仓库上发生匹配事件时自动启动新会话。Claude Code 不会跨事件复用会话,所以两次 PR 更新产生两个独立的会话。GitHub webhook 事件受每个例程和每个账号每小时上限的限制,超出限制的事件会被丢弃,直到窗口重置。

无论你从哪个界面配置触发器,Claude GitHub App 都必须安装在你想订阅的仓库上:

  • 从网页界面配置 GitHub 触发器,应用缺失时它会提示你安装;按下面的步骤在网页上配置。
  • 从 CLI,先从 GitHub App 页面安装应用,然后让 Claude 给现有例程附加 GitHub 触发器,例如 /schedule add a GitHub trigger to my nightly review for pull requests opened in acme/webapp(CLI 路径需要 Claude Code v2.1.225 或更高)。Claude 添加触发器时,会回复指向该触发器所触发例程的链接。
  1. 打开例程进行编辑:进入 claude.ai/code/routines,点击例程,打开例程名称旁的菜单并选 Edit。
  2. 添加 GitHub 事件触发器:滚动到 Select a trigger 部分,点击 Add another trigger,选 GitHub event。注意:在 CLI 里运行 /web-setup 授予的是克隆用的仓库访问权,它不会安装 Claude GitHub App,也不会启用 webhook 投递。
  3. 配置触发器:选择仓库,从支持的事件列表里选一个事件,并可选地添加过滤器,然后保存触发器。

支持的事件

GitHub 触发器可以订阅以下两个事件类别之一。在每个类别内,你可以选一个特定动作(如 pull_request.opened),或对该类别的所有动作作出反应。

事件触发时机
Pull requestPR 被打开、关闭、指派、打标签、同步或以其他方式更新
Release发布被创建、发布、编辑或删除

过滤拉取请求

用过滤器缩小哪些拉取请求会启动新会话。所有过滤条件都必须匹配,例程才会触发。可用的过滤字段:

过滤器匹配
AuthorPR 作者的 GitHub 用户名
TitlePR 标题文本
BodyPR 描述文本
Base branchPR 的目标分支
Head branchPR 来自的分支
Labels应用在 PR 上的标签
Is draftPR 是否处于草稿状态
Is mergedPR 是否已合并

每个过滤器把一个字段与一个运算符配对:equals、contains、starts with、is one of、is not one of 或 matches regex。matches regex 运算符测试整个字段值,而不是其中的子串:要匹配任何包含 hotfix 的标题,写 .*hotfix.*;没有两侧的 .*,过滤器只匹配前后什么都没有、恰好是 hotfix 的标题。要做不带正则语法的字面子串匹配,改用 contains 运算符。几个过滤器组合的例子:

  • 认证模块评审:base branch 为 main,head branch 包含 auth-provider。把任何触及认证的 PR 送给专门的评审者。
  • 仅限待评审:is draft 为 false。跳过草稿,让例程只在 PR 准备好评审时运行。
  • 标签把关的回溯移植:labels 包含 needs-backport。只在维护者给 PR 打标签时才触发移植到另一个分支的例程。

管理例程

点击列表里的例程打开它的详情页。详情页显示例程的仓库、连接器、提示词、计划、API 令牌、GitHub 触发器,以及过去的运行列表。

查看运行并与之交互

点击任何一次运行,把它作为完整会话打开。在那里你可以看到 Claude 做了什么、评审改动、创建拉取请求,或继续对话。每个运行会话像其他会话一样工作:用会话标题旁的下拉菜单重命名、归档或删除它。

注意:运行列表里的绿色状态表示会话启动并在没有基础设施错误的情况下退出,并不表示你提示词里的任务成功了。打开该运行阅读转录,确认 Claude 实际做了什么:被阻止的网络请求、缺失的连接器工具和任务级失败都在那里而不是在状态指示器里出现。

编辑和控制例程

在例程详情页你可以:

  • 点击 Run now 立即开始一次运行,而不等下一个计划时间;可以选择提供本次运行特定的文本,它以与 API 触发器的 text 字段相同的方式到达例程。
  • 用页面顶部的开关暂停或恢复计划。暂停的例程保留配置,但在你重新启用之前不运行。
  • 打开例程名称旁的菜单并选 Edit 来更改名称、提示词、仓库、环境、连接器或例程的任何触发器;Select a trigger 部分是你添加或移除计划、API 令牌和 GitHub 事件触发器的地方。
  • 打开同一菜单并选 Delete 来删除例程。

从 CLI 管理例程

CLI 支持管理现有例程。运行 /schedule list 查看所有例程,/schedule update 更改某个例程,/schedule run 立即触发它。你也可以询问例程的运行历史,例如 /schedule why did my nightly review do nothing this morning?:Claude 列出例程最近的运行及其状态,并附带在网页上打开每次运行的链接,读取运行日志来解释发生了什么,包括工具错误、权限拒绝和最终结果(需要 Claude Code v2.1.227 或更高)。

仓库和分支权限

例程需要 GitHub 访问权才能克隆仓库。用 /schedule 从 CLI 创建例程时,Claude 检查你的账号对你运行它所在的仓库是否有 GitHub 访问权,如果没有,就添加一条设置说明,点名如何授予;授予访问权的两种方式见云端会话页的 GitHub 认证选项。

如果运行到期时你的 GitHub 连接缺失或已过期,例程会跳过运行,直到你重新连接,最长 72 小时;在该窗口内重新连接 GitHub,例程会自行恢复。没有连接超过 72 小时后,例程关闭,你要在重新连接 GitHub 后再把它打开。

你添加的每个仓库在每次运行时都会被克隆,除非你的提示词另有指定,Claude 从仓库的默认分支开始。Claude 把它的工作推送到带 claude/ 前缀的分支,这些分支总是被接受。当你的提示词指示 Claude 推送到另一个分支时,Claude Code 先检查该推送,并在以下任一情形成立时拒绝:该分支在 GitHub 上受保护;别人有一个来自该分支的打开的拉取请求;该分支带有不是你撰写的提交。

连接器

例程可以使用你已连接的 MCP 连接器,在每次运行期间读写外部服务。例如,分诊支持请求的例程可能从 Slack 频道读取并在 Linear 里创建 issue。

连接器是你账号上的 claude.ai 集成。你在 CLI 里用 claude mcp add 在本地添加的 MCP 服务器存储在你的机器上而不是 claude.ai 账号里,所以它们不出现在连接器列表里;要在例程里使用这些服务器,在 claude.ai/customize/connectors 把它添加为连接器。对于只有一个仓库的例程,你也可以改为在已提交的 .mcp.json 里声明它,使其成为克隆仓库的一部分。

创建例程时,你当前所有已连接的连接器默认都被包含。移除不需要的,以限制运行期间 Claude 能访问哪些工具;你也可以直接从例程表单添加连接器。要在例程表单之外管理或添加连接器,访问 claude.ai/customize/connectors,或在 CLI 里用 /schedule update。

环境和网络访问

每个例程使用一个云环境,它控制网络访问、环境变量和设置脚本。例程在每次运行时继承环境的网络策略。Default 环境使用 Trusted 网络访问,只允许会话网络通过默认允许列表;该路径上到允许列表之外主机的请求以 403 和 x-deny-reason: host_not_allowed 失败。MCP 连接器流量经 Anthropic 的服务器路由而不走那条路径,所以你添加到例程的连接器无需把它们的主机加入 Allowed domains 就能工作;在「连接器」下移除你不需要的连接器。

要在你自己的某个环境上允许额外的域名,按下面的步骤做(组织共享环境在这里以只读方式打开,所以由 Owner 在管理设置的 Cloud environments 页面更改它的网络访问):

  1. 打开例程进行编辑:在例程的详情页,打开例程名称旁的菜单并选 Edit。
  2. 打开环境选择器:在 Instructions 框下方,选择显示你环境名称(如 Default)的云图标。
  3. 打开环境设置:把鼠标悬停在列表里的环境上,点击右侧出现的设置图标。
  4. 更改网络访问级别:在 Update cloud environment 对话框里,把 Network access 改为 Custom,并在 Allowed domains 里输入你的域名。勾选 Also include default list of common package managers 以在自定义域名之外保留默认允许列表;选 Full 则是不受限的访问。
  5. 保存:点击 Save changes,新策略从下一次运行开始生效。

访问级别和默认允许列表的详情见云环境页的网络访问。

用量与限制

例程消耗订阅用量的方式与交互式会话相同;在 claude.ai/settings/usage 查看你当前的消耗。与订阅用量分开,启动运行的每种方式都有每小时限制(以下为官方核实时的数字,以官方为准):

动作限制计在谁头上超出限制时
定时运行(包括一次性运行)每小时 100 次你的账号运行等待到限制重置
Run now、API 触发,以及把一次性例程设为再次运行每小时 30 次每个例程,三者共享一个计数动作失败,直到限制重置
Run now 和把一次性例程设为再次运行每小时 100 次你的账号同上
API 触发每小时 100 次你的账号,与 Run now 分开计数同上
GitHub 事件见「添加 GitHub 触发器」

这些每小时限制都没有超额。当例程触及你的订阅用量限制时,打开了用量额度的组织可以让例程按计量超额继续运行;没有用量额度时,额外的运行会被拒绝,直到你的用量窗口重置。在 claude.ai/settings/usage 打开用量额度;在 Team 和 Enterprise 套餐上,由管理员在 claude.ai/admin-settings/usage 为组织打开。你的订阅被暂停期间,例程被搁置、不运行;订阅再次生效后,把它们重新打开。

排障

/schedule 返回「Unknown command」

当某个要求不满足时,CLI 会隐藏 /schedule:输入时命令菜单显示 No commands match "/schedule";提交它会返回 Unknown command: /schedule,下面注明不同回答的情形除外。原因通常是以下之一:

  • 你用 Console API key、Anthropic profile 或联合凭据,或 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 这类云提供商认证。/schedule 需要 claude.ai 订阅登录。用 Console API key 或 profile 并启用功能标志获取时,提交 /schedule 改为显示 /schedule is available with Claude for Enterprise — ask your admin about migrating from API-key access;用云提供商登录时,仍然看到 Unknown command: /schedule。如果你的 shell 里设置了 ANTHROPIC_API_KEY 或 ANTHROPIC_AUTH_TOKEN,或 settings.json 里设置了 apiKeyHelper,先移除它,因为它们优先于 claude.ai 登录;profile 或联合凭据同样优先,所以也要关掉。
  • 你完全退出了登录,没有 API key 或其他凭据。启用功能标志获取时,提交 /schedule 显示 /schedule requires a claude.ai subscription. Run /login to sign in with your claude.ai account.(v2.1.268 之前,退出登录的会话显示与 Console API key 相同的 Claude for Enterprise 消息)。
  • 你在云端会话里:提交 /schedule 得到的回答是该命令在这个环境里不可用;改从网页界面管理例程。
  • 你组织的策略禁用了云端会话(例程需要它):这种情况下提交 /schedule 回答 Cloud sessions are disabled by your organization's policy(v2.1.268 之前,它返回 Unknown command: /schedule)。
  • Owner 为你的 Team 或 Enterprise 组织关闭了例程(v2.1.227 之前,这种情况下命令仍然出现,而 claude.ai 在 Claude 尝试创建或运行例程时拒绝它)。

除非你组织的策略禁用了例程或云端会话,不论 CLI 如何配置,你都可以在 claude.ai/code/routines 创建和管理例程。

「Routines are disabled by your organization's policy」

你 Team 或 Enterprise 组织里的 Owner 很可能关闭了 claude.ai/admin-settings/claude-code 里的 Routines 开关。在 Claude Code v2.1.227 或更高版本上,同一个开关也会在 CLI 里隐藏 /schedule。这是服务端的组织设置,无法从你本地的配置覆盖;请 Owner 为你的组织启用例程。

相关资源

  • /loop 和会话内调度:在打开的 CLI 会话里调度本地任务。
  • 桌面定时任务:在你的机器上运行、能访问本地文件的本地定时任务。
  • 云环境:为云端会话配置网络访问、环境变量和设置脚本。
  • Projects:Claude 跨并行云端会话协调的持续工作;从项目创建的例程出现在它的 Routines 标签页上。
  • MCP 连接器:连接 Slack、Linear 和 Google Drive 这样的外部服务。
  • GitHub Actions:在你的 CI 流水线里对仓库事件运行 Claude。