DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

GreyYao /

GreyYao/dsh-model-pin

Verified

This plugin has no description yet.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@32af5535

dsh-model-pin

DeepSeek Harness(DSH)对话输入框「选择模型」菜单的小插件:订阅的模型太多时,把常用的置顶到最前面,并可给不同供应商的模型加显示前缀,一眼分清同名模型。

English: a small DSH plugin for the model picker in the chat composer — pin your favourite models to the top (drag to reorder), and add a per-provider display prefix so same-named models from different providers are easy to tell apart.

效果

模型菜单顶部的「已固定」框:每行带拖动手柄和图钉

置顶的模型集中在菜单顶部的「已固定」框里,每行行首是拖动手柄,行尾是图钉;供应商前缀(如 [公司])直接显示在模型名前。

功能

1. 模型置顶

操作 效果
鼠标移到模型行 行尾出现图钉
点图钉 该模型置顶,出现在菜单最上方的「已固定」框里,图钉变实心
再点图钉(原位置或「已固定」里都行) 取消置顶
点「已固定」里的模型名 等同于点原模型:选择并关闭菜单
  • 置顶记录保存在本机浏览器存储里,重启 DSH 后仍在;只对对话输入框的模型选择菜单生效。
  • 搜索过滤时,「已固定」只显示仍然匹配的模型。
  • 已固定的模型在原分组里仍保留一份,键盘 ↑↓ 导航不受影响。

2. 拖拽排序

在「已固定」框里,按住行首的 ⠿ 手柄拖动即可调整顺序:拖到目标行的上半部分排到它前面,下半部分排到它后面,拖动时有插入线提示,顺序同样会保存。

只有手柄能拖动,按在模型名上仍是正常的选择,不会误触。

3. 供应商显示前缀

设置 → 模型:显示名称下方的「显示前缀」输入框

在「设置 → 模型」里,供应商的「显示名称」输入框下方会多出一个显示前缀。填写后,该供应商下所有模型在对话里的显示名变成「前缀 + 空格 + 原名」,例如 [官] DeepSeek-V4.1-Flash。

  • 对话里的模型选择菜单、「已固定」框、输入框旁的当前模型名都会显示前缀;设置页保持原样。
  • 只改显示,不改模型 ID,不影响调用。
  • 输入即保存,清空即恢复;「添加自定义模型 API」时按填写的 Provider ID 记录。
  • 没有「显示名称」的内置供应商,输入框出现在它的「自定义」折叠区最上面。
  • 限制:菜单自带的搜索只匹配原模型名,搜不到前缀。

4. 滚动行为

当前选中的模型已置顶时,打开菜单(或列表刷新)会停在顶部的「已固定」框,而不是被拉到下面的原分组。鼠标悬停、方向键导航、或你已手动滚动菜单之后,不再干预。选中的模型没置顶时,保持 DSH 原样。

安装(DSH 桌面版)

本插件是 DSH 的浏览器侧插件,按 DSH profile 的依赖方式接入。profile 目录通常是 ~/.dsh/profiles/<profile>/(Windows:C:\Users\<你>\.dsh\profiles\<profile>\)。

  1. 克隆或下载本仓库到本机任意位置。
  2. 修改 profile 的 package.json(先备份):
    • dependencies 加一行 "dsh-model-pin": "link:<本仓库的绝对路径>";
    • dsh.profile.bundles 数组里加 "dsh-model-pin"。
  3. 在 profile 目录执行一次依赖安装,或手动把 node_modules/dsh-model-pin 链接到本仓库目录。
  4. 重启 DSH,或刷新页面。

卸载:删掉上面两处条目和 node_modules/dsh-model-pin 链接即可,已保存的置顶/前缀数据只在浏览器本地,不影响其他功能。

兼容性

插件按 DSH 当前版本的模型选择菜单结构工作,纯浏览器侧、不改 DSH 源码。DSH 升级若改了菜单结构,图钉或「已固定」框可能失效,欢迎提 issue。

开发与测试

npm install   # 只安装测试用的 jsdom
npm test

测试在 jsdom 里模拟菜单和设置页,不需要运行 DSH。

实现说明
  • 全部逻辑在 lib/client.js;lib/index.js 只是空 apply,让本包成为合法的 DSH 插件条目。
  • 菜单结构取自 @deepseek-ai/dsh-client-ui-model-selection:div[role=menu][id$="-models"] > section[data-menu-group] > button[role=menuitemradio],模型由 span[data-provider-id][data-model-id] 标识。
  • 「已固定」框里的行是原按钮的克隆,点击时转发给原按钮,选择与关闭菜单仍由 DSH 自己处理。
  • 拖拽用 pointer 事件自实现:DSH 菜单会在按钮的 mousedown 里取消默认行为,浏览器原生拖拽起不来。
  • 显示前缀通过给模型名标签插入一个前缀节点实现,设置页的输入框通过 React fiber 识别所属供应商。
  • 本地存储键:dsh-model-pin:v1(置顶顺序)、dsh-model-pin:prefix:v1(供应商前缀)。

许可证

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 32af55356139

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout