news 2026/4/24 5:57:52

CLIProxyAPI+OpenCode:解决opencode在Windows端认证失败的问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CLIProxyAPI+OpenCode:解决opencode在Windows端认证失败的问题

适用场景:你想在 Windows 原生环境下使用 OpenCode,但当前 OpenCode 里直接走 GPT/ChatGPT 网页登录不稳定、不可用,或者你希望把 GPT 网页 OAuth 登录转换成本地 OpenAI-compatible API,再交给 OpenCode 使用。

一、核心思路

OpenCode 正常使用 OpenAI 模型时,最像官方体验的方式是:仍然使用 OpenCode 内置的openaiprovider,只把 OpenAI 的baseURL改成本机 CLIProxyAPI 地址,并把apiKey改成本机 CLIProxyAPI 的本地访问密钥。

也就是说,OpenCode 看到的是:

OpenCode -> OpenAI-compatible API: http://127.0.0.1:8317/v1

实际请求链路是:

OpenCode -> CLIProxyAPI 本地服务 -> CLIProxyAPI 使用你网页登录得到的 Codex/GPT OAuth 凭据 -> 上游 OpenAI/Codex 模型

这里要注意一个关键点:OpenCode 不直接拿你的 GPT 网页登录态。OpenCode 只拿一个本地cliproxyapi-...API Key;真正的 GPT 网页 OAuth 凭据由 CLIProxyAPI 保存和刷新。

二、为什么不用“自定义 provider”

OpenCode 支持 OpenAI-compatible 自定义 provider,但如果这里新建一个cliproxyapiprovider,很容易丢掉 OpenCode 内置 OpenAI 模型元数据,尤其是 GPT 系列的 reasoning variants。

为了尽量贴近官方 OpenAI API Key 体验,推荐做法是:

  • 保留 OpenCode 内置openaiprovider。
  • 只覆盖openai.options.baseURL
  • 只覆盖openai.options.apiKey
  • 不要手动覆盖openai.models.gpt-5.4

这样 OpenCode 仍然知道gpt-5.4gpt-5.4-mini等模型的内置 variants,可以继续用Ctrl+T切换思考强度。

三、准备环境

本文使用 Windows 原生环境,不使用 Ubuntu / WSL。

需要准备:

  • Windows 10/11
  • PowerShell 或 Windows Terminal
  • Node.js / npm
  • OpenCode
  • CLIProxyAPI Windows 可执行文件
  • 可网页登录的 GPT / ChatGPT / Codex 账号

安装 OpenCode:

npm install-g opencode-ai opencode--version

CLIProxyAPI 可以从GitHub项目 Release 下载 Windows 版本,放到一个固定目录,例如:

C:\Users\<你的用户名>\AppData\Local\Programs\CLIProxyAPI\cli-proxy-api.exe

如果你希望命令行里直接输入cli-proxy-api,可以把所在目录加入 PATH,或者创建一个cli-proxy-api.cmd包装脚本。

四、创建 CLIProxyAPI 配置

建议把配置放在用户目录:

C:\Users\<你的用户名>\.cli-proxy-api\config.yaml

PowerShell 生成一个本地访问密钥:

$dir="$env:USERPROFILE\.cli-proxy-api"New-Item-ItemType Directory-Force$dir|Out-Null$key="cliproxyapi-"+[guid]::NewGuid().ToString("N")Set-Content-Path"$dir\opencode-api-key.txt"-Value$key-NoNewline$key

上面输出的cliproxyapi-...是给 OpenCode 访问本机 CLIProxyAPI 用的本地密钥,不是 OpenAI 官方 API Key,不要提交到 Git 仓库。

创建config.yaml

host:"127.0.0.1"port:8317auth-dir:"C:/Users/<你的用户名>/.cli-proxy-api"api-keys:-"cliproxyapi-替换成你刚才生成的本地密钥"request-retry:3quota-exceeded:switch-project:trueswitch-preview-model:truestreaming:keepalive-seconds:15bootstrap-retries:1

说明:

  • host: "127.0.0.1"表示只监听本机,更安全。
  • port: 8317是 CLIProxyAPI 默认常用端口。
  • api-keys是客户端访问 CLIProxyAPI 的本地鉴权。
  • auth-dir用来保存 OAuth 登录凭据。
  • Windows 路径建议在 YAML 里使用/,避免反斜杠转义问题。

五、网页登录 GPT / Codex OAuth

执行:

cli-proxy-api-config"$env:USERPROFILE\.cli-proxy-api\config.yaml"--codex-login

正常情况下会自动打开浏览器。登录你的 GPT / ChatGPT / Codex 账号后,浏览器会回调本机地址,CLIProxyAPI 终端里会显示认证成功,并把凭据保存到:

C:\Users\<你的用户名>\.cli-proxy-api\

如果浏览器没有自动打开,可以用:

cli-proxy-api-config"$env:USERPROFILE\.cli-proxy-api\config.yaml"--codex-login--no-browser

然后手动复制终端里的登录链接到浏览器。

六、启动 CLIProxyAPI 服务

登录完成后,启动本机 API 服务:

cli-proxy-api-config"$env:USERPROFILE\.cli-proxy-api\config.yaml"

看到类似下面的输出就说明启动成功:

API server started successfully on: 127.0.0.1:8317

不要关闭这个窗口。OpenCode 后续请求都要通过这个本地服务。

可以用 PowerShell 验证模型列表:

$k=Get-Content"$env:USERPROFILE\.cli-proxy-api\opencode-api-key.txt"-Raw$h= @{Authorization ="Bearer$k"}Invoke-RestMethod-Uri"http://127.0.0.1:8317/v1/models"-Headers$h

注意:这里返回的模型才是你当前账号通过 CLIProxyAPI 实际可用的模型。OpenCode 里显示的模型目录不等于一定都能请求成功。

七、配置 OpenCode

OpenCode 全局配置目录通常是:

C:\Users\<你的用户名>\.config\opencode\

编辑:

C:\Users\<你的用户名>\.config\opencode\opencode.json

推荐配置如下:

{"$schema":"https://opencode.ai/config.json","model":"openai/gpt-5.4","small_model":"openai/gpt-5.4-mini","provider":{"openai":{"options":{"baseURL":"http://127.0.0.1:8317/v1","apiKey":"{file:../../.cli-proxy-api/opencode-api-key.txt}"}}}}

这个配置的关键点:

  • 仍然使用openai/gpt-5.4,而不是自定义cliproxyapi/gpt-5.4
  • baseURL指向本地 CLIProxyAPI。
  • apiKey从文件读取,避免把密钥直接写进配置。
  • 不要在这里手动写provider.openai.models.gpt-5.4,否则可能覆盖 OpenCode 内置模型元数据,导致思考强度无法切换。

如果你之前在/connect里把cliproxyapi-...当成 OpenAI 官方 API Key 填过,可能会出现:

Incorrect API key provided: cliproxy...

原因是 OpenCode 把这个本地 key 发到了官方 OpenAI endpoint。正确做法是:通过opencode.jsonopenaiprovider 的baseURL改成本机 CLIProxyAPI。

八、验证 OpenCode 是否跑通

先确保 CLIProxyAPI 服务窗口还在运行,然后执行:

opencode run"Reply with OK only."-m openai/gpt-5.4

正常应返回:

OK

也可以测试不同思考强度:

opencode run"Reply with MEDIUM_OK only."-m openai/gpt-5.4--variant medium opencode run"Reply with XHIGH_OK only."-m openai/gpt-5.4--variant xhigh

如果这两个都能返回,说明 OpenCode 的 model variant 机制也正常。

九、重点:用 Ctrl+T 切换思考强度

OpenCode 对 OpenAI 模型有内置 variants,不同模型支持范围略有差异,常见包括:

none minimal low medium high xhigh

在 OpenCode TUI 里:

  • 输入/models可以选择模型。
  • 选择GPT-5.4后,可以用Ctrl+T循环切换当前模型的思考强度。
  • 命令行模式可以用--variant medium--variant xhigh指定。

如果想要一个显式的 variant 列表快捷键,可以新增:

C:\Users\<你的用户名>\.config\opencode\tui.json

内容:

{"$schema":"https://opencode.ai/tui.json","keybinds":{"variant_list":"<leader>v"}}

OpenCode 默认<leader>Ctrl+X,所以这个配置表示:

Ctrl+X,然后按 V

即可打开 variant 列表。

十、常见问题

1./v1/models能返回,但一发消息就报错

先确认 OpenCode 配置里baseURL是否真的指向:

http://127.0.0.1:8317/v1

如果错误信息是Incorrect API key provided: cliproxy...,说明请求发到官方 OpenAI 了,而不是发到 CLIProxyAPI。

2.empty_stream: upstream stream closed before first payload

这通常是上游流式响应在首个 payload 前断开。可以先试:

opencode run"Reply with OK only."-m openai/gpt-5.4--variant medium

如果命令行能跑通,TUI 里重启 OpenCode 再试。也建议在 CLIProxyAPI 配置里保留:

streaming:keepalive-seconds:15bootstrap-retries:1

3. 为什么/models里看到很多模型,但实际不能用

OpenCode 的模型列表来自它的模型目录和 provider 元数据;真正能通过 CLIProxyAPI 调用哪些模型,要看:

Invoke-RestMethod-Uri"http://127.0.0.1:8317/v1/models"-Headers$h

这个接口返回的列表才是当前 OAuth 账号和 CLIProxyAPI 实际暴露的模型。

4. CLIProxyAPI 能完全替代 OpenAI API Key 吗

对 OpenCode 这类本地 coding agent 来说,CLIProxyAPI 可以提供非常接近 OpenAI API Key 的使用体验,尤其是保留openaiprovider 并只改baseURL/apiKey后。

但它不是官方 OpenAI Platform API Key 的完全等价替代:

  • 模型列表取决于你的 OAuth 账号和 CLIProxyAPI 暴露能力。
  • 部分 API 行为可能和官方 Platform API 不完全一致。
  • 生产服务、计费、组织/项目管理、审计等仍建议使用官方 OpenAI API Key。

十一、最终推荐配置小结

CLIProxyAPI:

host:"127.0.0.1"port:8317auth-dir:"C:/Users/<你的用户名>/.cli-proxy-api"api-keys:-"cliproxyapi-替换成你的本地密钥"request-retry:3quota-exceeded:switch-project:trueswitch-preview-model:truestreaming:keepalive-seconds:15bootstrap-retries:1

OpenCode:

{"$schema":"https://opencode.ai/config.json","model":"openai/gpt-5.4","small_model":"openai/gpt-5.4-mini","provider":{"openai":{"options":{"baseURL":"http://127.0.0.1:8317/v1","apiKey":"{file:../../.cli-proxy-api/opencode-api-key.txt}"}}}}

日常使用:

cli-proxy-api-config"$env:USERPROFILE\.cli-proxy-api\config.yaml"opencode

进入 OpenCode 后:

/models Ctrl+T 切换思考强度

参考链接

  • CLIProxyAPI Codex OAuth 登录:https://help.router-for.me/configuration/provider/codex
  • CLIProxyAPI 基础配置:https://help.router-for.me/configuration/basic
  • CLIProxyAPI 配置项说明:https://help.router-for.me/configuration/options
  • OpenCode Provider 配置:https://opencode.ai/docs/providers/
  • OpenCode Models 与 variants:https://opencode.ai/docs/models/
  • OpenCode Keybinds:https://opencode.ai/docs/keybinds/
  • OpenAI API Key 认证说明:https://platform.openai.com/docs/api-reference/introduction/api-keys
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 5:57:48

【Shell专项】编写简易的日常巡检脚本

日志巡检 简易版本 #!/bin/bash # 日志巡检简单脚本 LOG_FILE"/var/log/log_check.log" current_time$(date "%Y-%m-%d %H:%M:%S")[ ! -f "$LOG_FILE" ] && touch "$LOG_FILE"{ echo "$current_time - Starting daily he…

作者头像 李华
网站建设 2026/4/24 5:57:24

自动化执行器:如何通过 RPA 逻辑实现高可靠的 API 调度?

探索基于 UI 自动化的生产力工具设计实践 能力介绍 在处理即时通讯&#xff08;IM&#xff09;工具的自动化任务时&#xff0c;传统的 API 往往受限于权限安全策略&#xff0c;难以满足“主动发起群聊”或“外部群深度交互”的需求。 本文介绍的 RPA 自动化执行引擎&#xf…

作者头像 李华
网站建设 2026/4/24 5:56:50

如何用Revelation光影包打造电影级Minecraft画面:终极配置指南

如何用Revelation光影包打造电影级Minecraft画面&#xff1a;终极配置指南 【免费下载链接】Revelation An explorative shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation 想要让你的Minecraft世界从像素方块变成电影大…

作者头像 李华
网站建设 2026/4/24 5:51:25

5分钟掌握League-Toolkit:英雄联盟玩家的智能游戏助手

5分钟掌握League-Toolkit&#xff1a;英雄联盟玩家的智能游戏助手 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟的繁琐操作而…

作者头像 李华
网站建设 2026/4/24 5:50:36

别再死磕梯度下降了!用Python手写BFGS算法,5分钟搞定二次函数优化

别再死磕梯度下降&#xff01;用Python手写BFGS算法&#xff0c;5分钟搞定二次函数优化 优化算法是机器学习和数据科学中的核心工具&#xff0c;而梯度下降可能是大多数人接触到的第一个优化方法。但当你开始处理更复杂的模型或更大规模的数据时&#xff0c;梯度下降的局限性就…

作者头像 李华
网站建设 2026/4/24 5:46:32

卡内基梅隆大学:人形机器人实现类人触觉抓握力道感知能力提升

这项由卡内基梅隆大学联合德克萨斯大学阿灵顿分校、博世人工智能中心共同完成的研究&#xff0c;以预印本形式发布于2026年4月&#xff0c;论文编号为arXiv:2604.13015&#xff0c;有兴趣深入了解的读者可通过该编号查询完整原文。人类在叠毛巾、往书架上放书、端着两杯热茶走路…

作者头像 李华