远程控制与定时任务
本教程共 34 篇 · 第 30 篇 · 更新于 2026-07-26 · 约 9 分钟阅读
30. 远程控制与定时任务
本节目标:学会用 Remote Control 从手机或浏览器远程操控本地 Claude Code 会话,用 Routines 在云端跑定时任务,用 /loop 在会话里轮询状态,搞清楚三种方式怎么选。
三种「让 Claude 自己动起来」的方式
前面几章你都是坐在电脑前盯 Claude 干活。但现实里,你可能:下班了想用手机继续指挥它;想让它在每天早上自动审查 PR;想在会话里让它每隔 5 分钟看一眼部署好了没。
Claude Code 给了三条路解决这些场景,先一张表帮你分清:
| Remote Control | Routines | /loop | |
|---|---|---|---|
| 跑在哪 | 你的机器(CLI 或 VS Code) | Anthropic 云端 | 你的机器(当前会话) |
| 要不要机器开着 | 要 | 不要 | 要 |
| 要不要会话开着 | 要 | 不要 | 要 |
| 能访问本地文件 | 能 | 不能(云端重新克隆) | 能 |
| 最小间隔 | 实时 | 1 小时 | 1 分钟 |
一句话选型:想从别的设备继续指挥当前会话用 Remote Control;想让任务在云端定时无人值守跑用 Routines;想在当前会话里快速轮询用 /loop。
Remote Control:从手机控制本地会话
Remote Control 处于研究预览阶段,在 Pro、Max、Team、Enterprise 计划都可用。它把 claude.ai/code 或 Claude 手机 App 连到你机器上跑的 Claude Code 会话。
打个比方:你办公桌上开了个 Claude 会话在跑活,Remote Control 就是给这个会话开了个「远程窗口」,你躺沙发上用手机也能接着发指令。代码执行和文件访问都还在你本地,手机只是个遥控器。
启动方式
三种启动姿势:
服务器模式,专门当远程服务跑:
claude remote-control
进程在终端里以服务器模式待命,显示一个会话 URL,按空格还能出二维码。想给会话起名就加 --name:
claude remote-control --name "我的项目"
服务器模式支持多会话,默认最多 32 个并发。可以用 --spawn worktree 让每个会话有独立 git worktree,避免改同一份文件打架。
交互式会话,既能在本地敲,也能远程控:
claude --remote-control
从已有会话开启,在会话里敲斜杠命令(Slash Command):
/remote-control
简写 /rc 也行。这会继承当前对话历史,接着干。
NoteRemote Control 需要 claude.ai 订阅登录,不支持 API 密钥。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上不可用。Team 和 Enterprise 上,所有者得先在管理员设置里打开 Remote Control 开关。
从其他设备连接
会话启动后,几种连法:
- 打开会话 URL:在任何浏览器里直接跳到 claude.ai/code 的会话
- 扫二维码:会话 URL 旁边有二维码,扫一下在 Claude App 里打开
- 在 claude.ai/code 或 Claude App 里找:会话列表里按名字找,在线的会话带绿点
连上之后,对话、子代理(Subagent)和工作流的进度在所有设备上同步。你能在手机上发图发文件,Claude Code 会把它下载到你本地当 @ 文件引用。
笔记本睡眠或断网了?机器重新上线时会话自动重连,状态更新会排队等恢复后传。
它和 Web 版的区别
这个容易混。Remote Control 和「网络上的 Claude Code」都用 claude.ai/code 界面,但核心区别是会话跑在哪:
- Remote Control:跑在你机器上,能用你的本地文件、MCP 服务器、项目配置。手机和浏览器只是个窗口
- Web 版:跑在 Anthropic 云端,不用本地设置,能处理你还没克隆的仓库
本地干活干一半想换个设备继续,用 Remote Control。想直接在云端开个新任务、不依赖本地环境,用 Web 版。
安全
你的本地会话只发出站 HTTPS 请求,从不在你机器上开入站端口。所有流量走 Anthropic API 的 TLS 加密。连接用多个短期凭证,每个都限定单一用途、独立过期。
Team 和 Enterprise 还能开「受信任的设备」,要求成员在远程控制前先验证设备(注册 + 18 小时内的登录),用 Face ID、Touch ID、Windows Hello 或通行密钥确认。生物识别在设备本地跑,Anthropic 不收不存指纹或面部数据。
Routines:云端定时任务
Routines(例程)也是研究预览功能。它把一个 Claude Code 配置(提示 + 仓库 + connectors)打包好,在 Anthropic 云端自动跑。你电脑关了它照跑。
每个例程可以挂一个或多个触发器:
- Scheduled(计划):按每小时、每天、工作日、每周等节奏跑,或在未来某个时间跑一次
- API:往例程的 HTTP 端点 POST 一个请求就触发
- GitHub:仓库有 PR 或 Release 事件时自动跑
一个例程能混搭触发器。比如 PR 审查例程可以每晚跑、被部署脚本触发、也对每个新 PR 响应。
NoteRoutines 在启用了 Claude Code on the web 的 Pro、Max、Team、Enterprise 计划上可用。在
claude.ai/code/routines创建管理,或从 CLI 用/schedule。例程跑在云端,没有权限模式选择器,也没有批准提示,完全自主运行。
创建例程
从 Web、桌面应用或 CLI 都能建,三个界面写同一个云账户。
从 Web 建:访问 claude.ai/code/routines,点 New routine,依次填提示、选仓库、选环境、选触发器。提示是重中之重,因为例程自主跑,提示必须自包含,说清干啥、成功长啥样。
从 CLI 建:在会话里跑 /schedule,对话式创建:
/schedule daily PR review at 9am
/schedule tomorrow at 9am, summarize yesterday's merged PRs
Claude 会像聊天一样问你计划、仓库、提示的细节,然后存进你账户。/schedule list 看所有例程,/schedule update 改,/schedule run 立即触发。
TipCLI 的
/schedule只能建计划触发的例程。要加 API 或 GitHub 触发器,得去 Web 上编辑。
API 触发
给例程配个 HTTP 端点,用持有者令牌 POST 一下就触发。适合接警报系统、部署管道、内部工具。
在 Web 上编辑例程,加 API 触发器,复制 URL,点 Generate token 拿令牌(只显示一次,存好)。然后这么调:
curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_xxx/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 字段,传运行特定的上下文(比如告警正文)。成功后返回会话 ID 和 URL,打开就能看 Claude 干了啥。
GitHub 事件触发
仓库有匹配事件时自动跑。支持的事件:
| 事件 | 触发时机 |
|---|---|
| Pull request | PR 被打开、关闭、分配、标记、同步等 |
| Release | 发布被创建、发布、编辑或删除 |
还能加过滤器缩小范围,比如只盯 base branch 是 main、head branch 包含 auth 的 PR。过滤器支持 equals、contains、starts with、matches regex 等运算符。
每个匹配事件开一个独立会话,两个 PR 更新就是两个独立会话。
几个典型用法
- 积压维护:计划触发,每晚读新开的 Issue,打标签、分配负责人、摘要发 Slack
- 警报分类:监控工具超阈值时调 API,例程提取堆栈、关联最近提交、开个带修复建议的草稿 PR
- 定制代码审查:GitHub 触发,新 PR 一开就按你团队的清单审查,留内联注释
- 文档漂移:计划触发,每周扫已合并的 PR,标记引用了已改 API 的文档,开更新 PR
/loop:会话内轮询
/loop 是个内置技能(Skill),在当前会话开着时重复跑提示。最快的方式搞定「每隔一会儿看一眼」的需求。
/loop 的行为看你给了啥:
| 你给的 | 例子 | 发生啥 |
|---|---|---|
| 间隔 + 提示 | /loop 5m check the deploy | 按固定间隔跑 |
| 只给提示 | /loop check the deploy | Claude 自己选间隔跑 |
| 啥都不给 | /loop | 跑内置维护提示 |
固定间隔
给个间隔,Claude 转成 cron 表达式,计划好,告诉你频率和任务 ID:
/loop 5m check if the deployment finished and tell me what happened
间隔可以写在前面(30m)或后面(every 2 hours)。支持 s 秒、m 分、h 小时、d 天。秒会向上取整到分钟,因为 cron 最小粒度是一分钟。
让 Claude 自己选间隔
不给间隔,Claude 每次跑完根据情况动态选个 1 分钟到 1 小时的延迟。构建快好了就等短点,没啥待办了就等长点。选的延迟和原因每次都会打印出来。
/loop check whether CI passed and address any review comments
有时候 Claude 会直接用 Monitor 工具跑后台脚本流式输出,比轮询更省 token、更及时。
内置维护提示
啥都不给,跑内置维护提示。每次按顺序处理:继续对话里的未完活、照顾当前分支的 PR(审查评论、失败 CI、合并冲突)、没别的待办就跑清理(比如错误搜索或简化)。
/loop
裸 /loop 用动态间隔跑。加间隔(/loop 15m)就按固定计划跑。
想用自己的默认提示替代内置的?建个 loop.md 文件。Claude 在两个位置找,找到第一个就用:
| 路径 | 范围 |
|---|---|
.claude/loop.md | 项目级,优先 |
~/.claude/loop.md | 用户级,适用所有项目 |
Check the `release/next` PR. If CI is red, pull the failing job log,
diagnose, and push a minimal fix. If new review comments have arrived,
address each one and resolve the thread. If everything is green and
quiet, say so in one line.
编辑 loop.md 下次迭代就生效。文件超 25000 字节会被截断。
一次性提醒
/loop 是重复跑。只想提醒一次,用自然语言:
remind me at 3pm to push the release branch
in 45 minutes, check whether the integration tests passed
Claude 会用 cron 固定触发时间,跑完就删自己。
停止和管理
想停 /loop,按 Esc 清掉待触发的唤醒。直接问 Claude 也能管任务:
what scheduled tasks do I have?
cancel the deploy check job
底层用的是 CronCreate、CronList、CronDelete 三个工具,每个任务有个 8 字符 ID。一个会话最多存 50 个任务。
限制和选型
几个硬限制
- /loop 是会话范围的:开新对话就清空。
--resume或--continue恢复会话时,7 天内创建的重复任务和未到时间的一次性任务会带回来 - 重复任务 7 天自动过期:跑最后一次然后自删。要更久就用 Routines 或桌面计划任务
- 没有错过的追赶:Claude 忙时错过的触发,变空闲后只补一次,不会每个错过的间隔都补
- Remote Control 要本地进程活着:关终端、退 VS Code、停
claude进程,会话就结束 - 网络中断超 10 分钟:Remote Control 会话超时退出,得重新启动
桌面计划任务
除了上面三种,还有个桌面应用里的计划任务(Desktop scheduled tasks)。它跑在你机器上,能访问本地文件和工具,机器关了就不跑。适合需要本地文件但又要定时跑的活,比如每天检查未提交的改动。在桌面应用侧边栏的 Routines 里选 Local 就能建。
怎么选
最后给个决策树:
- 要机器关了也跑 → Routines(云端)
- 要访问本地文件 + 定时跑 → 桌面计划任务(机器得开着)
- 会话开着时快速轮询 → /loop
- 想从手机/浏览器继续当前会话 → Remote Control
- 要响应外部事件(CI 失败、聊天消息) -> Channels(第 19 章提过的 MCP 频道,本节不展开,知道有这东西就行)
- 要响应 GitHub 仓库事件 → Routines 的 GitHub 触发器,或 GitHub Actions
记住一条:越是「无人值守」的场景,提示越要写清楚成功长啥样、结果往哪发。任务自己跑,没法反问你。