1. Windows 上同时跑 OpenClaw 和 Claude Code,Key 到底该怎么管
如果你在 Windows 上同时用 OpenClaw 和 Claude Code,大概率会遇到一个很烦的问题:两个工具各有一套配置文件,各写一份 API Key,改一次模型要改两个地方,换一次 Key 要翻两个目录。时间一长,自己都记不清哪个文件里写的是哪套配置。
这篇就聚焦一件事:在 Windows 环境下把 OpenClaw 和 Claude Code 都部署起来,并且用 TaoToken 的统一 Key 把两个工具的模型接入收敛到一处。OpenClaw 是一个可以本地起服务、通过端口对外提供能力的智能体工具,Claude Code 是 Anthropic 官方的命令行编码助手,两者都支持自定义ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY,这正是统一 Key 能落地的关键。
适合谁看:已经在 Windows 上装过 Node.js、想一次把两个工具配好的人;被多份 Key 分散管理折腾过、想收敛配置的人;以及想用一套 Key 同时驱动对话和编码两类场景的人。下面从环境准备讲到可复制的配置骨架,再到启动验证和排障,尽量做到照着敲就能跑通。
2. 前置准备:Node.js、PowerShell 策略与 TaoToken Key
2.1 Node.js 版本与 PowerShell 执行策略
两个工具都依赖 Node.js,先确认版本。打开 PowerShell:
node --version npm --version版本低于 v18 就升级。Windows 上最省事的是去 Node.js 官网下 LTS 安装包,一路默认即可。装完重开一个 PowerShell 窗口再验证一次,避免 PATH 没刷新。
接着处理执行策略。很多脚本被拦是因为策略是 Restricted:
Get-ExecutionPolicy如果显示Restricted,改成 RemoteSigned:
Set-ExecutionPolicy RemoteSigned提示确认时输入Y。这一步只影响本机脚本执行,属于常规开发环境设置。
2.2 npm 镜像源配置
国内直连官方源偶尔会慢,可以先切镜像:
npm config set strict-ssl false npm config set registry https://registry.npmmirror.com/ npm cache clean -f如果某个镜像抽风,换一个再试即可,华为、清华的镜像都能用。镜像只是加速下载,不影响后面 Key 的配置。
2.3 拿到 TaoToken 的统一 Key
统一 Key 的意义在于:OpenClaw 和 Claude Code 都指向同一个入口,Key 只维护一份。到 TaoToken 控制台创建 API Key:
- 控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=console
- API Key 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=api-keys
创建后复制那串sk-开头的 Key,先存到记事本里,后面两个配置文件都要用。接口基址统一用https://taotoken.net/api,注意这个地址后面不加任何查询参数。
注意:Key 属于敏感凭据,不要提交到 Git 仓库,也不要在截图里露出完整字符串。
3. 安装 OpenClaw 与 Claude Code
3.1 安装 Claude Code
npm install -g @anthropic-ai/claude-code --verbose claude --version能打印出版本号就说明装好了。第一次运行claude会走一次登录流程,这一步先别急着配 Key,让它把目录结构生成出来。
3.2 安装 OpenClaw
npm install -g openclaw npm install -g openclaw@latest openclaw --version正常会输出类似OpenClaw 2026.3.13 (61d171a)的版本信息。如果命令找不到,检查 npm 全局 bin 目录是否在 PATH 里,可以用npm config get prefix看路径。
3.3 放行 OpenClaw 的本地端口
OpenClaw 本地服务默认监听 18789,Windows 防火墙默认会拦。加一条入站规则:
New-NetFirewallRule -DisplayName "Allow 18789" -Direction Inbound -Protocol TCP -LocalPort 18789 -Action Allow Get-NetFirewallRule -DisplayName "Allow 18789"不需要时删掉:
Remove-NetFirewallRule -DisplayName "Allow 18789"4. 可复制配置:settings.json 与 config.toml 骨架
4.1 Claude Code 的 settings.json
先让 Claude Code 生成配置目录。第一次运行claude登录失败是正常的,它会在用户目录生成C:\Users\用户名\.claude.json。打开这个文件,加上一行:
"hasCompletedOnboarding": true,再次运行claude,会生成C:\Users\用户名\.claude\目录。这时退出,编辑或新建C:\Users\用户名\.claude\settings.json,把下面这份骨架填上你的 TaoToken Key:
{ "env": { "ANTHROPIC_API_KEY": "sk-你的TaoToken Key", "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_MODEL": "claude-sonnet-4-5", "API_TIMEOUT_MS": "3000000", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1" }, "includeCoAuthoredBy": false, "permissions": { "allow": [], "deny": [] }, "alwaysThinkingEnabled": false }几个字段说明:ANTHROPIC_BASE_URL指向 TaoToken 的 API 入口,ANTHROPIC_API_KEY填统一 Key,ANTHROPIC_MODEL按你实际要用的模型名填。API_TIMEOUT_MS给大一点,长任务不容易被掐断。
4.2 OpenClaw 的 config.toml
OpenClaw 的配置走 TOML。找到它的配置目录(一般在用户目录下的.openclaw或安装目录的config下),编辑config.toml:
[model] provider = "anthropic" base_url = "https://taotoken.net/api" api_key = "sk-你的TaoToken Key" model = "claude-sonnet-4-5" timeout_ms = 3000000 [server] host = "127.0.0.1" port = 18789这里同样把base_url指向 TaoToken,api_key用同一把 Key。两个工具共用一份凭据,以后换 Key 只改这两处,或者干脆用环境变量注入。
4.3 用环境变量进一步收敛
如果不想把 Key 写死在文件里,可以在 PowerShell 里设用户级环境变量:
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-你的TaoToken Key", "User") [Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://taotoken.net/api", "User")设完重开终端。这样两个工具都能读到同一份环境变量,配置文件里对应字段可以留空或删掉。
5. 启动验证与连通性检查
5.1 验证 Claude Code
在项目目录下运行:
claude看到欢迎界面,底部显示当前模型名,就说明配置生效了。随便输入一句hi,能正常回复即打通。如果界面里模型名还是默认值,说明settings.json没被读到,检查文件路径和 JSON 格式。
5.2 验证 OpenClaw
openclaw --version openclaw start启动后确认 18789 端口在监听:
netstat -ano | findstr 18789再用一条请求测连通性:
curl http://127.0.0.1:18789/health返回正常状态码就说明服务起来了。如果连不上,先看防火墙规则是否生效,再看config.toml里的 host 和 port 是否和实际监听一致。
5.3 直接测 TaoToken 接口
想确认 Key 本身没问题,可以绕过工具直接打接口:
curl -X POST https://taotoken.net/api/v1/messages ` -H "x-api-key: sk-你的TaoToken Key" ` -H "anthropic-version: 2023-06-01" ` -H "content-type: application/json" ` -d '{\"model\":\"claude-sonnet-4-5\",\"max_tokens\":64,\"messages\":[{\"role\":\"user\",\"content\":\"ping\"}]}'能返回内容就说明 Key 和基址都对,问题只可能在工具侧配置。想先在网页上试模型,可以用模型对话入口:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=model-chat
6. 本篇常见错排查
6.1 claude 命令找不到
多半是 npm 全局目录不在 PATH。用npm config get prefix拿到路径,把它加进系统环境变量,重开终端。
6.2 登录一直失败或卡住
先确认.claude.json里加了"hasCompletedOnboarding": true。如果还是卡,检查settings.json的 JSON 是否合法,多一个逗号都会导致解析失败。可以用在线 JSON 校验工具过一遍。
6.3 报 TLS 或证书错误
部分环境需要临时放宽校验,可以在settings.json的env里加:
"NODE_TLS_REJECT_UNAUTHORIZED": "0"这只建议在本地开发环境用,正式环境还是走正常证书链。
6.4 OpenClaw 端口连不上
按顺序查:服务是否真的在跑(openclaw start有没有报错)、netstat有没有 18789、防火墙规则在不在、config.toml的 host 是不是127.0.0.1而外部访问需要改成0.0.0.0。四个都过一遍基本能定位。
6.5 两个工具模型名不一致
统一 Key 不代表模型名也统一。settings.json和config.toml里的model字段要各自填对,写错模型名会直接报错。建议两边先用同一个模型名跑通,再按需分开。
6.6 长任务中途断开
把API_TIMEOUT_MS和timeout_ms都调大,比如 3000000。默认值偏短,跑大文件分析时容易被截断。
7. 把配置沉淀成可复用流程
两个工具都跑通之后,建议把配置抽成一份可复用的模板:Key 走环境变量,模型名和基址写进各自的配置文件,换机器时只改环境变量。这样 OpenClaw 和 Claude Code 的接入就真正收敛到一处了。
如果你后面要长期跑编码任务或 Agent 流程,可以看下 Coding Plan,把额度规划好:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=coding-plan
接入细节和字段说明以官方文档为准:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=doc
最后留一个我踩过的坑:改完settings.json后一定要完全退出 Claude Code 再重开,它不会热加载配置,很多人以为没生效其实是进程还挂着旧配置。