Appearance
Routines:云端自动化任务
Routine 是一段保存好的 Claude Code 配置(提示语 + 仓库 + MCP connectors),运行在 Anthropic 托管的云端基础设施,电脑关机也照常执行。支持三种触发方式:定时(hourly/daily/weekdays/weekly)、API 端点(HTTP POST + bearer token)、GitHub 事件(PR/Release)。可在 claude.ai/code/routines 管理,或通过 CLI 的 /schedule 命令创建。
Routine 是一段保存好的 Claude Code 配置:一条提示语、一个或多个仓库,以及一组 MCP connectors,一次配置、自动运行。Routines 在 Anthropic 托管的云端基础设施上执行,关闭笔记本也不会中断。
每个 Routine 可以附加一个或多个触发器:
- 定时:按固定节奏(每小时、每晚、每周)运行
- API:发送带有 bearer token 的 HTTP POST 按需触发
- GitHub:响应仓库事件(PR、Release 等)自动运行
单个 Routine 可以组合多种触发器。Routines 需要 Pro、Max、Team 或 Enterprise 计划,并开启 Claude Code on the web。在 claude.ai/code/routines 管理,或在 CLI 中用 /schedule 创建。
典型使用场景
Backlog 整理:定时触发每晚运行,通过 connector 读取 issue tracker,自动打标签、分配负责人,并把摘要发到 Slack。
告警分类:监控工具在阈值触发时调用 Routine 的 API 端点,传入告警内容。Routine 拉取堆栈跟踪、与近期 commit 关联,开一个包含修复建议的草稿 PR 并链接原告警。
代码审查:GitHub 触发器在 pull_request.opened 时运行,按团队自定义 checklist 检查安全、性能和代码风格,添加行内评论和汇总说明。
部署验证:CD 流水线在每次生产部署后调用 API 端点,Routine 运行冒烟检查、扫描错误日志,在部署窗口关闭前发布上线/回滚建议。
文档漂移检测:每周定时运行,扫描已合并 PR,标出引用了变更 API 的过时文档,对 docs 仓库开 update PR。
多语言 SDK 同步:在一个 SDK 仓库合并 PR 时触发,把变更移植到另一个语言的并行 SDK 并开对应 PR。
创建 Routine
支持从 Web、Desktop 或 CLI 创建,三个界面都写入同一个云账号,立即同步。
Web 端:在 claude.ai/code/routines 填写创建表单。
CLI:
bash
/schedule
# 或直接描述
/schedule daily PR review at 9am/schedule 只创建定时 Routine。要添加 API 或 GitHub 触发器,在 Web 编辑 Routine。
其他 CLI 管理命令:
bash
/schedule list # 查看所有 Routines
/schedule update # 修改某个 Routine
/schedule run # 立即触发Desktop 应用:点击 Schedule → New task → New remote task。选 New local task 则创建本地定时任务,运行在本机而非云端。
注意:Routines 以无权限提示方式运行完整的 Claude Code 云端会话,可以执行 Shell 命令、使用仓库中的 skills,以及调用配置的 connectors。Routines 归属个人 claude.ai 账号,不与团队成员共享,消耗账号的每日运行配额。所有操作以你的身份出现(commit、PR、Slack 消息等均使用你的账号)。
配置触发器
在 Routine 编辑表单的 Select a trigger 区域添加或移除触发器,支持随时修改。
定时触发
在 Select a trigger 中选择预设频率:hourly、daily、weekdays 或 weekly。时间输入为本地时区,自动转换。运行时间可能因随机偏移而延迟几分钟(偏移对每个 Routine 固定)。
自定义间隔(如每两小时、每月一号)可先选最接近的预设,再用 CLI 运行 /schedule update 设置具体 cron 表达式。最小间隔为 1 小时。
API 触发
API 触发器为 Routine 生成专用 HTTP 端点,POST 请求加 bearer token 即可启动新会话并返回会话 URL。适合接入告警系统、部署流水线、内部工具等。
触发示例:
bash
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."}'text 字段是可选的本次运行上下文(告警内容、失败日志等),作为纯文本传递给 Routine。
成功响应:
json
{
"type": "routine_fire",
"claude_code_session_id": "session_01HJKLMNOPQRSTUVWXYZ",
"claude_code_session_url": "https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ"
}打开 session URL 可在浏览器实时查看运行过程。每个 Routine 有独立 token,可在管理页面轮换或吊销。
GitHub 触发
GitHub 触发器在连接的仓库发生匹配事件时自动启动新会话,每个匹配事件各启动一个独立会话。目前只能通过 Web UI 配置。
支持的事件类别:
| 事件 | 触发条件 |
|---|---|
| Pull request | PR 被打开、关闭、分配、打标签、同步或其他更新 |
| Release | Release 被创建、发布、编辑或删除 |
过滤 PR:所有过滤条件必须同时满足才触发。
| 过滤字段 | 匹配内容 |
|---|---|
| Author | PR 作者的 GitHub 用户名 |
| Title | PR 标题文本 |
| Body | PR 描述文本 |
| Base branch | PR 目标分支 |
| Head branch | PR 来源分支 |
| Labels | PR 上的标签 |
| Is draft | 是否为草稿 PR |
| Is merged | 是否已合并 |
| From fork | 是否来自 fork |
操作符支持:equals、contains、starts with、is one of、is not one of、matches regex。正则表达式匹配整个字段值,不是子串——要匹配包含 hotfix 的标题需写 .*hotfix.*;纯子串匹配用 contains 操作符。
过滤组合示例:
- auth 模块审查:base branch =
main,head branch containsauth-provider - 外部贡献者分流:from fork =
true,额外安全和风格审查 - 仅审阅就绪的 PR:is draft =
false,跳过草稿 - 标签驱动 backport:labels include
needs-backport,仅在维护者打标签后触发移植
管理 Routines
点击列表中的 Routine 进入详情页,包含仓库、connectors、提示语、定时计划、API token、GitHub 触发器和历史运行列表。
- Run now:立即触发,不等下次定时
- 暂停/恢复:保留配置但不运行,直到重新启用
- 编辑:修改名称、提示语、仓库、环境、connectors、触发器
- 删除:移除 Routine,过去的会话仍保留在会话列表中
仓库和分支权限:每次运行都会重新克隆仓库。默认从仓库默认分支开始,默认只能推送到 claude/ 前缀的分支。要允许无限制分支推送,在创建或编辑 Routine 时为该仓库启用 Allow unrestricted branch pushes。
Connectors:Routines 创建时默认包含所有已连接的 connectors,移除不需要的以限制访问范围。
环境:每个 Routine 在云端环境中运行,控制网络访问、环境变量和安装脚本。
用量和限制
Routines 消耗订阅用量,与交互式会话相同。另外还有每账号每日运行数上限。在 claude.ai/code/routines 或 claude.ai/settings/usage 查看当前消耗和剩余运行次数。
启用了额外用量(extra usage)的组织,超出每日上限后可继续按量计费运行。否则,直到窗口重置前新运行会被拒绝。在 Settings > Billing 启用额外用量。
相关文档
/loop和会话内调度:在打开的 CLI 会话中调度本地任务- Desktop 定时任务:运行在本机、可访问本地文件的定时任务
- MCP connectors:连接 Slack、Linear、Google Drive 等外部服务
- GitHub Actions:在 CI 流水线中对仓库事件运行 Claude
常见问题
Q: Routines 和 /loop 有什么区别?
A: /loop 是会话内的调度,会话关闭就停止,且只能在你的本机运行。Routines 运行在 Anthropic 云端,关电脑也继续执行,支持定时、API 调用和 GitHub 事件三种触发方式,适合无人值守的自动化场景。
Q: 一个 Routine 可以同时有多个触发器吗?
A: 可以。同一个 Routine 可以同时挂载定时触发器、API 触发器和 GitHub 触发器,任意触发方式都会启动新会话。
Q: Routine 运行的代码改动会直接推到主分支吗?
A: 不会。默认只能推送到 claude/ 前缀的分支,防止误改保护分支。需要开放权限时,在 Routine 设置里为该仓库启用 Allow unrestricted branch pushes。