在 dsh 中接入 OpenCode 模型并管理多账户额度
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add GooDAnDReaDY/dsh-opencode-provider该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/21) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 25 处,展示前 25 条)
- 读取本地文件src/adapter.ts:447
const parsed = JSON.parse(readFileSync(this.stickyPath, 'utf8')) as { sticky?: unknown } - 写入本地文件src/adapter.ts:489
await mkdir(dirname(this.stickyPath), { recursive: true }) - 写入本地文件src/adapter.ts:490
await writeFile(this.stickyPath, payload, 'utf8') - 读取本地文件src/adapter.ts:597
const parsed = JSON.parse(readFileSync(this.cooldownPath, 'utf8')) as { cooldowns?: unknown } - 写入本地文件src/adapter.ts:632
await mkdir(dirname(this.cooldownPath), { recursive: true }) - 写入本地文件src/adapter.ts:633
await writeFile(this.cooldownPath, payload, 'utf8') - 读取本地文件src/analytics.ts:422
const entries = await readdir(dir, { withFileTypes: true }) - 读取本地文件src/analytics.ts:432
const parsed = JSON.parse(await readFile(join(dir, entry.name), 'utf8')) as ProjectionFile - 发起网络请求src/client/api.ts:99
const response = await fetch(path, { - 读取本地文件src/credentials.ts:46
const body = JSON.parse(await readFile(openCodeAuthPath(), 'utf8')) as unknown - 读取本地文件src/credentials.ts:127
const body = JSON.parse(await readFile(openCodeAuthPath(), 'utf8')) as unknown - 读取本地文件src/plugin-updater.ts:143
if (!existsSync(candidate)) continue - 读取本地文件src/plugin-updater.ts:146
if (statSync(candidate).isDirectory()) entry = resolve(candidate, 'package.json') - 读取本地文件src/plugin-updater.ts:156
if (!existsSync(manifestPath)) continue - 读取本地文件src/plugin-updater.ts:158
const manifest = JSON.parse(readFileSync(manifestPath, 'utf8')) as { name?: unknown; bin?: unknown } - 读取本地文件src/plugin-updater.ts:166
if (existsSync(cli)) return cli - 发起网络请求src/plugin-updater.ts:248
const response = await fetch(`${registry.replace(/ $/, '')}/${encodeURIComponent(packageName)}/latest`, { - 读取本地文件src/plugin-updater.ts:262
const value = JSON.parse(await readFile(manifestUrl, 'utf8')) as { version?: unknown } - 执行外部命令来自配置/变量src/plugin-updater.ts:284
const child = spawn(process.execPath, [ - 写入本地文件src/request-log.ts:103
await mkdir(directory, { recursive: true }) - 写入本地文件src/request-log.ts:106
await appendFile(path, line, 'utf8') - 读取本地文件src/request-log.ts:127
const info = await stat(path) - 读取本地文件src/request-log.ts:129
const text = await readFile(path, 'utf8') - 写入本地文件src/request-log.ts:132
await writeFile(path, `${lines.slice(-keepLines).join('\n')}\n`, 'utf8') - 读取本地文件src/request-log.ts:159
text = await readFile(requestLogPath(), 'utf8')
扫描于 2026/11/1(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-attachment@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-commands@deepseek-ai/dsh-credentials@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-launch-environment@deepseek-ai/dsh-llm给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成@goodandready/dsh-opencode-provider
面向 DeepSeek Harness(dsh)的 OpenCode / OpenCode Go 提供商插件。
插件注册两个原生 LLM 路由:
| 路由 | 产品 | 基础地址 |
| opencode | OpenCode Console / Zen(按量付费) | https://opencode.ai/inference |
| opencode-go | OpenCode Go / Go Plus 订阅 | https://opencode.ai/inference/go |
密钥在每次请求时解析,因此更换凭据后无需重启即可生效。
功能
- 支持 OpenAI Chat、OpenAI Responses、Anthropic 和 Google 四种传输,可按模型选择。
- 从 /v1/models 读取实时目录,并有 models.dev 生成目录作为回退。
- Go 与 Go Plus 的 5 小时 / 每周 / 每月订阅额度估算。
- 计划感知的模型选择器(Go / Console / FREE)。
- 多账户轮换:401/403/429 或配额耗尽时切换到下一个账户;冷却按密钥指纹持久化。
- 账户健康、每账户配额、模型 → 账户规则。
展开完整文档(README 剩余 1 节)
@goodandready/dsh-opencode-provider
面向 DeepSeek Harness(dsh)的 OpenCode / OpenCode Go 提供商插件。
插件注册两个原生 LLM 路由:
| 路由 | 产品 | 基础地址 |
| opencode | OpenCode Console / Zen(按量付费) | https://opencode.ai/inference |
| opencode-go | OpenCode Go / Go Plus 订阅 | https://opencode.ai/inference/go |
密钥在每次请求时解析,因此更换凭据后无需重启即可生效。
功能
- 支持 OpenAI Chat、OpenAI Responses、Anthropic 和 Google 四种传输,可按模型选择。
- 从 /v1/models 读取实时目录,并有 models.dev 生成目录作为回退。
- Go 与 Go Plus 的 5 小时 / 每周 / 每月订阅额度估算。
- 计划感知的模型选择器(Go / Console / FREE)。
- 多账户轮换:401/403/429 或配额耗尽时切换到下一个账户;冷却按密钥指纹持久化。
- 账户健康、每账户配额、模型 → 账户规则。
- 用量分析面板、请求热力图、Models / Days / Sessions 表。
- 核心工具在 128 个工具上限内优先保留;工具结果图片转为占位符。
- Settings → OpenCode 中的一键插件更新。
安装
dsh plugin --profile web add @goodandready/dsh-opencode-provider@0.5.0
DSH Desktop:
dsh plugin --profile desktop add @goodandready/dsh-opencode-provider@0.5.0
也可以安装打包文件:
dsh plugin --profile web add /absolute/path/to/goodandready-dsh-opencode-provider-0.5.0.tgz
安装后重启 dsh / DSH Desktop,在模型选择器中选择 OpenCode 或 OpenCode Go。
配置
密钥来自 DSH 凭据服务、OPENCODE_API_KEY 或 ~/.local/share/opencode/auth.json。Settings → OpenCode 可以粘贴、导入、清除密钥,并运行 Test connection。
默认账户优先使用;额外账户按顺序作为回退。账户可按 credential reference 配置。modelAccountRules 使用大小写不敏感的 * / ? glob,把匹配模型优先路由到指定账户,其余账户仍作为回退。
Go 路由使用配额表:5 小时、每周、每月窗口,以及每月美元额度。网关仍是最终权威;插件中的请求数是估算值。
配额和分析
侧边栏配额卡默认关闭,可在 Settings → OpenCode 打开。点击卡片打开完整面板,显示账户、5h/周/月剩余额度、重置时间、用量分析和请求热力图。
热力图按本地时间聚合真实适配器请求,排除 session-title 和 compaction,精确重复记录会折叠。数据只写到 ~/.dsh/storages/dsh-opencode/requests.jsonl,不包含提示词、响应或密钥。成本由 DSH 原生成本显示提供,本插件不添加第二个 composer 成本胶囊。
插件更新
Settings → OpenCode 的 Plugin update 卡片:
1. GET /dsh-opencode/update 比较已安装版本与 npm registry。
2. 有更新时显示徽章和 Update now。
3. 点击后通过正常的 dsh plugin add 安装精确版本;并发安装会被拒绝,不使用 --force,不会从 worktree 或 file: 安装。
4. 成功后提示重启 DSH。
如果运行时没有暴露 DSH CLI,卡片会说明自动更新不可用,并指向 DSH 插件管理器;状态检查仍然可用。
安全
- 写入路由要求 JSON、同源和 literal loopback Host(127.0.0.1 / ::1),阻止 DNS rebinding。
- 更新 POST 额外要求 loopback、同源和 x-dsh-plugin-update: 1。
- 密钥不会从 /state 返回,也不会写入日志。
- 写入请求体上限 256 KiB;请求日志只保存 {at, provider, model, purpose}。
兼容性
已针对 DSH 0.2.1-rc.2 验证。UI 需要 web profile(Host 需要 ctx.webServer);TUI 保留 /opencode 命令和模型路由。
限制
- 文件附件暂不转发;图片支持。
- 官方用量端点是非官方的,可能变化;聊天不依赖它。
- 自动更新需要运行时提供 DSH CLI;否则使用 DSH 插件管理器。
- 匿名免费通道(Bearer public + CLI 伪装)未实现。
License
MIT。见 LICENSE 和 NOTICE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
GooDAnDReaDY/dsh-opencode-provider
在 dsh 中接入 OpenCode 模型并管理多账户额度
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1