自动抓取并同步服务商公布的模型列表
29.2/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/6 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/mpetruc/dsh-model-sync.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 35 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 11 处,展示前 11 条)
- 读取本地文件index.js:144
const parsed = JSON.parse(await readFile(file, 'utf8')) - 写入本地文件index.js:157
await mkdir(dirname(file), { recursive: true }) - 写入本地文件index.js:158
await writeFile(file, JSON.stringify(state, null, 2)) - 写入本地文件index.edge.test.js:37
mkdirSync(dirname(stateFile), { recursive: true }) - 删除本地文件递归index.edge.test.js:80
rmSync(root, { recursive: true, force: true }) - 写入本地文件index.test.js:41
mkdirSync(dirname(stateFile), { recursive: true }) - 删除本地文件递归index.test.js:84
rmSync(root, { recursive: true, force: true }) - 写入本地文件index.test.js:249
writeFileSync(h.stateFile, JSON.stringify({ providers: { p1: { rejected: ['a'] } } })) - 读取本地文件index.test.js:257
assert.deepEqual(JSON.parse(readFileSync(h.stateFile, 'utf8')).providers, - 读取本地文件index.test.js:280
assert.deepEqual(JSON.parse(readFileSync(h.stateFile, 'utf8')).providers, - 读取本地文件index.test.js:310
assert.deepEqual(JSON.parse(readFileSync(h.stateFile, 'utf8')).providers,
扫描于 2026/11/1(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 自动抓取模型列表
- 自动更新模型列表
- 免手动维护
自动填充并自动更新 llm-pi-ai 服务商的模型列表,不用再手敲,也不用手动跟进推理服务器的最新状态。
README
由 DeepSeek 最新模型翻译生成dsh-model-sync
把每个已配置的 llm-pi-ai 服务商对外公布的模型列表,镜像到「设置 → 模型」区域,这样模型下拉框就能显示服务商的完整模型列表,不用手动录入。发现过程走 llm 服务的 discoverModels('llm-pi-ai', …) —— OpenAI 兼容路由用 GET {baseURL}/models,目录路由用已安装的目录。
手动同步
插件每次激活都会跑一遍同步:首次启动,以及任何一次手动重新启用。想按需刷新模型列表,打开「插件」页面(侧边栏 → 插件),展开 dsh-model-sync 卡片,把 model-sync 那一行的开关关掉再打开 —— 重新启用会重启插件,于是约 1.5 s 后跑一遍,重新读取每个服务商对外公布的列表。只有当某次同步至少改动了一个服务商的模型时,才会写入设置区域。
每次激活还会按服务商记录一条结果摘要:[dsh-model-sync] activation summary: … 列出本次新增(或删除,带 prune: true)的模型 id;某个服务商没有任何变化时则打印 no models added or removed。定时同步不打印摘要。
展开完整文档(README 剩余 1 节)
dsh-model-sync
把每个已配置的 llm-pi-ai 服务商对外公布的模型列表,镜像到「设置 → 模型」区域,这样模型下拉框就能显示服务商的完整模型列表,不用手动录入。发现过程走 llm 服务的 discoverModels('llm-pi-ai', …) —— OpenAI 兼容路由用 GET {baseURL}/models,目录路由用已安装的目录。
手动同步
插件每次激活都会跑一遍同步:首次启动,以及任何一次手动重新启用。想按需刷新模型列表,打开「插件」页面(侧边栏 → 插件),展开 dsh-model-sync 卡片,把 model-sync 那一行的开关关掉再打开 —— 重新启用会重启插件,于是约 1.5 s 后跑一遍,重新读取每个服务商对外公布的列表。只有当某次同步至少改动了一个服务商的模型时,才会写入设置区域。
每次激活还会按服务商记录一条结果摘要:[dsh-model-sync] activation summary: … 列出本次新增(或删除,带 prune: true)的模型 id;某个服务商没有任何变化时则打印 no models added or removed。定时同步不打印摘要。
同样的结果会持久化到 model-sync 设置命名空间(lastSync),并直接渲染在插件包的「插件」页面上:打开 dsh-model-sync 卡片,描述和「组件」列表之间会有一个 Last sync 面板,显示运行时间,以及每个服务商一行 —— 新增/删除的 id 列表,或 no models added or removed。面板跟随设置文档,所以触发同步的那次重新启用约 1.5 s 后,它会自己刷新。
同步规则
- 新增 —— 已发现但尚未配置的 id 会被追加,并带上 owner: 'model-sync' 标记(列表里报告了 name / contextWindow / maxTokens / input 元数据时也一并带上)。手动录入的条目不带 owner;已有条目永远不会被改写 —— id、顺序,以及任何手动录入的容量,每次同步后都原样保留。
- 删除(prune: true)—— 标记为 owner: 'model-sync'、但已不再对外公布的条目会被移除。手动录入的条目永远不会被删除。
- 拒绝 —— 某个仍在外公布的归属 id 在两次同步之间消失了,就当作是刻意删除,记进插件状态文件(见下),不再重新添加。手动重新添加被拒绝的 id 会清除拒绝记录。检测只比较同一次激活内连续的两次同步,所以手动重新启用永远不会触发它 —— 重新启用会重置内存里的基线,单次激活同步会把删掉的 id 重新加回来。只有 intervalMinutes 为正数时,删除检测才持续生效。
删除所依据的来源,就靠每条目的 owner 标记(单一来源 —— 不重复维护模型列表)。每个服务商那份小小的 rejected id 列表是同步自己的记账,所以放在插件状态文件里 —— 一份 JSON 文档,位于 <dshHome>/storages/model-sync/state.json(可通过 stateFile)——绝不写进 settings 文档。settings 文档属于用户配置,只保存 Plugins 页面渲染的 lastSync 结果。在这个版本之前配置的条目没有归属者,算作手工录入;把服务商的 models 列表清空一次,让插件重新构建,每个条目就能获得完整追踪。
配置
bundle 会插入一行 model-sync:
- id: model-sync
name: dsh-model-sync
config:
intervalMinutes: 0 # 0 = once per activation (boot or re-enable);
N = also repeat every N minutes
NB: a positive interval also enables deletion detection (rejected)
prune: false # true = remove auto-added ids no longer advertised
providers: [amd-server] # optional: restrict which providers to sync
stateFile: # optional: rejection-baseline state file
(default: <dshHome>/storages/model-sync/state.json)
每次激活——首次启动,或从 Plugins 页面手动重新启用——都会在 llm/settings 服务就绪约 1.5 s 后跑一次同步;intervalMinutes 为正数时,还会按这个周期重复执行。
说明
- 服务商端点不可用时会被跳过并给出警告;发现错误绝不会让这一行失败。
- 每一轮都会记录触发来源——启动/重新启用记作 [dsh-model-sync] activation sync: …,重复定时器记作 … interval sync: …,这样手动切换在宿主日志里就能看到。激活轮次还会追加一行结果摘要:[dsh-model-sync] activation summary: …。
- 拒绝基线在 0.7.0 移出 settings 文档:如果在 model-sync 命名空间里发现 0.7.0 之前的 providers 键,会在下一次同步时迁移进状态文件,并从 settings 文档中删除。
- npm test(node:test 假定时器)需要 Node ≥ 20.4,要消除 --disable-warning 标志则需 ≥ 21.3;插件本身只要求 engines 的 >=18。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
mpetruc/dsh-model-sync
自动抓取并同步服务商公布的模型列表
相关插件 · 模型接入
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