dsh-model-tabs:按 Provider 分页的 Composer 模型选择器

前言

DeepSeek Harness(DSH)在 Web 与桌面端的 Composer 里,默认在输入框下方提供模型选择入口。渠道一多、同一 provider 下列表变长时,在单页列表里翻找模型或切换推理强度(effort)往往要反复滚动。内置 /model 命令另有弹窗,但与 Composer 旁的控件是两套交互,习惯在输入区点选的开发者仍希望列表更易扫读、搜索能跨渠道命中。

@lycorisradiatax/dsh-model-tabs 由社区维护者 LycorisRadiataX 发布,通过 Cordis 补丁替换 Composer 侧的模型选择 UI:改为按 provider 分 tab 的弹窗,并与内置 /model 共用同一份模型目录,两边选择互相同步。下文说明定位、能力、安装与使用注意。

这是什么

npm 包名为 @lycorisradiatax/dsh-model-tabs(仓库目录名仍为 dsh-model-tabs)。当前发布版本为 0.2.0,许可证 MIT。

插件只做一件事:把 DSH Web GUI 输入框下方的模型选择器换成按 provider 分页的弹窗;每个 provider 一个 tab,支持跨渠道搜索、各 tab 独立滚动,以及推理强度(effort)chips。触发按钮上会显示 provider · model · effort 形式的摘要。

核心功能

以下能力均来自仓库 README,安装前可在 GitHub 自行核对源码与 cordis.patch.yml。

  1. 按 provider 分 tab:每个 provider 独占一个 tab,列表各自独立滚动;tab 顺序与模型目录中的原始顺序一致。
  2. 跨渠道搜索:可按模型名、模型 id、渠道名匹配;结果项会带渠道徽标。
  3. 推理强度 chips:选模型与 effort 可在同一步完成;仅当模型声明里含推理元数据时才显示 Effort,否则不出现该选项。
  4. 与 /model 同步:与内置 /model 命令共用同一份目录与选择状态;在 Composer 旁改模型,命令弹窗里的选择会一致。说明:/model 弹窗仍是内置实现,样式不受本插件影响。
  5. 交互与主题:支持键盘操作、点击外部关闭,并适配深浅色主题。

环境要求

项 要求
Node.js ≥ 20
DSH >=0.2.2-rc.1 且 <0.3.0-0
运行形态 web 或 desktop;headless / TUI 没有 composer,界面不会出现本插件

插件以当前 DSH 进程的权限运行。安装前建议阅读仓库源码与 LICENSE,确认与自身环境、合规要求相符。社区目录页见 SkillHub:LycorisRadiataX/dsh-model-tabs,与 DeepSeek / 幻方无官方从属关系,属于 DSH「一切皆插件」生态中的独立条目。

安装与启用

全局 dsh 已在 PATH 时,对目标 profile 执行(将 <profile> 换成实际配置名,例如桌面版常用 desktop):

# 已从 npm 发布后安装
dsh plugin --profile <profile> add @lycorisradiatax/dsh-model-tabs

若使用本地打包的 tgz,可先 npm pack 得到类似 lycorisradiatax-dsh-model-tabs-0.2.0.tgz 的文件,再:

dsh plugin --profile <profile> add ./lycorisradiatax-dsh-model-tabs-0.2.0.tgz
dsh --profile <profile> --dump-config | grep model-tabs
dsh --profile <profile>

第二行用于确认配置里已出现与 model-tabs 相关的项;第三行按你的习惯启动对应 profile 下的 DSH。

仅安装桌面 App、没有全局 dsh 时,使用 App 自带的 CLI:

  • Windows:%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd
  • macOS / Linux:App 资源目录下的 resources/runtime/cli/bin/dsh

装进桌面版使用的 profile 后需要重启 App 才能看到 Composer 侧的新选择器。

卸载:

dsh plugin --profile <profile> remove @lycorisradiatax/dsh-model-tabs

典型用法

本插件通过 UI 补丁生效,没有额外配置文件字段出现在 README 中。启用并重启(桌面版)或重新打开 Web Composer 后:

  1. 在 Composer 输入框下方点击模型选择触发按钮,打开按 provider 分 tab 的弹窗。
  2. 在搜索框输入模型名、id 或渠道名,跨 tab 过滤结果。
  3. 在目标 tab 内滚动列表选中模型;若模型支持推理强度,用 chips 选定 effort。
  4. 关闭弹窗后,按钮文案应反映当前 provider · model · effort;此时用 /model 打开内置弹窗,应看到相同的选择状态。

开发与自测(维护者流程,可选):

npm ci
npm run typecheck
npm test
npm pack

npm test 会先构建,再运行离线冒烟与 jsdom 交互测试。

适用场景与注意

适合谁:长期在 Web 或桌面 Composer 中切换多 provider、多模型,并需要在一处完成 effort 选择的 DSH 用户。

不适合:仅使用 headless 或 TUI、没有 Composer 的场景;或 DSH 版本不在 >=0.2.2-rc.1 <0.3.0-0 范围内时,应按 package.json 中 engines.dsh 升级或降级 DSH 后再装。

注意:不要凭仓库名拼接 dsh plugin add github:owner/repo;官方 README 给出的安装物是 npm 作用域包 @lycorisradiatax/dsh-model-tabs 或本地 tgz。插件修改的是 Composer 模型选择入口,不改变 /model 命令弹窗的外观,仅共享选择状态。

结尾

dsh-model-tabs 把 Composer 模型选择收成「按 provider 分页 + 跨渠道搜索 + effort chips」,并与 /model 保持同一目录与同步选择,适合模型与渠道较多的日常开发。目录与_issue_入口:

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye