1. 为什么需要 Remote Control 续接本地会话
Claude Code 最舒服的地方,是它活在本地工程现场:能读文件系统、能跑测试脚本、能加载项目里的 CLAUDE.md、能接 MCP servers,也能基于当前分支和工作区状态做增量修改。但这也带来一个尴尬的断点——人一旦离开工位,这段会话就被锁在那台机器上。手机里打开的 Claude 只是另一个对话入口,拿不到本地上下文,也接管不了正在跑的 agent loop。
Remote Control 解决的正是这个断点。它把手机、平板、浏览器变成一段本机 Claude Code session 的远程窗口,执行仍然发生在本地,远端只是输入输出界面。官方要求 Claude Code 版本至少 v2.1.51,可以用claude --version先确认。Team 和 Enterprise 计划默认关闭,需要 Owner 在 admin settings 里打开 Remote Control 开关。
这篇聚焦一个具体问题:怎么用统一的 Key/API 通道把 Remote Control 配起来,让本地会话能在手机和浏览器之间续接。核心交付物是一份可复制的settings.json骨架,加上几步连通性验证。适合已经在本地用 Claude Code 开工、临时要离开终端、又不想丢上下文的开发者。
2. TaoToken 前置:统一 Key 与 API 通道
Remote Control 本身走的是 Anthropic 的会话同步通道,但 Claude Code 在本地调用模型时,需要有一个稳定的 API 入口。把模型请求统一收敛到 TaoToken 的 API 通道,好处是 Key 只有一份、计费口径统一、切换模型时不用改一堆环境变量。官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 基址是 https://taotoken.net/api 。
需要先拿到 API Key。登录后进控制台,在 API Keys 页面创建一个新 Key,复制出来只显示一次,先存到本地密码管理器里。这个 Key 后面会写进settings.json的 env 段,或者通过环境变量注入。如果你还没建过 Key,直接走这个入口:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite 。
有一点要提前说清楚:TaoToken 在这里承担的是模型 API 通道的角色,不是把本地项目搬到云端。Remote Control 的 agent loop 仍然在你本机跑,文件读写、命令执行、MCP 调用都在本地完成。TaoToken 只负责模型请求这一段,两者职责不重叠。
3. 可复制的 settings.json 配置骨架
Claude Code 的配置分几层:用户级在~/.claude/settings.json,项目级在项目根目录的.claude/settings.json。Remote Control 相关的开关和 API 通道建议放在用户级,项目级只保留项目特有的权限和 hooks。下面是一份可以直接改的骨架。
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你的TaoTokenKey", "ANTHROPIC_MODEL": "claude-sonnet-4-5", "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-5" }, "permissions": { "allow": [ "Bash(git status)", "Bash(git diff:*)", "Bash(npm run test:*)", "Read(//Users/you/project/**)" ], "deny": [ "Bash(rm -rf:*)", "Bash(curl:* | sh)" ] }, "remoteControl": { "enabled": true, "spawnMode": "worktree", "capacity": 4, "sessionNamePrefix": "rc" } }几个字段说明一下。ANTHROPIC_BASE_URL指向 TaoToken 的 API 基址,注意不要带 UTM 参数,API 调用只需要干净的基址。ANTHROPIC_AUTH_TOKEN填你刚创建的 Key,如果不想把 Key 写进文件,可以留空,改用 shell 里的export ANTHROPIC_AUTH_TOKEN=...,Claude Code 会优先读环境变量。
remoteControl.spawnMode建议设成worktree。默认的same-dir会让多个 session 共用当前工作目录,并行改同一批文件时冲突概率很高。worktree 模式给每个按需创建的 session 分配独立 git worktree,最后人工审 diff 再合并,风险低很多。capacity是最大并发 session 数,默认 32,个人开发设 4 到 8 就够。
permissions.deny这一段别省。Remote Control 让远端设备能触发本地命令,把rm -rf、管道执行远程脚本这类高危操作显式拒掉,是成本最低的一道防线。
4. 验证请求与成功结果
配置写完,先做三层验证,从模型通道到 Remote Control 逐层确认。
第一层,确认 Key 和 API 通道通。在终端里直接发一个最小请求:
curl -s https://taotoken.net/api/v1/messages \ -H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "claude-sonnet-4-5", "max_tokens": 64, "messages": [{"role": "user", "content": "reply with ok"}] }'返回体里能看到content数组和一段文本,说明 Key 和通道都正常。如果返回 401,检查 Key 是否复制完整;返回 404,检查 base URL 有没有多写路径。
第二层,确认 Claude Code 读到了配置。进项目目录跑:
claude --version claude config get env.ANTHROPIC_BASE_URL版本要 ≥ v2.1.51,base URL 应该回显https://taotoken.net/api。如果回显为空,说明 settings.json 没被加载,检查文件路径和 JSON 语法,用python -m json.tool ~/.claude/settings.json快速验一下格式。
第三层,启动 Remote Control 并确认 session URL 生成。在项目目录里运行:
claude remote-control --name rc-demo终端会打印一个 session URL,按空格还能显示 QR code。手机用 Claude app 扫码,或者浏览器打开 claude.ai/code 输入 URL,能看到同一个 conversation。此时在手机端发一句@触发文件补全,如果弹出的路径是本机项目里的真实文件,说明远端已经接上了本地工程现场。
想验证附件链路,可以在手机端发一张截图,不带 caption 也行(v2.1.202 之后不会丢)。回到终端看 Claude Code 是否把它下载成本地文件并以@引用形式带进上下文。这一步通了,UI 排查场景就能跑起来。
5. 本篇常见错排查
session URL 生成了但手机连不上。先确认本机进程还在跑,Remote Control 依赖本地 process 存活,关掉终端或退出 VS Code 会话就结束。再看网络,机器保持唤醒但断网超过约 10 分钟,session 会 timeout 并退出进程。公司网络如果对 outbound HTTPS 有拦截,也会导致注册失败,这种情况找网络管理员确认放行。
手机端@补全不出来本地文件。大概率是启动 Remote Control 时的工作目录不对。claude remote-control必须在项目根目录执行,它注册的是当前工作目录的文件索引。如果你在 home 目录启动,补全出来的就是 home 下的文件。
多个 session 改同一批文件冲突。检查spawnMode是不是还在默认的same-dir。改成worktree后,每个 session 有独立 checkout,冲突会消失。另外capacity别设太大,个人机器上并发 session 太多会拖慢 git worktree 的创建和磁盘占用。
模型请求 401 或 403。先确认ANTHROPIC_AUTH_TOKEN没有多余空格或换行,JSON 里字符串不能带尾随空格。如果 Key 是从网页复制的,注意别把前后引号一起粘进去。环境变量和 settings.json 同时存在时,环境变量优先,排查时先echo $ANTHROPIC_AUTH_TOKEN看一眼。
Remote Control 和 ultraplan 冲突。两者都占用 claude.ai/code 界面,同一时间只能连一个。如果你之前开过 ultraplan,先关掉再启动 Remote Control。
VS Code 里/rc没反应。VS Code extension 这条路径要求 Claude Code v2.1.79 或更高版本,低于这个版本只能用 CLI 启动。升级后重启 VS Code 窗口再试。
6. 把会话续接变成日常习惯
配置跑通之后,真正影响体验的是使用习惯。我自己的做法是:涉及大规模文件修改、数据库迁移脚本、权限敏感命令时,仍然回到终端审查;手机端更适合补方向、看进度、发截图、批准低风险下一步、接收长任务完成通知。mobile push notifications 需要 v2.1.110 或更高版本,Claude 通常会在长任务结束或需要人工决策时推送,也可以在 prompt 里明确要求测试结束后通知。
session 命名别偷懒。用--name或者交互式启动时传名称,多个项目并行时能避免误进错误 session。团队环境里,Remote Control 的开关和设备信任交给组织策略,Team 和 Enterprise 默认关闭是合理起点,等安全团队确认账号、设备、网络、日志、数据保留策略都能接受再启用。
如果你还没建 Key,从这里开始:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite 。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,里面有各语言 SDK 的调用示例。想先在网页里验证模型通道是否正常,用模型对话入口 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite 发一条消息最快。长期跑编码任务、需要多 session 并发的,看 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite 。