🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

OpenCode 模型热更 Luca4Don3/dsh-opencode-live-models

DeepSeek Harness
Luca4Don323 天前有提交已提供中文文档扫描:含敏感能力

运行时刷新 OpenCode Go 模型目录,无需等待内置更新

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/10 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Luca4Don3/dsh-opencode-live-models
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · model
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 23 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 13 处,展示前 13 条)
  • 发起网络请求
    lib/index.js:787
    const response = await fetch(url, {
  • 发起网络请求
    lib/client.js:22
    const response = await fetch(BASE + path, {
  • 读取本地文件
    lib/opendesign/profile-dir.js:17
    if (existsSync(join(dir, 'cordis.patch.yml'))) return true
  • 读取本地文件
    lib/opendesign/profile-dir.js:19
    const manifest = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8'))
  • 执行外部命令来自配置/变量
    lib/subscription/login.js:12
    const child = spawn(cmd, args, { stdio: 'ignore', detached: true })
  • 读取本地文件
    lib/host-resolve.js:53
    return inside(path, pkg.dir) && existsSync(path) ? path : undefined
  • 删除本地文件递归
    probe.mjs:28
    process.on('exit', () => { rmSync(CACHE_SANDBOX, { recursive: true, force: true }) })
  • 读取本地文件
    probe.mjs:44
    if (!existsSync(file)) {
  • 读取本地文件
    probe.mjs:47
    return JSON.parse(readFileSync(file, 'utf8'))
  • 删除本地文件
    probe.mjs:93
    rmSync(join(CACHE_SANDBOX, 'opencode-live-models-catalog.json'), { force: true })
  • 读取本地文件
    probe.mjs:307
    const pkg = JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf8'))
  • 读取本地文件
    probe.mjs:698
    !existsSync(join(CACHE_SANDBOX, 'opencode-live-models-catalog.json')))
  • 读取本地文件
    probe.mjs:2892
    const payload = JSON.parse(readFileSync(join(process.env.DSH_PROFILE_DIR, 'opencode-live-models-catalog.json'), 'utf8'))
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 运行时刷新模型目录
  • 无需等待内置更新

让 OpenCode Go 模型在 DeepSeek Harness 里保持最新,不用等内置 pi-ai 目录更新

README

由 DeepSeek 最新模型翻译生成
dsh-opencode-live-models DeepSeek Harness(DSH)自带的 pi-ai 模型目录可能跟不上 OpenCode Go。这个插件在运行时更新目录。 安装 桌面端 —— 侧栏打开「插件」页面,点「添加插件」,粘贴下面的 spec,再点「立即启用」并重启 DSH: github:Luca4Don3/dsh-opencode-live-models CLI —— add 会同时安装并选中该组合包,重启 DSH 后生效: dsh plugin --profile desktop add github:Luca4Don3/dsh-opencode-live-models github: spec 通过 HTTPS 从 codeload.github.com 拉取,npm 镜像不代理它,因此需要宿主机能访问 GitHub。 需要 DSH 0.1.5-rc.1 或更新版本,以及本插件 0.3.0 或更新版本。 0.3.0 起不再内置模型描述符。 已安装目录没有的模型,现在只有在 Pi 的目录可达时才会出现,因此完全离线的首次启动会比 0.2.1 少一个模型:space-bunny-free。原因见工作方式。 0.1.1 仅作版本记录保留,请勿安装。
展开完整文档(README 剩余 1 节)
dsh-opencode-live-models

DeepSeek Harness(DSH)自带的 pi-ai 模型目录可能跟不上 OpenCode Go。这个插件在运行时更新目录。

安装

桌面端 —— 侧栏打开「插件」页面,点「添加插件」,粘贴下面的 spec,再点「立即启用」并重启 DSH:

github:Luca4Don3/dsh-opencode-live-models

CLI —— add 会同时安装并选中该组合包,重启 DSH 后生效:

dsh plugin --profile desktop add github:Luca4Don3/dsh-opencode-live-models

github: spec 通过 HTTPS 从 codeload.github.com 拉取,npm 镜像不代理它,因此需要宿主机能访问 GitHub。

需要 DSH 0.1.5-rc.1 或更新版本,以及本插件 0.3.0 或更新版本。

0.3.0 起不再内置模型描述符。 已安装目录没有的模型,现在只有在 Pi 的目录可达时才会出现,因此完全离线的首次启动会比 0.2.1 少一个模型:space-bunny-free。原因见工作方式。

0.1.1 仅作版本记录保留,请勿安装。 其中两个缺陷已在 0.1.2 修复:adapter 注册前到达的名单可能绕过规模校验而隐藏已安装模型;卸载后叠加层不会被撤除,插件已不再维护,选择器却仍显示那些模型。原地升级即可,无需先移除现有安装。

工作方式

- 从 Pi 模型目录 读取模型描述符。插件不内置任何模型:叠加层就是 Pi 当前发布的内容,上游新增、改名或下线都不需要这里发一次版本。获取失败时保留已安装的目录。
- 对照 OpenCode Go 模型列表 检查已安装目录中下线的模型,并报告缺少描述符的模型 ID。

Pi 自己的条目豁免这项检查:Pi 仍在发布、而 OCG 已经下线的模型会留在选择器里,直到 Pi 也移除它。跟随 Pi 的节奏是本插件的约定;把网关的缺口当成下线,退掉的恰恰是 Pi 领先的那批 id。

插件更新 pi-ai 中 opencode-go 的模型列表。请求仍由已安装的 pi-ai 处理,包括传输和鉴权。

两个数据源并行获取,且都不被允许"缩小"目录:空、格式错误或明显小于上一轮正常值的响应会被拒绝而不是采纳,因此一次坏响应无法悄悄清空选择器。

挂载过程不等它们。已安装目录本身就是一份正确的目录——不装这个插件时你看到的就是它——所以插件加载的瞬间就发布;网络刷新在其后进行,有变化才再次发布。在完全离线的首次启动里,这份目录加上磁盘缓存就是插件能提供的全部,这是"不内置任何模型"刻意付出的代价。

被采纳的目录还会落盘,下次启动时读回,因此一次故障不会让你失去那些只有 Pi 才有的模型。DSH 暴露了 profile 目录就写在那里,否则写 ~/.dsh。缓存读入时会重新校验,超过一周的缓存直接忽略,读写失败也只是跳过。Pi 提供 ETag,所以目录没变时只发一个条件请求,而不是整个响应体。

怎么看日志。 pi.dev 返回 304 时,插件保留目录和 ETag、不重写文件,所以缓存的 mtime 不变是预期结果,不是失败。catalog updated 只表示可见目录发生了变化,不代表别的:启动时从磁盘恢复缓存也可能触发这一行,而它没出现也说明不了刷新是否成功;首次 catalog published 的数量同样不是固定值。

受控重启后要确认的是三件事:叠加层已安装、出现了 catalog published、且没有 pi.dev catalog refresh failed——但要看告警,得等首轮刷新结束后再看。两个请求并行、各有 8 秒超时,失败要等两边都落定才记录,所以刚看到 catalog published 时没有告警说明不了任何事。把超时窗口等过去再下结论。

测试

npm test

用 test/fixtures/ 中随仓库提交的固件运行 probe.mjs——固件抓自真实端点,新克隆后无需联网或任何准备。

刷新固件

三个固件里有两个就是端点自己的响应体,原样保存:

curl -sS https://opencode.ai/zen/go/v1/models \
-o test/fixtures/ocg-models.json
curl -sS 'https://pi.dev/api/models/providers/opencode-go?types=chat' \
-o test/fixtures/pi-dev-opencode-go.json

第三个是已安装 pi-ai 自带的目录,它在客户端内部而不在磁盘上: app.asar → node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json。
读这个归档的方法见 docs/catalog-injection.md。取出来之后要在两处记下它来自哪个 pi-ai 版本——文件名(opencode-go-<版本>.json)和 probe.mjs 里的 CATALOG_SOURCE。
引用它的那些断言是在描述一份只存在于某个版本里的目录;固件悄悄地和客户端对不上,这个套件就曾经对着没人会发布的东西全绿过。

然后跑一遍套件。规模大多由固件推导而不是写死在断言里,所以上游真的变了应该仍然是绿的。
不能悄悄变的是漂移报告点名的模型集合——如果它变了,「哪些实时模型没有 descriptor」这个答案也跟着变了,改任何点名模型的断言之前先读 docs/protocol-probing.md。

想试固件而不提交:

OCG_FIXTURES=/path/to/fixtures npm test

限制

- 没有描述符的模型不会出现在选择器中。
- 两个端点、5 分钟轮询间隔和缓存有效期都固定在源码里。其中网关 base URL 是刻意固定的——远端目录只决定有哪些模型,绝不决定请求发去哪里——所以要指向别的网关就得改 lib/index.js。
- 插件依赖 llm-pi-ai 的内部接口。如果 DSH 更新后接口发生变化,插件会记录警告并保留原有目录。

许可证

MIT
预览分享卡片长什么样 ↓Luca4Don3/dsh-opencode-live-models
分享 · DeepSeek Harness Hub
Luca4Don3/dsh-opencode-live-models

运行时刷新 OpenCode Go 模型目录,无需等待内置更新

回到顶部