快速了解
它能做什么
为 DSH 提供可搜索、按供应商分组的模型菜单,并内联调节推理强度。
本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。
Web Profile
Not declared in supplied evidence
证据已验证
核对日期 2026/9/15 UTC 14:03
有代码证据的贡献
它为 DSH 增加什么
用支持搜索、按供应商分组的菜单和内联推理强度滑杆替换会话输入区的模型选择位。
机制证据 ↗选择前先看
这是一个面向 DSH web profile 的界面插件,覆盖会话输入区的模型选择位。它提供模型名称搜索、可折叠的供应商分组、键盘操作、自适应菜单定位,以及选中模型后的内联推理强度控制;并与 DSH 的 /model 弹窗共用 modelDirectories 状态。
适合谁
需要在大量模型间切换,或希望直接在输入区调节推理强度的 DeepSeek Harness web profile 用户。
常见任务
- 跨供应商分组按名称查找模型。
- 通过键盘在分组模型菜单中选择模型。
- 选中推理模型后立即设置推理强度。
- 与 DSH 的 /model 弹窗保持模型目录与选择同步。
权限与数据
文档将其描述为纯客户端 UI 插件:不注册宿主工具、不访问文件或凭据,也不自行发起网络请求。
权限- 通过 DSH 官方 session RPC 加载模型目录并切换模型。
- 向 web profile 的 DSH 客户端 UI slots 注入界面。
- 使用与 /model 弹窗共享的宿主 modelDirectories 状态。
- 没有记录独立读写文件的行为。
- 没有记录自行发起的外部网络请求。
- 没有记录访问凭据的需求。
局限
- 不提供设置页面或配置命名空间。
- 需要 DSH web profile 及清单列出的 peer dependencies。
- 可能与同样覆盖 conversation.input.model 的插件冲突。
- DSH 上游变更模型选择注入接口后,可能需要适配。
- 筛选时未找到 npm 中的该版本;请使用已验证的 Git bundle 路径。
DSHub 已核对
- 固定 Git 源、包清单和 DSH bundle patch 已通过结构验证。
- 清单声明了 web 客户端及 DSH peer dependencies。
- 提供的包清单未列出生命周期安装脚本。
- 仓库许可证为 MIT。
DSHub 未核对
- 未实际执行安装或运行时行为。
- 未测试与某个特定 DSH/Harness 版本的实际兼容性。
- README 中关于权限和界面行为的声明未经过独立运行时验证。
固定版本安装
安装 DSH Model Selector
这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。
维护者原文
项目 README
@bittersmilezzz/dsh-model-selector
<p align="center"> <img src="assets/cover.png" width="720" alt="dsh-model-selector:单层模型菜单 + 推理强度滑杆" /> </p>DeepSeek Harness (DSH) 的增强模型选择器(Model Selector):单层菜单(搜索 + 分组)+ 底部内联推理强度(Reasoning Effort)滑杆。从 dsh-ui-tweaks 按功能拆分出的独立插件包。
界面预览
| 默认菜单(分组折叠 + 推理滑杆) | 搜索过滤(跨供应商同名模型带供应商标) |
|---|---|
| <img src="assets/menu-default.png" width="360" alt="默认菜单" /> | <img src="assets/menu-search.png" width="360" alt="搜索过滤" /> |
功能
- 替换官方输入区的模型选择 seat(
conversation.input.model,shadow 方式叠加,不禁用官方组件) - 单层模型菜单:名称搜索过滤(命中片段高亮)+ 提供商分组折叠,选中行与供应商标可见高亮,打开自动滚到当前选中行
- 菜单高度按视口实测钳位,弹出方向自适应(取上下空间更大一侧),矮窗口自动收不溢出;seat 右缘放不下时水平钳到视口内
- 键盘可完整操作:方向键在结果间移动、搜索框内 Enter 选中首个命中、Escape 先清搜索词再关闭并还原焦点
- 选中模型后可展开底部内联推理强度滑杆,实时显示当前档位名与该档位说明
- 切换被宿主拒绝时,失败原因用官方 Toast 在输入区上方播报(菜单已关闭也能看到)
- 选择推理模型会自动落到最强思考档,并在成功后提示落到的档位(行上有「推理」标记说明)
- 与
/model弹窗共用官方modelDirectories目录,两处实时同步
安装
# npm(推荐):包名 @bittersmilezzz/dsh-model-selector
dsh plugin --profile <profile> add @bittersmilezzz/dsh-model-selector
# 或从 GitHub
dsh plugin --profile <profile> add github:bitterSmilezzz/dsh-model-selector
# 或本地路径
dsh plugin --profile <profile> add <path-to-repo>
启用后刷新浏览器页面(web profile),模型选择器即替换输入区原 seat。
配置
无设置项(纯 UI 插件),不占用「设置 → 插件 → 配置」卡片位。
外部依赖
- macOS / Windows / Linux 通用,无系统级依赖。
- 运行时依赖 DSH web profile(client 半区),需要
@deepseek-ai/dsh-client-ui-slots等官方注入包(见 package.json peerDependencies)。 - 生命周期脚本:无(无 preinstall/install/postinstall/prepare)。
权限
权限等级:low。纯 client UI:不注册 host 工具、不读写宿主文件、不访问凭据、不发起自有网络请求。
模型目录与切换动作走官方 session RPC(ctx.remote.session 的目录加载与 selectModel),与官方模型选择器使用同一条通道、同一份 modelDirectories 目录状态;除此之外不与宿主通信。UI 反馈(Toast、图标、浮层定位)运行时复用官方 @deepseek-ai/dsh-client-ui-primitives。
已知风险
- 通过 slot 优先级(priority: -1)shadow 官方 seat:若官方后续改动该 seat 的注入面(
ModelSelectInjected),需同步适配;这是官方认可的 slot 叠加机制,并非禁用官方 entry。 - 与其它也 shadow
conversation.input.model的插件同时安装时,优先级决定渲染赢家,可能互相覆盖(本插件优先级 -1 最低,默认胜出)。
开发
标准双半区结构,lib/ 为构建产物:
pnpm install
pnpm typecheck # 双 program(host + client)
pnpm build # tsc host + tsdown client bundle
调优常量集中在 src/client/ModelSelect.tsx 顶部(DIRECTORY_STALE_MS / MAX_VISIBLE_HITS / EFFORT_COMMIT_TIMEOUT_MS)与 src/client/menuFit.ts(MENU_MAX_HEIGHT / MENU_VIEWPORT_MARGIN),含义与调法见各常量旁注释;刻意不做配置化——纯 UI 插件无 settings namespace,不为此引入配置基建。
License
MIT
有意识地管理
安装与管理
前置条件与目标 Profile
目标: Web Profile
交付方式: Git Bundle — bitterSmilezzz/dsh-model-selector#2aef899e1560991452b5a86019b097b533797585。
验证、更新与移除
显示生命周期命令
dsh plugin --profile web list兼容性与访问范围
Requires a DSH web profile and listed DSH peer dependencies.: Not declared in supplied evidence。
风险事实
证据与编辑审查Manifest、Bundle patch、分发与新鲜度
不可变证据
审查状态与源码活动
安装时请使用固定 Git 源;提供的筛选证据未能确认 npm 上存在 0.1.19 版本。
AI 审查于 2026/9/15 UTC 14:04。GitHub 事实核对日期: 2026/9/15 UTC 14:04。
自当前证据基线以来,没有记录到重要源码变化。