npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-model-select-plus

v0.2.2

Published

A calmer model-selection popup for DeepSeek Harness: provider/model chip with a separate reasoning-level chip beside it, provider-grouped rows at the native 34px rhythm, search and pinned favorites, replacing the composer's default ModelSelect.

Readme

dsh-model-select-plus

对 DeepSeek Harness 网页端 模型选择弹窗(composer 左下角 conversation.input.model 座位)的信息增强式重写,打包为一个可安装、可发布到 npm 的 dsh 插件。

特性

  1. 单栏列表:模型按 provider 分组全部展开,行高 34px(与 DSH 原生菜单一致),卡片 360×440;没有折叠、没有 Tag 条、没有底部状态条。
  2. 思考等级外置:composer 里模型芯片右侧是独立的等级芯片,点开即选,立即生效;切换等级完全不用打开、也不用在列表里找当前模型。没有推理等级的模型不显示这个芯片。
  3. 当前行展开:只有当前模型向下展开 2 行描述,其余行保持 34px 基线;打开菜单时自动把当前模型滚到列表中间。
  4. 搜索:34px 单行搜索,按模型名 / 描述 / provider 过滤,带清除按钮;打开即自动聚焦。
  5. 收藏置顶:行尾星标(悬停出现)收藏,收藏项移动到顶部独立分组,并在行尾标出 provider;取消后回到原分组。收藏存于浏览器内存,刷新即重置。
  6. 分组标题:11px 吸顶,只在真正吸到顶部时铺底色,静态时是纯文字;不显示数量,也不可折叠。
  7. 选中态:6% 填充 + 行尾对勾 + 500 字重,不再用 10% 灰块(那读起来像禁用)。
  8. 触发按钮:模型芯片显示 供应商/模型,供应商 11px 次级色,超宽时先省略供应商、保住模型名;等级在旁边的独立芯片里。
  9. 键盘:模型列表里 ↑ / ↓ 移动、Enter 选择、Esc 关闭;等级菜单同样支持 ↑ / ↓ 与 Esc。

打开时按触发按钮在视口内的剩余空间决定向上/向下弹,收敛高度并把左右夹在视口内;浅色与深色都走主题令牌(深色下分段控件的滑块改用 active 填充),所有图标为手绘 SVG,不用文字字符充当图标。

安装

把本包加进 dsh profile 的依赖即可(配合 dsh.bundle.patch 自动挂载 host / client 双侧):

# 在 dsh profile 目录里
pnpm add dsh-model-select-plus
# 或
npm i dsh-model-select-plus

重启 dsh web 后,composer 的模型选择框即被替换。

  • Host 侧(exports .)通过 cordis.patch.yml 挂载,向宿主 webserver 注册 GET /plugins/dsh-model-select-plus/api/catalog 与 POST /plugins/dsh-model-select-plus/api/select。
  • Client 侧(exports ./client)由 dsh.client 注入加载,替换 conversation.input.model 占位(priority: -1)。

两个 API 都调用宿主的 ctx.sessionController——这是 0.1.2 里取代已删除 apiProxy.sessions 的 Remote 服务,modelCatalog() 列出当前可路由的模型目录,selectModel() 经 llm.resolveCallConfig 校验后设置会话 Agent 的实时选择引用并保存默认模型。

数据路径

浏览器 (client bundle)
  └─ fetch /plugins/dsh-model-select-plus/api/{catalog,select}
       └─ host plugin (ctx.webServer)  →  ctx.sessionController.{modelCatalog,selectModel}

(持久化插件避免动态插件的 harness/host 内建,采用与 plugin-dashboard 相同的 webserver+fetch 模式。)

开发

pnpm install          # workspace 安装
pnpm run build        # esbuild 打包 src/client.js → lib/client.cjs,并拷贝 host 到 lib/
pnpm run smoke        # 校验 lib/ 产物

lib/ 为构建产物、已被 .gitignore 忽略;npm publish 会在 prepublishOnly 阶段自动构建。

发布到 npmjs

# 首次:登录
npm login

# 在包目录
npm publish

publishConfig 已设为 access: public + registry: https://registry.npmjs.org/。

License

MIT