Skip to main content
S

dsh-model-tidy

star-cosmo/dsh-model-tidy

Model list control for DeepSeek Harness: hide any model from the selector, give it your own display name while keeping the provider billing rate, and arrange the order with arrows. Search, per-provider batch toggles, one-click restore. Display only — no provider configuration is rewritten.

Install

dsh plugin --profile web add github:star-cosmo/dsh-model-tidy

README

dsh-model-tidy

中文 · English · 日本語 · Русский

一个让 DeepSeek Harness 的模型选择器保持整洁的插件——决定哪些模型出现、给它们起你认得的名字,并保住厂商标注的计费倍率。

模型整理设置页

它解决的问题

装两三个 provider 插件,模型菜单就变成一堵墙。一条免费车道、一个工作台 App、两个自己配的网关,转眼三十来项——大多数你根本不会选,还有几个是同一模型走了不同渠道的近似重复项。

模型选择器是做决定的地方,不是仓库。它应该只摆你真正在用的那几个,用你认得的名字。

它做什么

安装后,DSH 设置里会出现「模型整理」分区。模型按来源渠道分组,每一项各带一个开关:

┌─ WorkBuddy ───────────── 8/12 ─ [恢复默认排序] [隐藏全部] [显示全部] ─┐
│ ▲▼  Auto                                            ●───              │
│ ▲▼  GLM-5.3 · x0.79                                 ●───              │
│ ▲▼  GLM-5.2 · x0.79 · 夜间折扣          [改备注]    ───●              │
│ ▲▼  Grok-4.7 · x1.90                                ───●              │
└───────────────────────────────────────────────────────────────────────┘
┌─ our-free-model ───────── 6/6 ── [恢复默认排序] [隐藏全部] [显示全部] ─┐
│ ▲▼  Kilo Auto Free                                  ●───              │
└───────────────────────────────────────────────────────────────────────┘
  • 每个模型一个开关:关掉即从模型选择器消失,打开即回来。
  • 上下箭头排序:调整模型在列表里的先后,渠道头可一键恢复默认顺序。
  • 备注名:给模型起个你认得的名字,选择器就以它显示;厂商的计费后缀会原样留在末尾。
  • 搜索:按模型名、渠道或备注名过滤。
  • 渠道级批量:一键隐藏或显示某个渠道的全部模型。
  • 全局显示 / 隐藏:两个按钮作用于整个目录。
  • 恢复:一个按钮清空全部备注,另一个让全部模型回来。

自定义排序

每个模型左侧有一对箭头,用来调整它在所属渠道内的先后顺序。排序是显式保存的:调完重启 DSH、换一台机器同步配置,顺序都还在。

  • 只影响排列,不影响可见性:排过序的模型被隐藏后,它的位置记在保存的顺序里;重新显示时回到原来的位置。
  • 新模型排在你排过的那些之后:渠道以后上架新模型,不会插进你精心安排的那一段中间。
  • 搜索时可以继续排序:筛选状态下点箭头,交换的是当前可见的相邻两项,所以点一下就能看到变化;被筛掉的模型保持它自己的相对位置。
  • 一键回退:渠道头的「恢复默认排序」清掉该渠道的自定义顺序,回到目录原本的排列。

排序记录在插件自己的设置命名空间里(order 字段,按渠道存一组模型 id),不改动任何渠道配置。

改备注不会弄丢倍率

厂商把计费倍率拼在模型的显示名里——GLM-5.3 · x0.79——因为 harness 的模型目录没有倍率字段。直接替换这个名字(大多数改名的做法)会把倍率一并丢掉。

本插件按厂商自己的分隔符切开名字,并保留后半段:

选择器里显示的名字
厂商原名GLM-5.3 · x0.79
改备注为「GLM 便宜」GLM 便宜 · x0.79
带促销标签时改备注GLM 便宜 · x0.79 · 夜间折扣
本身没有倍率的模型自动 ← 不会多出分隔符

隐藏一个模型不会让它跑位

被隐藏的模型不在目录里(harness 会把它过滤掉),所以它的行只能靠保存下来的信息重建。顺理成章地把行追加到末尾,会让它一被隐藏就跳到分组底部。本插件记住每一行首次出现的位置,所以隐藏五个里的第三个,它仍然排在第三。

它刻意不做的事

整理是显示层的决定,绝不是配置改动。

  • 不重写你的渠道配置。隐藏列表与备注表只存在本插件自己的设置命名空间里。
  • 正在使用某模型的会话不受影响——路由按模型 id 走,改的只是显示名。
  • 卸载插件后列表完全恢复原样。
  • 渠道新上架的模型默认可见。本插件记录的是「要隐藏什么、要改什么名」,从不是「要显示什么」。

覆盖范围

开关作用于所有模型来源,不限于手工配置的渠道。插件过滤的是 harness 自己的目录枚举——ctx.llm.listModels,也就是每个界面都会读的那一份列表。其他插件通过 ctx.llm.registerAdapter 注册的模型、以及 llm-pi-ai 下声明的渠道,都落在这一份列表里,因此都被覆盖。

行按 渠道 + 模型 作键,所以同一模型名经两条路由进来仍是两行独立控制:workbuddy/gemini-3.8-flash 与 gemini/gemini-3.8-flash 是不同的上游服务,各有各的开关和备注。

安装

dsh plugin --profile <你的 profile> add dsh-model-tidy

然后重新打开 DSH Web GUI,设置导航里会出现「模型整理」。

开发

无需构建:两半都以 harness 直接加载的原始文件形式发布。宿主半是 ES 模块;浏览器半是 window.__ModuleLoader__.load 工厂——客户端模块系统调用的格式。

npm test

一次跑完九套测试:目录过滤器、倍率后缀切分、浏览器半行为、备注后缀抓取、行序保持、自定义排序、排序渲染、渲染结构,以及与另一个包装同一个方法的插件共存。

npm run check:packaging 校验客户端依赖声明指向的包在 harness 中真实存在。

兼容性

针对 DSH 0.2.0-rc.2 开发。要求 DSH >= 0.2.0-rc.1——该版本起设置层才提供本插件分区写入所用的 configForms 服务。

许可证

MIT

Related plugins