浏览 OpenRouter 模型并一键添加到模型列表
29.3/100
综合分
0
GitHub 星标
51
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-model-listnpm 源 · dsh-model-list 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 55 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-model-list @ 0.1.2
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/22 19:20:38
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 15 处,展示前 15 条)
- 发起网络请求lib/index.js:225
response = await fetch(url, { - 发起网络请求lib/index.js:250
const response = await fetch(OPENROUTER_KEY_URL, { - 读取本地文件lib/index.js:473
raw = await readFile(target, "utf8"); - 写入本地文件lib/index.js:491
await rename(target, target + ".bak"); - 写入本地文件lib/index.js:500
await mkdir(dir, { recursive: true }); - 写入本地文件lib/index.js:508
await writeFile(tmp, payload, { encoding: "utf8" }); - 写入本地文件lib/index.js:509
await rename(tmp, target); - 发起网络请求src/client/rpc.ts:36
const response = await fetch('/dsh-model-list/api', { - 发起网络请求src/host/openrouter.ts:272
response = await fetch(url, { - 发起网络请求src/host/openrouter.ts:301
const response = await fetch(OPENROUTER_KEY_URL, { - 读取本地文件src/host/store.ts:59
raw = await readFile(target, 'utf8') - 写入本地文件src/host/store.ts:78
try { await rename(target, target + '.bak') } catch { } - 写入本地文件src/host/store.ts:90
await mkdir(dir, { recursive: true }) - 写入本地文件src/host/store.ts:94
await writeFile(tmp, payload, { encoding: 'utf8' }) - 写入本地文件src/host/store.ts:95
await rename(tmp, target)
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-settings@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 按最新排序
- 一键添加到模型列表
README
由 DeepSeek 最新模型翻译生成dsh-model-list
dsh-model-list 是一个 DeepSeek Harness(DSH)插件:浏览 OpenRouter 的官方模型目录(openrouter.ai/models 同款数据),一键把其中任何模型——包括免费变体——添加到 DSH 模型列表。
- 模型聚合平台入口(设置 → 模型聚合平台):设置入口内按平台分 tab(当前内置 OpenRouter; PLATFORMS 注册表让后续平台接入只需一行)。拉取逻辑在宿主侧完成,tab 是主要入口。
- 「在菜单中显示」滑动开关:位于平台页最顶部。开启后,宿主侧栏底部 footerAction 区出现【模型聚合平台】入口按钮,点击在弹层中打开同样的目录。偏好存 localStorage(默认关闭)。
展开完整文档(README 剩余 1 节)
dsh-model-list
dsh-model-list 是一个 DeepSeek Harness(DSH)插件:浏览 OpenRouter 的官方模型目录(openrouter.ai/models 同款数据),一键把其中任何模型——包括免费变体——添加到 DSH 模型列表。
- 模型聚合平台入口(设置 → 模型聚合平台):设置入口内按平台分 tab(当前内置 OpenRouter; PLATFORMS 注册表让后续平台接入只需一行)。拉取逻辑在宿主侧完成,tab 是主要入口。
- 「在菜单中显示」滑动开关:位于平台页最顶部。开启后,宿主侧栏底部 footerAction 区出现【模型聚合平台】入口按钮,点击在弹层中打开同样的目录。偏好存 localStorage(默认关闭)。
- 弹框配色:弹层与弹框与 dsh-get-balance 同一套 —— rgba(0,0,0,.32) 蒙版 + blur(12px) saturate(1.2)、
color-mix(bg-layer-1 78%) 玻璃面板 + border-l2 细描边 + 14px 圆角 + 0 16px 48px rgba(0,0,0,.28) 投影、
border-l1 分隔线;主按钮与选中的 tab / 二级 tab / 筛选 chip 用实心 button-primary-fill,输入框 bg-base、卡片 bg-layer-2、状态色走 state- 令牌。
- 官方目录 1:1 还原:宿主拉取官方前端端点 https://openrouter.ai/api/frontend/v1/models/find?active=true&fmt=cards&order=newest——分别以 variant=standard 与 variant=free 各取一次(两者都是一模型一卡、无分页),并从响应信封的 data.analytics 联表出每个模型的周调用量(近 7 天 token 数)。
浏览器侧按官方筛选集做本地筛选:搜索、变体下拉、输出模态 tab(带计数)、排序(周调用量 / 发布时间 / 上下文大小 / 输入价格 / 输出价格 / 模型名称),以及筛选组(输入模态、有折扣、上下文长度档位、提示词价格档位、输出价格档位、系列、支持参数、供应商、厂商)。卡片按官方版式:作者头像、名称、周用量、折扣徽标、描述两行截断、底部规格行(by 厂商 / 上架日期 / 上下文 / $x/M input tokens / $x/M output tokens)。
- 卡片展示完整信息:id(点击复制)、供应商、量化精度、上架时间、支持的请求参数、内容审核 / 强制推理标记、上游警告文案、可展开的完整描述。排版适配窄面板与移动端。
- 「添加到模型列表」→ 一键创建模型配置:仅当该平台还没有已存凭据时才要求输入 OpenRouter API Token(可现场「校验」,调 GET /api/v1/key)。确定后:
1. Token 经宿主 credentials 服务落 .credentials.yaml(OPENROUTER_API_KEY);
2. 把模型并入 settings.yaml 里的 OpenRouter 路由(llm-pi-ai 命名空间——已有 openrouter / openrouter-free / baseURL 指向 openrouter.ai 的路由时并入,原样保留其 apiKeyEnv 与已有模型条目;否则新建 openrouter-free 路由,openai-completions 协议 + https://openrouter.ai/api/v1);
3. 可选勾选设为新会话的默认模型(agent-default-model 命名空间)。
完成后模型立即出现在对话框底部的模型选择器中,无需重启宿主。
- 稳健拉取:所有 OpenRouter 请求失败自动重试,最多 10 次(指数退避 + 抖动);刷新失败时降级展示旧缓存并提示。结果缓存到 $DSH_HOME/dsh-model-list.json(6 小时新鲜窗口)。
- 中英双语界面,无硬编码路径。
命令
| 脚本 | 作用 |
| npm run check | tsc -b 类型检查(host + client 两个 program) |
| npm run build | 清理 lib/,tsc -b,tsdown 打包 lib/index.js(宿主,ESM)+ lib/client.js(浏览器,__ModuleLoader__ 工厂) |
| npm run watch | tsdown watch 模式 |
| npm run verify | 模拟宿主模块加载器校验 lib/client.js(工厂形状 + seed 外部依赖) |
| npm run test:ops | 宿主逻辑离线单测(find/cards 规范化、周用量联表、路由识别、配置写入编排、数据文件往返含 v1 旧缓存拒绝) |
| npm run smoke | 直连真实 OpenRouter models/find 的冒烟测试 |
| npm run release | check + build + verify,然后 npm version patch 并 git push --follow-tags |
| npm run publish:npm | check + build + verify,然后 npm publish --access public |
安装
本地开发(link 工作区;lib/ 重新构建后自动生效)
dsh plugin --profile web add ./dsh-model-list
已发布:npm / tarball / GitHub
dsh plugin --profile web add dsh-model-list
dsh plugin --profile web add github:you/dsh-model-list#
dsh --profile web --dump-config # 确认分层
dsh --profile web # 启动(宿主半边需要重启后加载)
本地开发依赖:宿主经原生 Node ESM 加载 lib/index.js,因此插件目录必须能解析 @deepseek-ai/schemastery 与 @deepseek-ai/dsh-settings。在插件目录里执行一次
pnpm install,或直接使用仓库内已提交的 lib/ 构建产物(本仓库提交 lib/,与
dsh-jenkins 一致)。
使用
1. 打开 设置 → 模型聚合平台(或在页面顶部开启在菜单中显示,使用宿主侧栏底部的【模型聚合平台】按钮),选择平台 tab(OpenRouter)。
2. 目录在缓存新鲜时秒出(点刷新强制回源)。使用搜索框、变体下拉、输出模态 tab、排序下拉(周调用量 / 发布时间 / 上下文大小 / 输入价格 / 输出价格 / 模型名称),以及筛选组(输入模态、有折扣、上下文长度、提示词价格、输出价格、系列、支持参数、供应商、厂商)——与官方 models 页一致的筛选集。
3. 点某张卡片的添加到模型列表:
- 仅当平台还没有已存凭据时才出现 Token 输入框(已配置时直接沿用 OPENROUTER_API_KEY,弹框中有提示),
- 需要的话勾选设为新会话的默认模型,
- 确定——配置写入完成,弹框会显示该去哪里选这个模型。
新增一个平台
1. src/client/components/FreeModelsSection.tsx:在 PLATFORMS 追加 { id, labelKey },并在下方按 id 挂载面板组件。
2. 复制 src/client/components/OpenRouterPanel.tsx 作为起点;ops 请求带上 platform: ''。
3. src/host/ops.ts:扩展 runOp 的平台分发(按平台 API 实现拉取/过滤,映射到 RouteModelProfile,并在 model-config.ts 里补该平台的凭据引用与路由命名)。
结构
├── src/host/.ts # 宿主半边:/dsh-model-list/api 路由(按平台分发 op)、 │ # OpenRouter find/cards 拉取 + analytics 周用量联表(10 次重试)、 │ # 缓存存储、模型配置写入(settings + credentials 服务) ├── src/client/*.tsx # 浏览器半边:settings.section 平台 tab 外壳(含「在菜单中显示」 │ # 开关)、sidebar.footer.action 入口按钮、官方筛选/排序/卡片、 │ # 添加到模型列表弹框 ├── lib/index.js # 宿主半边构建产物(tsdown,ESM),已提交 ├── lib/client.js # 浏览器半边构建产物(tsdown → __ModuleLoader__ 工厂),已提交 ├── scripts/ # verify-client.mjs、test-ops.mts(离线单测)、smoke-openrouter.mts(真实冒烟) ├── tsdown.config.ts # node 半边 + client bundle 包装 ├── cordis.patch.yml # 组合包 patch:按包名引用的插件行 └── package.json # dsh.bundle + dsh.client(web) 清单 + peerDependencies
说明
- OpenRouter 免费模型同样需要账号 Token(有每日限额),弹框里有提示。
- 写入走的是官方通道:settings.update('llm-pi-ai', …) 会经过 llm-pi-ai 的 schema 校验(不合法的配置在写入处被拒绝),适配器实时重注册路由——添加模型后无需重启宿主。
- 对已有 OpenRouter 路由的手工修改(自定义 apiKeyEnv、额外字段)会被保留:添加模型只重写该路由的 models 数组(按 id 合并,同 id 覆盖)。
- 插件从不直接改写 settings / credentials 文件——一切经宿主服务完成;插件自己写的唯一文件是模型缓存(dsh-model-list.json)。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jsoncode/dsh-model-list
浏览 OpenRouter 模型并一键添加到模型列表
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目