dsh-model-picker-control

uitested: passnpmMIT

Model picker control for the DSH composer: a settings section beside the built-in Models page renames model display names and provider group names, adds a short coloured suffix capsule after a name, groups models from different providers into a new partition, reorders provider groups by drag or keyb

下载量 / Downloads
1,679
依赖体积 / node_modules
16.43 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-model-picker-control

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

<h1 align="center">dsh-model-picker-control</h1>

<p align="center"><a href="./README.md">English</a> | <a href="./README_ZH.md">中文</a></p>

<p align="center"><strong>Model picker control for DSH</strong> — <em>rename, regroup, sort, hide and badge every model in one place.</em></p>

<p align="center"><sub>cross-provider partitions · rename models &amp; groups · drag-to-reorder · hide a provider or a single model · suffix capsules · model folders with quota failover · one-click restore</sub></p>

<p align="center">

<a href="https://www.npmjs.com/package/dsh-model-picker-control"><img src="https://img.shields.io/npm/v/dsh-model-picker-control.svg?style=flat-square" alt="npm"></a>

<a href="./LICENSE"><img src="https://img.shields.io/npm/l/dsh-model-picker-control.svg?style=flat-square" alt="license"></a>

<a href="https://github.com/qzz19970504/dsh-model-picker-control"><img src="https://img.shields.io/badge/GitHub-qzz19970504%2Fdsh--model--picker--control-181717?style=flat-square&logo=github" alt="GitHub"></a>

<a href="https://www.deepseek.com"><img src="https://img.shields.io/badge/dsh-plugin-5786FE?style=flat-square" alt="dsh plugin"></a>

</p>

<p align="center">

<code>dsh plugin add dsh-model-picker-control</code>

</p>

<p align="center">

<a href="https://www.deepseek.com" title="DeepSeek Harness"><img src="https://cdn.simpleicons.org/deepseek/5786FE" height="26" alt="DeepSeek"></a>&nbsp;

<a href="https://nodejs.org" title="Node.js"><img src="https://cdn.simpleicons.org/nodedotjs/5FA04E" height="26" alt="Node.js"></a>&nbsp;

<a href="https://react.dev" title="React"><img src="https://cdn.simpleicons.org/react/61DAFB" height="26" alt="React"></a>&nbsp;

<a href="https://www.npmjs.com" title="npm"><img src="https://cdn.simpleicons.org/npm/CB3837" height="26" alt="npm"></a>

</p>


Why

DSH ships a good model picker, but the display is fixed: providers come in a hard-coded order, model names are whatever the catalog says, and there is no way to put two models from different providers side by side. If you route some models through an account provider and others through a partner provider, the list you actually want never exists.

This plugin gives you one settings page — sitting next to the built-in Models page — that owns the display of the picker, without patching a single third-party plugin. Hide the models you never touch, rename the rest into something you can recognise at a glance, drag the groups into the order you think in, and merge models from different providers into a partition such as Free or Experimental.

Features

Rename anything · Model display names, provider group names, and a short suffix capsule per model.

Cross-provider partitions · Create a partition and drop models into it from any provider — they render as one group.

Drag to reorder · Reorder provider groups and partitions with a handle (or focus it and press <kbd>↑</kbd> <kbd>↓</kbd>).

Hide, don't delete · Hide a single model with the eye button; the eye on a provider card hides or shows all of its models at once. Nothing is removed from the catalog.

In-group order · Catalog order, by model name, or manual (drag in the preview). Per group or globally.

Suffix capsules · A host-native pill after the name — blue, dark red, cyan, any custom color or a holographic border — that sits beside the host's own 1017 tag. The text may be empty (a color-only chip). Per section, Capsules paints every model in it at once, and Clear empty capsules removes the text-less ones.

Model folders · In the preview card, drag a row onto the middle of another row of the same group to merge them into a folder (a "family"). The folder takes one row in the picker, can carry a capsule, and its members run top to bottom: when a request fails with an exhausted quota, rate limit, auth error, network error or a provider refusal (HTTP 400/403/404), the next member takes over and the request is resent as a normal model switch; a failed member rests until local midnight (quota, auth), 10 minutes (network) or 1 hour (refusal). Members you hid by hand, or that are hidden or outside the folder's group, are skipped. The folder offers the reasoning levels of its top member; after an automatic switch the highest level of the new member is used, and a level the model does not offer is fitted before the request instead of failing the turn. Standalone, no other plugin needed.

Section headings · A bold serif heading (embedded Playfair Display for Latin text) on a dark band that fades from left to right. Settings → General → Styled section headings turns it off and restores the original DSH heading.

Preview & temporary hide · A live preview card shows the picker as it will render: drag models into order, expand folders, and use the eye button to hide exhausted models for now (saved at once, no Save needed).

Draft & save · Every edit stays local until you press Save; leaving the page with changes asks first.

Restore · One click clears the plugin's settings; the host default returns.

Screenshots

The screenshots are rendered from this plugin's real build with sample data (the host UI is simulated, the plugin code is not). The picker shows cross-provider Free, Fast and Flagship partitions, a suffix capsule on most names in every tone (blue, red, cyan, custom color, holographic), a color-only capsule, and a model folder (DeepSeek V4.1 Flash, tagged Pool) that stands for several models and relays between them when one runs out of quota.

<p align="center">

<picture>

<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/qzz19970504/dsh-model-picker-control/main/docs/picker-en-dark.png">

<img src="https://raw.githubusercontent.com/qzz19970504/dsh-model-picker-control/main/docs/picker-en-light.png" width="360" alt="Model picker with cross-provider partitions, su

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::7,最后更新 2026-10-28

Links

GitHub · Homepage · npm

Same category