dshbase

插件目录 / Developer / dsh-better-model-selector

dsh-better-model-selector

已验证 · 实测可装 Khellendros97

✓ 持续维护 基于 4 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
—语言
2026-08-15最近推送
跨平台平台

功能简介

将模型选择器和思考强度选择器拆成两个组件,并替换为更合理的交互方式

✅
我们的评价
可用 — 实测通过,早期项目

将模型选择器和思考强度选择器拆成两个组件,并替换为更合理的交互方式 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-better-model-selector

npm version

改造对话界面(composer)的模型选择器:把原来「模型 + 思考强度」集成在一个二级菜单里的组件,拆成两个可以单独设置的独立控件。

  • 模型选择器:保持下拉选单,但增加搜索和**标记喜爱(收藏)**功能。
  • 思考强度选择器:改成滑动条样式,更直观。
  • 快捷键:
    • Ctrl/Cmd + P — 快速切换模型,在收藏模型中轮换。
    • Ctrl/Cmd + T — 轮换思考强度。

原理

插件覆盖内置的 conversation.input.model slot(以更低优先级 -1 遮蔽内置的 ModelSelect,后者注册优先级为 0),并用同一个会话级 ModelDirectory(ctx.modelDirectories,由 @deepseek-ai/dsh-client-ui-model-selection 提供)读写模型与推理强度。因此它和 /model 命令弹窗共享同一份状态,任意入口切换后另一入口立即同步。

收藏列表持久化到主机级 cookie(dms_favs,path=/,约 1 年有效期),仅本地保存、不写入会话。之所以用 cookie 而不是 localStorage:localStorage 按「协议 + 主机 + 端口」隔离,而 dsh web(dshdeck)每次重启端口会变,旧端口的 localStorage 就找不到了;cookie 只按主机隔离,跨端口依然可见。首次读取会自动迁移旧版 cookie(dmt_favs)与旧版 localStorage(dsh-model-toolbox:favorites:v1)里的收藏。

安装

前置:DSH 已初始化 web profile(dsh web 能正常运行),Node.js ≥ 20。

⚠️ 依赖 DSH 的 next 通道:peerDependencies 指向 @deepseek-ai/* ^0.1.0-rc.6(npm 上的 next dist-tag)。若你的 DSH 走 latest(0.0.1-rc.x),可能不满足依赖、缺少本插件所需的 modelDirectories 服务。

npm 安装(推荐,自动挂载):

dsh plugin --profile web add dsh-better-model-selector

该命令会自动:登记依赖 → 识别包内 dsh.bundle.patch(cordis.patch.yml)→ 注册进 dsh.profile.bundles 完成挂载。装完重启 dsh + 硬刷新浏览器(Cmd/Ctrl+Shift+R)即可。

若报 minimum release age(发布不足 24 小时),重跑一次即可(pnpm 会自动补 minimumReleaseAgeExclude)。

从源码安装(开发):把本目录拷贝/软链到 ~/.dsh/profiles/web/node_modules/dsh-better-model-selector,并在 ~/.dsh/profiles/web/cordis.patch.yml 追加:

- insert:
    - id: dsh-better-model-selector
      name: dsh-better-model-selector

然后重启 dsh web + 硬刷新。

旧版本迁移(手动挂载 → npm 通道)

若之前通过「源码目录 + 手动挂载行」安装,切到 npm 通道时按顺序执行(跳过 1、2 步会双挂载:两个 host 半、出现两份 UI):

  1. 删除手动挂载行:编辑 ~/.dsh/profiles/web/cordis.patch.yml(早期全局安装可能是 ~/.dsh/cordis.patch.yml),删除 dsh-better-model-selector 对应的 - insert: { id: ..., name: ... } 段。

  2. 删除旧包实体:

    Remove-Item -Recurse -Force "$HOME\.dsh\profiles\web\node_modules\dsh-better-model-selector"
    
  3. 官方 CLI 安装 npm 版:dsh plugin --profile web add dsh-better-model-selector

  4. 重启 dsh + 硬刷新。

收藏/凭据不受影响(收藏存于主机级 cookie,与安装方式无关)。

结构

dsh-better-model-selector/
├── package.json       # dsh.bundle.patch + dsh.client + exports["./client"]
├── cordis.patch.yml   # 自动挂载补丁(insert 条目)
└── lib/
    ├── index.js       # host 半(纯客户端插件,空 apply)
    └── client.js      # 浏览器半:模型下拉 + 搜索/收藏 + 思考强度滑动条 + 快捷键

已知限制

  • 思考强度滑动条仅在当前模型公布推理强度元数据时显示(与内置行为一致)。
  • 已寻址子代理(subagent)会话不提供模型选择,控件隐藏、快捷键失效(与内置行为一致)。
  • Ctrl+P/Ctrl+T 仅当存在当前会话时接管按键;无会话时不拦截浏览器默认行为(Ctrl+T 新建标签页等)。

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-better-model-selector」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:Khellendros97/dsh-better-model-selector

Headless(CLI)profile:

dsh plugin --profile headless add github:Khellendros97/dsh-better-model-selector

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7819 个插件 →