跳转到内容

命令行 Agent

OpenCode

在 OpenCode 里把 NoviaHub 添加为自定义服务商,用 NoviaHub 上的模型写代码。

OpenCode 是一个开源的 AI 编程助手,有终端界面、桌面应用和 IDE 插件三种形态。它支持通过配置文件添加「自定义服务商」,用 OpenAI 兼容接口调用 NoviaHub 上的模型。

  • 已经有一把 NoviaHub API 密钥。还没有的话,参见API 密钥。
  • 账户里有余额。调用按用量从余额扣费。

任选一种官方安装方式:

终端窗口
curl -fsSL https://opencode.ai/install | bash
  1. 把 API 密钥存进环境变量 NOVIAHUB_API_KEY。配置文件里只引用变量名,不直接写密钥。

    终端窗口
    # 把下面这行加到 ~/.zshrc 或 ~/.bashrc 末尾,然后重新打开终端
    export NOVIAHUB_API_KEY="sk-..."
  2. 编辑配置文件 ~/.config/opencode/opencode.json(没有就新建),写入下面的内容:

    ~/.config/opencode/opencode.json
    {
    "$schema": "https://opencode.ai/config.json",
    "provider": {
    "noviahub": {
    "npm": "@ai-sdk/openai-compatible",
    "name": "NoviaHub",
    "options": {
    "baseURL": "https://noviahub.com/v1",
    "apiKey": "{env:NOVIAHUB_API_KEY}"
    },
    "models": {
    "deepseek-v4-flash": {
    "name": "deepseek-v4-flash",
    "limit": { "context": 1000000, "output": 384000 }
    },
    "claude-sonnet-5": {
    "name": "claude-sonnet-5",
    "limit": { "context": 1000000, "output": 64000 }
    }
    }
    }
    },
    "model": "noviahub/deepseek-v4-flash"
    }

    各字段的含义:

    字段 说明
    noviahub 服务商 ID,可以自己起名,后面选模型时写成 noviahub/模型ID。
    npm @ai-sdk/openai-compatible 走 /v1/chat/completions。
    options.baseURL 必须带 /v1:https://noviahub.com/v1。
    options.apiKey {env:NOVIAHUB_API_KEY} 表示从环境变量读取密钥。
    models 要用的模型。键名是 NoviaHub 上的模型 ID,要逐字一致。
    limit.context / limit.output 官方说明:limit.context 是模型最多接受的输入 tokens,limit.output 是模型最多生成的 tokens,OpenCode 用它们判断还剩多少上下文。示例数值取自 2026-09-28 模型&价格页面上的「上下文」「最大输出」,请以页面为准。
    model 默认使用的模型,格式为 服务商ID/模型ID。

    如果想只在某个项目里生效,也可以把同样的内容写进项目根目录的 opencode.json。

  3. 在项目目录里运行 opencode。

终端窗口
# 列出 noviahub 服务商下配置的模型
opencode models noviahub
# 不进入界面,直接发一句话
opencode run -m noviahub/deepseek-v4-flash "用一句话介绍你自己。"

能收到回复,并且 NoviaHub 的使用日志里出现这次调用,就说明配置成功。

  • 在 OpenCode 界面里输入 /models 选择。
  • 启动时指定:opencode --model noviahub/claude-sonnet-5(也可以写 -m)。
  • 修改配置文件里的 model 字段,作为默认模型。

新模型要先加进配置文件的 models 里。本页的配置走 OpenAI Chat 接口,所以只能用在模型&价格里标有「Chat」端点的模型(2026-09-28 线上所有文本模型都有)。

  • 如果某个模型只支持 Responses 接口(模型详情里只有「Response」、没有「Chat」),要把该服务商的 npm 换成 @ai-sdk/openai。
  • 不设置 limit 也能用,但 OpenCode 无法准确判断剩余上下文。
  • 除了配置文件,OpenCode 也支持在界面里用 /connect → Other 输入服务商 ID 和密钥,密钥会保存在 ~/.local/share/opencode/auth.json;opencode auth list 可以查看已保存的密钥。

以下资料查阅于 2026-09-28: