1. 被推到 API Key 的开发者,这次要面对的是通道问题
Anthropic 上线 Claude Code Ultraplan 的同一天,给 Pro 和 Max 订阅用户发了通知:禁止在 OpenClaw 等第三方工具里使用订阅,建议转向按需付费或者 API Key。我的处理方式是先去 TaoToken 拿 Key——打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 注册并创建 API Key,再把 Claude Code 的 Base URL 指到 https://taotoken.net/api。跑 /ultraplan 时,云端规划的模型请求统一走 TaoToken,用量也集中在同一把 Key 下,不用再纠结官方订阅能不能用在第三方工具上。
以前跑 Claude Code 的重构任务,最折磨人的不是模型想不出方案,而是它一旦进入长时间规划,本地终端就会被一个进程死死占住。你在窄窗口里盯着进度条,既不敢 Ctrl+C,也没法顺手改旁边文件的 bug,只能干等。Ultraplan 把这段“脑暴”外包给云端:CLI 只负责发起任务,云端会话在后台写方案,浏览器里审阅草稿,最后再决定把执行权拿回终端还是直接云端提 PR。终端被释放出来,这才是这个模式最直观的体感变化,也意味着“规划”和“执行”第一次真正解耦。
但这件事真正给开发者的提醒不是“多了个新命令”,而是:Key 从哪来、请求往哪走,已经成了能不能稳定用云端规划的前提。订阅和第三方工具的组合正在被官方收口,API Key 才是长期路径。先把通道配稳,再谈 Ultraplan 怎么用,才不会在真正需要它的时候被 401 或模型 ID 报错打断。
2. Ultraplan 的规划流程,和你熟悉的终端模式有什么不同
Ultraplan 本质上是一个“接力系统”:终端发起,云端规划,浏览器审阅,选择执行地点。当你在 CLI 里输入 /ultraplan 加需求,Claude Code 会把任务塞给一个处于计划模式的 Web 会话,云端开始在后台写方案,你的终端立即恢复可用。等方案成型,浏览器里会展开一个接近产品文档级别的计划页面,支持行内评论、表情反馈、侧边大纲跳转,你可以反复要求它修改局部,直到计划满意为止。
之前的本地规划是“一个人在终端里硬想”:所有上下文都挤在一个会话里,工具调用、文件读取、命令执行全都串行。Ultraplan 把“想方案”的环节单独拆了出去,规划完成后再把结果送回原来的环境。你可以把它理解成:把需求丢给顾问团队做方案,自己先处理别的工单,等方案回来再决定是自己动手还是让顾问直接把活干完。
注意几个硬性门槛。项目必须托管在 GitHub 上,Ultraplan 的云端会话要通过 GitHub 才能“摸到”你的代码。如果项目还躺在本地,/ultraplan 不会响应。Remote Control 模式和它会冲突,开启 Ultraplan 时会被自动断开,因为两者占用同一条云端通道,一山不容二虎。另外要留一个预期:Ultraplan 目前还是 Research Preview,Claude Code 后续肯定还会调整,但“CLI 发起、云端规划、浏览器审阅”的工作流已经定下来了,现在摸熟这套流程并不亏。
3. 跑 /ultraplan 前,先确认 GitHub 仓库与 TaoToken Key 就位
跑 Ultraplan 的第一个硬性条件是项目必须在 GitHub 上。如果你的项目还没推上去,先在本地把仓库初始化干净,再创建一个远程仓库并推送。最省事的方式是直接用 gh 命令一气呵成:
git init git add . git commit -m "Initial commit" gh repo create ultraplan-test --public --source=. --push如果不想用 gh,或者仓库已经在 GitHub 上建好了,只是本地还没有关联远程地址,那手动关联三步也可以:
git remote add origin https://github.com/你的用户名/你的仓库名.git git branch -M main git push -u origin main项目推上去之后,还需要一把能走通 Anthropic 兼容接口的 API Key。打开 TaoToken,注册登录后在控制台创建 Key,复制保存。之后无论是 Claude Code 的环境变量,还是 /ultraplan 云端会话产生的模型请求,都统一走这把 Key,用量也集中在同一把 Key 下。官方这次的动作,本质上是把“订阅跑第三方工具”这条路收窄了,同时引导开发者走 API Key。用 TaoToken 作为兼容通道,Key 从你自己账户里签发,属于标准接入方式,不涉及订阅共享,也就不会踩到官方的限制红线。
4. settings.json 里把 Claude Code 指到 TaoToken
Claude Code 最省事的改法是配置 ~/.claude/settings.json 里的 env 字段。没有这个文件就手动建一个:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY", "ANTHROPIC_MODEL": "YOUR_MODEL_ID" } }注意区分两个地址:浏览器里注册、建 Key、看用量,去 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ;填进工具的 Base URL 只写 https://taotoken.net/api,末尾不要加 /v1。Claude Code 会在请求时自动拼上 /v1/messages,如果你画蛇添足写了 /v1,实际路径就变成 /v1/v1,直接 404。
模型 ID 写什么?以模型广场当时列表为准。不要凭记忆填一个旧版名称,同一个 Base URL 下模型列表会随上游调整,选择模型广场里正显示的那个 ID 最稳。YOUR_API_KEY 对应的真实值,在 TaoToken 控制台创建,创建后尽量一次复制完整,避免换行或空格混进去。配置里不要加注释,JSON 文件不允许注释,用文本编辑器打开后直接替换占位符即可。
如果你不想改全局配置文件,也可以用环境变量。这种方式适合临时切换不同通道,不会动到全局默认设置,但要注意每次新开终端都要重新 export,或者把它写进 shell 的 rc 文件里。下面这段可以直接贴进 ~/.bashrc 或 ~/.zshrc,再 source 一次即可生效:
export ANTHROPIC_BASE_URL=https://taotoken.net/api export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY export ANTHROPIC_MODEL=YOUR_MODEL_ID环境变量的优先级和 settings.json 相同,两者都设置时以环境变量为准。如果改了 settings.json 后 claude 行为没变,先检查 shell 里是否残留旧的 ANTHROPIC_* 变量。
如果你更习惯先不打开编辑器验证通道,也可以用 TaoToken 官方 CLI 直接发一条消息。CLI 会把刚才设置的 Base URL 和 Key 用起来,适合快速判断配置是否生效。安装后运行下面的命令,如果能收到模型回复,就说明 YOUR_API_KEY 和 Base URL 这一对组合没问题;如果报错,也能把问题缩小到 Key 或网络通道上:
npm install -g @taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m YOUR_MODEL_ID命令里的 -u 参数同样只写 https://taotoken.net/api,不要带页面链接的参数,也不要加 /v1。模型 ID 用你在模型广场看到的那一个,别猜旧版本号。
5. 三种召唤方式,终端释放后的体感变化
Ultraplan 的召唤方式有三种:指令召唤、关键词触发、本地顺移。第一种最直接,适合你明确知道要把某个复杂需求丢到云端规划的情况;第二种适合你还没想清楚要不要用 Ultraplan,只是顺手在 prompt 里提到这个词,Claude Code 会自己判断并弹出确认框;第三种最顺滑,适合本地规划已经走完、你只想切换去云端继续细化的情况。三种入口最终都是把任务移交给云端会话,区别只在于你是主动发起,还是被动接住。
- 指令召唤:直接输入 /ultraplan 加需求,例如 /ultraplan add authentication to the API。
- 关键词触发:在普通 prompt 里任意位置塞入 ultraplan 这个词。
- 本地顺移:当 Claude 完成本地规划并跳出确认框时,选择 “No, refine with Ultraplan on Claude Code on the web”。
前两种方式启动前会跳确认框,按回车选择 “Run ultraplan”,CLI 会给出一个能在网页版打开的专属 URL。云端会话开启后,终端显示进度条,但此时终端是完全自由的。你可以继续跑别的命令、改别的 bug、甚至去楼下买杯咖啡。
这个“终端不被占死”的体验,比字面上看起来重要得多。以前本地规划时,你只能等;现在你可以把规划丢出去,回头在处理代码审查或者其他 bug 时,云端已经把方案写完了。真正要适应的不是新命令,而是“规划”和“执行”的解耦:在窄终端里发号施令,在宽网页里审阅方案,执行权始终握在手里。想看进度,输入 /tasks 选择对应条目,能看到会话链接、代理活动、停止任务按钮。一旦喊停,云端会话会被自动归档,指示器消失,不会在终端留下垃圾。
6. 浏览器里审阅计划,拍板时选云端还是本地
网页版计划页面提供了比终端舒服得多的审阅方式。行内评论可以把意见直接挂在计划的某一行,哪里不爽点哪里,Claude 会针对那一部分重新生成草案。表情反馈不用打字就能表达态度,满意的点个赞,有坑的打个叉。侧边大纲让几千行的计划也能瞬间定位,不用在滚动条里迷路。
方案定稿后,有两条路可以走。这两条路的区别不只是执行地点,还关系到你接下来怎么验证改动:云端执行会直接产出 PR,适合代码改动不依赖本地环境的仓库;传回终端则保留了你自己的调试习惯,适合需要逐步验证、反复跑测试的改动。选之前先想清楚你在哪个环境里能最快确认结果。
- 云端暴力流:点击 “Approve Claude’s plan and start coding”,Claude 在云端直接撸代码,然后给你提一个 Pull Request。适合项目已经在 GitHub 上、你只需要结果、审查 PR 时再提意见的情况。
- 瞬间传送流:点击 “Approve plan and teleport back to terminal”,计划弹回终端,给你三个选项。在此执行(Implement here)会把代码直接注入当前会话;开启新会话(Start new session)清空上下文,带着计划重新出发;取消(Cancel)则只把计划存成文件,以后再说。
我自己的习惯是:涉及多文件的大重构,先传回终端逐步执行,因为调试、验证、和现有代码的交互都需要本地环境;想要快速产出方案模板,则直接云端跑完提 PR。Ultraplan 最值得用的场景就是这类“终端装不下的大工程”:涉及多个文件的复杂重构、项目已经托管在 GitHub、你想动手前反复打磨方案、受够了规划时终端被占用。反之,如果只是改个函数或者调个样式,在终端里直接让 Claude 改完就行,没必要兴师动众开云端计划。
7. 跑一次 Ultraplan,去控制台对一下用量
第一次跑通 /ultraplan 后,建议先回到 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的控制台,看刚才那次云端规划是否记上了账。重点确认三件事:模型 ID 和你在 settings.json 里填的是不是同一个、token 消耗量级是否符合预期、有没有异常的高频请求。云端规划的长会话比普通对话费 token,这是正常现象,但要确认没有因为配置错误产生重复请求。
如果 Key 还没创建完整,或者想先验证配置再开任务,可以在 TaoToken 模型对话 里用同一把 Key 发一条测试消息,确认模型 ID 和 Base URL 没填错。长期跑 Ultraplan 这种重规划任务,token 消耗不会小,建议顺手打开 Coding Plan 看套餐是否够用;Key 的统一管理入口在 控制台 API Keys,环境变量的完整对照见 Claude Code 接入文档。
8. 报错对照:401、404、/v1 拼错、GitHub 没推
跑 Ultraplan 时遇到报错不用慌,多数问题集中在 Key、模型 ID、Base URL 和仓库状态这四个点上。下面按报错现象逐个对照处理。每改完一项,都先重启 claude 进程再重试,不要攒着好几个改动一起验证,否则出了问题不好定位。
401 Unauthorized:Key 对不上。检查 ~/.claude/settings.json 中 ANTHROPIC_AUTH_TOKEN 是否是你从 TaoToken 控制台完整复制的那一串,中间不要有换行或空格。如果刚才从控制台复制时漏了字符,重新打开控制台复制一次。
404 Not Found / Model not found:模型 ID 过期或不存在。返回模型广场看当前列表里实际显示的是什么,再回到 settings.json 修改 ANTHROPIC_MODEL。同一个 Base URL 下模型名会随上游更新,所以自己填旧的名称即使看着眼熟,也可能已经失效。
/v1/v1 路径错误:Base URL 写错。把 ANTHROPIC_BASE_URL 改回 https://taotoken.net/api,不要在末尾加 /v1。Claude Code 会自动补路径,多加一节反而拼出无效地址。
Ultraplan 没反应:项目不在 GitHub 上,或者 Remote Control 模式占用了通道。先把代码推到 GitHub 再重试 /ultraplan;如果开启了 Remote Control,也要先关掉,两者的云端通道互斥。
改完配置记得重启 claude 进程。settings.json 里改 env,需要退出重进才生效;用环境变量的方式,也要重新 source 或开新终端。排查完再跑一次 /ultraplan,云端会话开始滚动状态的时候,说明这次配置是真的通了。