# @brainervirus/opencode-commandcode 中文文档

规范地址：https://npmcn.com/package/%40brainervirus/opencode-commandcode/

版本：0\.12\.26
npm 元数据更新时间：2026-11-07T00:04:29.279Z
中文译文更新时间：2026-11-08T13:44:28.465Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40brainervirus/opencode-commandcode
原文对照：https://npmcn.com/package/%40brainervirus/opencode-commandcode/?lang=original
项目主页：https://github.com/BrainerVirus/opencode-commandcode#readme
源码仓库：https://github.com/BrainerVirus/opencode-commandcode

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：973 kB，52 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：ai \>=6\.0\.0
- 首次发布：2026-08-28T20:12:03.010Z
- 最新版本发布：2026-11-07T00:04:29.104Z
- 近 30 天下载量：8034（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：148（近 12 个月 148 个）

## 中文简介

开放代码的指令代码 API 提供者 — 通过命令代码使用 Claude, GPT, 双子座, DeepSeek, Quen, Kimi, GLM, MiniMax, 以及 Step 模型

## 安装

```sh
npm install @brainervirus/opencode-commandcode
```

也可以使用：`pnpm add @brainervirus/opencode-commandcode`、`yarn add @brainervirus/opencode-commandcode`、`bun add @brainervirus/opencode-commandcode`

## README

# @ rainervil/ opencode- command 代码

[![npm version](https://img.shields.io/npm/v/@brainervirus/opencode-commandcode)](https://www.npmjs.com/package/@brainervirus/opencode-commandcode) [![CI](https://img.shields.io/github/actions/workflow/status/BrainerVirus/opencode-commandcode/ci.yml?branch=main&label=CI)](https://github.com/BrainerVirus/opencode-commandcode/actions) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://npmcn.com/package/%40brainervirus/opencode-commandcode/LICENSE)

[命令代码](https://commandcode.ai/) API 供应商 [打开代码](https://opencode.ai/). 使用 Claude,GPT,双子座,DeepSeek,Quen,Kimi,GLM,MiniMax,Step等模型通过单一API键.

此插件用于命令代码账户, 包含 API 访问 。 GOAT是现场测试的基准;其他API启用的计划可以使用其账户有权获得的模型. 1美元Go计划没有提供商API接入. 该目录遵循了全提供商的模型列表,因此OpenCode中出现的模型并不意味着每个账户都可以调用. 见 [GOAT计划细节](https://commandcode.ai/docs/plans/goat) 财务报告和审定财务报表 [API 文件提供者](https://commandcode.ai/docs/provider)。 。 。 .

此软件包保留一个 **捆绑** 模式目录流通过 CI. 没错 **没有** 需要一个本地 `command-code` CLI(英语:CLI). Catalog 补丁在绿色 PR 合并到 `main`。 。 。 .

原载 `@brainervirus/commandcode-go-opencode-provider`。使用这个名称.

## 贷项

此软件包基于 **[FanFan4204/ 打开代码命令代码提供者](https://github.com/FanFan4204/opencode-commandcode-provider)**。这项工作始于 **[brent-weatherall/opencode-command-code-提供程序](https://github.com/brent-weatherall/opencode-commandcode-provider)** 以 **[布伦特·韦瑟尔](https://github.com/brent-weatherall)**. 感谢你们两个——FanFan为OpenCode提供这个repo继续,而Brent为原始插件,目录提取.

### 此软件包添加的内容

-   捆绑 `models.json` 是默认的运行时间目录( 没有本地 CLI raise) .
-   V1和V2使用其本土插件和提供商表面. 五一号 `server()` 填补 `provider.commandcode` 并注册 API- key 认证; V2 `setup()` 登记册提供者/模型的转换和关键/功能集成 `/connect` 财务报告和审定财务报表 `opencode auth login`。 。 。 .
-   通过边界验证 `src/schemas.ts` 捆绑 `models.json` 编号 : `manifest.json` 读取、提供商可用有效载荷,以及插件配置文件.
-   CLI 成本提取可能失败而不丢出模型; 官方文件填补缺失成本, 剩余支付缺口使用 [模式.dev](https://models.dev/) 作为同步时间的参考价格。 命令代码 免费 SKUs 保留 `$0`。 。 。 .
-   Vision vs 仅文本来源于指令代码 CLI 目录 (`inputModalities` 每个SKU. [模式.dev](https://models.dev/) 仅在匹配时添加额外输入(video/audio/pdf).
-   作出合理努力 **变体** 关于宣布的模型 `reasoningEfforts`。 。 。 .
-   发布日期,家庭,输入限制,模型状态,销售商上下文限制,以及相匹配的上下文价格级流经捆绑的目录. V2 获得本地释放、家庭、投入、状态和分级田地;V1 保留其支持田地和基价 `context_over_200k` 在有代表性的地方.
-   供养者 `supported_endpoints` 元数据选择每个模型的API路由. 消息在广告时首选;否则则首选"聊天补全"(Chat Fullers),而回放只在唯一的广告路线时使用. 这避免了在 DeepSeek V4.1 Flash 上观察到的错位响应函数调用启动事件 `#max` 在 OpenCode V2.0.18 中: `response.output_item.added` 内含 `function_call` 所需项目 `arguments` 绳子。 准确的呼叫工具流现在通过 V1 和 V2 上的 Chat Professions. 反应图仍然可供仅用于反应模型,但目前的目录没有. Claude Sonnet 4.6 回来了 `MODEL_NOT_IN_PLAN` (b) 题为“Claude访问”的信息“可在Pro及以上计划或额外点播使用”; 如果一个模型在有权使用的账户上失败,请 [打开一个问题](https://github.com/BrainerVirus/opencode-commandcode/issues) 与型号ID和OpenCode版本相接,或提交带有可复制固定的PR.
-   静默的 OpenCode 启动( 诊断器到 `startup.json`,没有 studout.
-   免费模式显示 `(Free)` 当所有目录价格为零时, 在 V1 和 V2 上的显示名称之后 。 型号ID和路由不变;这是名后缀,不是本土桌面徽章. 已经结束的名称 `Free` 或者说 `(Free)` 保留现有的标签.
-   应请求保留零数据: `CMD_ZDR=1` 或者说 `zdr: true` 在插件配置中添加 `x-cmd-zdr: 1` 给每个命令代码的 API (`/provider/v1/*`关于两个OpenCode世代的请求.

## 如何运作

对于已出版的插件版本, 六小时的 CI 调度会提取最新的 `command-code` npm捆绑并刷新可调用的模型外加端点元数据,即使CLI版本没有变化. 它只有在生成的文物发生变化时才会打开目录公关;起动时插件会将这些文物加载并用"OpenCode"注册——绝对不会相反.

-   **提取 + 过滤器** 示范条目(编号、名称、推理、, `inputModalities`,限制)从精细化的CLI捆绑(`src/catalog.ts`,然后与提供者API报告的可调用身份证相交.
-   **元数据+费用合并** ——供应商上下文长度只收紧倒叙上下文限制,而 `supported_endpoints` 选择信件,聊天补全,或按此偏好顺序对每个模型进行回复;缺失的端点元数据保留了最后已知的路由数据. 模特们 dev贡献发布日期,家庭,输入限制,状态,模式,以及存在时的成本等级. 二级行只有在其基准价格符合此命令代码目录时才被接受. 基本成本使用CLI捆绑 → 官方指令代码 docs → 免费 SKUs (`$0`页:1 [模式.dev](https://models.dev/) 参考价格 = 未匹配的占位符。 凡有未相比之事,都标出目录 `degraded`。它只在同步时间运行;运行时间从不获取元数据或价格.
-   **艺术品** —— 说 `models.json` (目录), `_version.txt` (上游版本), `manifest.json` (计算,每源成本统计, `healthy`编号 :`degraded`编号 :`broken` 页:1.
-   **特定版本的登记** - V1采用 `plugin` 配置密钥, 直接 AI SDK 软件包 `server()` 提供者地图, 及其认证回调 。 V2 用途 `plugins`,OpenCode的本地提供者运行时间,提供者/模型转换,以及 a `commandcode` 与关键和 `COMMANDCODE_API_KEY` 环境方法。 两者都保留了"指挥码"的线条型号ID. V2 曝光分级上下文定价; V1 发布其支持的 `context_over_200k` 字段,并保持其他层级的平价.
-   **退化/缓存** a 包括: `degraded`编号 :`broken` 显示已退化的旗帜有原因; 无法读取的捆绑 `models.json` 返回到最后的好缓存; 即使有一个空目录, 认证/连接仍然会注册 .

## 快速启动

### 1\. 安装插件

打开代码 V2:

```json
{
  "plugins": ["@brainervirus/opencode-commandcode"]
}
```

打开代码 V1 :

```json
{
  "plugin": ["@brainervirus/opencode-commandcode"]
}
```

赤色包名没有被固定 解决 npm 的 `latest` openCode 安装或更新时释放; 添加 `@latest` 这是不必要的。 OpenCode V2 在启动时检查更新, 但保留已有的缓存包 。 应用带有 OpenCode 插件更新动作的更新的软件包,然后重新启动以加载. OpenCode V1 可以刷新全局软件包 `opencode plugin @brainervirus/opencode-commandcode --global --force`。 。 。 .

`file://` 报到是 **没有** 由 npm 更新; `git pull` 在 CI 输入后, 或者切换到 npm 插件行 .

### 2\. 不需要供应商块

在 OpenCode V2 上,插件注册 `commandcode` 提供者,其模型,原生OpenCode运行时间,及其API基础URL通过V2提供者API. 在V1上 `server` 钩子填充 `provider.commandcode` 默认- `npm: "@ai-sdk/openai-compatible"` 加提供方 API `baseURL`; 插件包本身绝不是 SDK `npm` 字段。 仅在需要非默认运输选项时添加手动提供者条目 .

### 3\. 连接

设定 `COMMANDCODE_API_KEY`,或交互连接。 OpenCode V1 提供 **命令代码** 结束 `/connect`; OpenCode V2 登记关键和环境方法 `/connect` 财务报告和审定财务报表 `opencode auth login commandcode`. V2使用OpenCode的自动提供者活化并保留了明确的活化设置. 在运行一个模型之前连接; 断开时明确运行仍然返回 API 的授权错误 .

### 4\. 选择一种模式

```
/models
```

新 npm 释放中的 Catalog 补丁舰. OpenCode在其包缓存中加载该版本;在新目录出现之前必须通过主机应用更新. 如果在宣布同步后丢失了新模型,请检查已安装的软件包版本,应用更新,并重新启动 OpenCode.

## 插件配置文件

可选的, `~/.config/opencode/opencode-commandcode.json` (遗产倒置名称) `commandcode-go-opencode-provider.json` 仍为载. 未知的密钥被忽略; 每个字段都有默认值, 一个无效的字段在不丢弃有效字段的情况下自行倒回( 无效) `zdr` 值保持 ZDR 上 .

| 密钥 | 默认 | 效果 |
| --- | --- | --- |
| `commandCodePackagePath` | `""` | 维护者覆盖: 从本地目录取出 `command-code` 取出而不是捆绑。 与掩体相同 `COMMANDCODE_PACKAGE_PATH`。 。 。 . |
| `debugStartupLogs` | `false` | 同时将启动摘要镜像为 stderr. 默认为安静( E)`startup.json` 页:1. |
| `disableModelSync` | `false` | 接受转发兼容性;目前没有效果. |
| `zdr` | `false` | 发送 `x-cmd-zdr: 1` ,每个提供方API请求(零数据保留)。 与掩体相同 `CMD_ZDR=1`。当前但无效的值(例如字符串) `"true"`)数为上. |

## 零数据保留(津巴布韦)

命令代码执行 [零数据保留](https://commandcode.ai/docs/provider#zero-data-retention-zdr) 与 `x-cmd-zdr: 1` 请求头; CLI 显示的选项与 `CMD_ZDR=1`。此插件从未引用过 CLI,所以 设置 :

-   环境 `CMD_ZDR=1` 联合国 `1`, (中文(简体) ), `true`, (中文(简体) ), `yes`, (中文(简体) ), `on`; 对大小写不敏感),或
-   `"zdr": true` 内 `~/.config/opencode/opencode-commandcode.json`。 。 。 .

插件然后将信头添加到每个命令代码提供者 API(`/provider/v1/*`请求: V2 在 `commandcode` 提供方, V1 在提供方上 `options.headers`您配置的 ZDR 头 (单位:千美元)`providers.commandcode.headers` 关于 V2, `provider.commandcode.options.headers` 在 V1 上战胜插件的值. 标题名称对大小写不敏感,插件会崩溃任意拼写(`X-Cmd-Zdr`)变成一个小写 `x-cmd-zdr` 键,所以请求中从未包含两个ZDR头. 自定义 npm 传输继续拥有自己的选项.

期望从 API 中实现的行为: 设定时, 仅请求通过 ZDR 的可上游路径, 和一个没有 的模型 **失败 `422 cmd_zdr_no_providers`** 而不是回到一个非ZDR供应商。 ZDR可以改变哪个上游 满足请求,所以成本可能更高。 信头被发送到聊天补全、信件和回复路线上; 到目前为止,现场核查只涵盖聊天完成.

方案型SDK工厂`createCommandCode`(电话) `/alpha/generate`,ZDR文档没有涵盖, 因此无法关闭 : 已请求 ZDR (`CMD_ZDR` 或一个 `x-cmd-zdr: 1` 任何外壳的头部, `languageModel()` 在任何请求发出前抛出。 明确 `x-cmd-zdr: 0` 页眉选择 SDK 退出 `CMD_ZDR`。 。 。 .

与提供商API进行现场核查 `tests/integration/zdr.integration.test.ts` 被跳过,除非 `COMMANDCODE_API_KEY` 设置为:

```bash
COMMANDCODE_API_KEY=... bun run test:integration
```

## 可选本地 CLI 覆盖

只有维护者。 OpenCode 将刮出本地代码 `command-code` 安装时间 `COMMANDCODE_PACKAGE_PATH` 或者说 `commandCodePackagePath` 内 `~/.config/opencode/opencode-commandcode.json` 已经设定.

## 报告问题

打开 a [错误报告](https://github.com/BrainerVirus/opencode-commandcode/issues/new?template=bug_report.yml) 用于安装、 认证、 目录或模型调用失败 —— 包括失败的模型 ID、 准确错误、 以及您的插件和 OpenCode 版本 .

此寄存器不接受目录, “ 很棒的列表 ” , 插件- 市场 , 或 外联 。 为此开始的问题无需审查即可结案.

## 发展

```bash
git clone https://github.com/BrainerVirus/opencode-commandcode.git
cd opencode-commandcode
bun install
bun run check            # oxlint + oxfmt --check + bun test tests/unit/ + tsc (the release gate)
```

```bash
bun run sync -- --remote  # refresh models.json + manifest.json + _version.txt from command-code@latest
bun run build             # bundle src/entry.ts to dist/plugin.js
bun test tests/unit/      # unit suite (also via bun run test)
bun run test:integration  # live-endpoint tests, not part of the gate
bun run verify:release-candidate  # dry-run pack; manifest and package versions must match
bun run generate-readme   # reports catalog counts only; README is hand-edited
bun run catalog:ci        # entry used by the catalog-sync workflow
```

入口点 : `plugin.ts` 拥有两个配置表面( V2) `id`编号 :`setup` 加上V1 `server`(三); `index.ts` 再导出插件加插件 `createCommandCode` SDK工厂; `src/entry.ts` 是捆绑胶水的 `scripts/build-plugin.ts` 只是,它产生 `dist/plugin.js`。 。 。 .

CI (中文(简体) )`.github/workflows/catalog-sync.yml`每6小时检查一次CLI目录的修改和提供者的可用性/端点元数据的变化;它打开一个 `fix(catalog)` 只在生成文件更改时 PR 。 如果提取失败或模型计数安全底板被突破,则打开一个 `catalog-break` 并保存完好的文件。 公关自动出现之后 **检查(测试)**, (中文(简体) ), **检查( 类型检查)**, (中文(简体) ), **检查(lint)**, (中文(简体) ), **检查(格式)**,以及 **检查(包装)** 绿色的. `.github/workflows/release.yml` 然后运行 **语义释放** (建设+已核实npm发布+GitHub发布+标签). 别推 `main`。 。 。 .

GitHub 动作的秘密名称是 `NPMJS`它被映射到两个地方 `NPM_TOKEN` 财务报告和审定财务报表 `NODE_AUTH_TOKEN`选项 **自动化** 符 (通过 2FA ). 登录符号来自 `~/.npmrc` 无法使用 CI `EOTP`. Catalog PRs 获得真正的 CI 运行当 `RELEASE_SYNC_TOKEN` 是一个PAT; `GITHUB_TOKEN` 可以打开 PR 但 GitHub 将不会从该事件开始工作流程 .

## 许可证

麻省理工学院——见 [自由主义](https://npmcn.com/package/%40brainervirus/opencode-commandcode/LICENSE)。原始版权 [布伦特·韦瑟尔](https://github.com/brent-weatherall)。 。 。 .

## 常见问题

### @brainervirus/opencode-commandcode 是什么？

开放代码的指令代码 API 提供者 — 通过命令代码使用 Claude, GPT, 双子座, DeepSeek, Quen, Kimi, GLM, MiniMax, 以及 Step 模型

### 如何安装 @brainervirus/opencode-commandcode？

在项目目录运行 npm install @brainervirus/opencode-commandcode，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：ai（\>=6\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @brainervirus/opencode-commandcode 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @brainervirus/opencode-commandcode 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @brainervirus/opencode-commandcode 可以商用吗？

@brainervirus/opencode-commandcode 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @brainervirus/opencode-commandcode 的下载量有多少？

根据 npm 官方下载统计，@brainervirus/opencode-commandcode 在 2026/10/09 – 2026/11/07 这 30 天内被下载 8,034 次，日均约 268 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @brainervirus/opencode-commandcode 还在维护吗？

最新版本 0\.12\.26 发布于 2026/11/07（1 天前）；至今共发布 148 个版本，其中过去 12 个月发布了 148 个；首次发布于 2026/08/29。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

