写了个 OpenCode 插件:再也不用手动维护模型参数了

2026-04-29 08:202阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


一直在用 OpenCode,但我平时用的模型不是官方直连,而是和朋友一起拼车的 GPT Pro 接口。

这种方式虽然用起来没问题,但配置起来有个很烦的小问题:

每次官方出了新模型,我都要手动改opencode.json

比如:

  • 模型 ID 是什么
  • 是否支持图片
  • 是否支持 reasoning / thinking
  • 上下文大小是多少
  • 模型的各种 metadata 怎么填

这些信息通常都要去 models.dev 上查,然后再手动复制到 OpenCode 配置里。

一次两次还好,模型一多、更新一频繁,就很麻烦。

所以我写了一个 OpenCode 插件:opencode-provider-alias

它的作用很简单:

让你用自己的 provider 名称,同时自动继承 models.dev 里的官方模型参数。

现在我的 opencode.json 可以写成这样:

CleanShot 2026-04-25 at 20.33.32@2x2668×1908 329 KB

这里的 cch-gpt 是我自己定义的本地 provider 名称。

插件会把它映射到 models.dev 里的 openai provider,然后自动补全这些模型的 metadata。这样我就不用再手动维护每个模型是否支持图片、thinking、上下文长度等参数了。

它还支持几个比较实用的功能:

  • 映射本地 provider 到官方 provider
  • 自动继承 models.dev 的模型参数
  • includes 只暴露自己想用的模型
  • 支持 glob 和 ! 排除规则
  • 支持给模型起本地别名
  • 保留原本 OpenCode provider 里的 npmnameoptions 等配置

比如我可以只暴露 GPT 5 系列:

{ "cch-gpt": { "provider": "openai", "includes": ["gpt-5.*", "!gpt-5.4-nano"] } }

项目地址:

github.com

GitHub - baranwang/opencode-provider-alias

通过在 GitHub 上创建帐户来为 baranwang/opencode-provider-alias 开发做出贡献。

通过在 GitHub 上创建帐户来为 baranwang/opencode-provider-alias 开发做出贡献。

如果你也在用 OpenCode,并且经常折腾多 provider / 多模型配置,应该会有点用。欢迎试用,也欢迎提 issue。

网友解答:
--【壹】--:

佬,这个神器可以做到同时管理cpa里面的codex, gemini,或者其他模型比如deepseek吗,配置文件该怎么写呀?


--【贰】--:

对啊,我明白你的意思,但是你这样写就是把官方的覆盖了啊


--【叁】--: baran:

这些信息通常都要去 models.dev 上查,然后再手动复制到 OpenCode 配置里。

唔?????????有没有一种可能,你提供商写对了,是不用写参数的,甚至连modelID都不用写!!!


--【肆】--:

你的意思是类似 openai 做 key?那会跟 codex 冲突哦,不是一个好方案


--【伍】--:

佬友是否看过这个项目:GitHub - coulsontl/ai-toolbox: Personal AI Toolbox · GitHub
opencode claudecode codex都支持,常用模型有预设参数,配置/切换都很方便的


--【陆】--:

对啊,我 GPT 一个 plus 一个 pro,pro 放 cpa 上和朋友一起用


--【柒】--:

很有用的东西,不明白为啥opencode本身一直不做,甚至它都懒得做一个方便的入口让大家接入第三方中转(感觉故意的,不然填个key,一个baseurl,拉取模型列表,然后根据模型名匹配profile又不是多么复杂的事情)


--【捌】--:

image733×588 12.5 KB
你看看我的,如果是OpenAI渠道的,你怕和Codex搞乱,那可以用AZ的渠道名来定义…


--【玖】--:

没覆盖啊,哪覆盖了…难道会有人同时配置官方API和第三方API吗…