Bundle
dsh-fetch-models-unselect-all
Adds a 'deselect all' button left of Cancel in the DSH Settings > Models 'fetch available models' dialog, clearing every model checkbox at once.
- Source
- Townrain
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 11 days ago
Readme
# dsh-fetch-models-unselect-all
A "deselect all" button for the DeepSeek Harness **Settings → Models → Add
provider → custom provider → Fetch available models** dialog.
The dialog lists every model a provider advertises with one checkbox per row
and only two footer actions — Cancel and **Add selected**. This plugin adds a
**取消全选 / Deselect all** button directly left of Cancel, so a large catalog
can be cleared in one click instead of unchecking each row.
```
[取消全选] [取消] [添加所选]
```
## What it does
- Pure client presentation: watches the DOM for the fetch dialog (anchored on
its unique "Add selected" action), then clones the Cancel button's classes to
insert an identically styled "deselect all" button left of it.
- Clicking it unchecks every model checkbox and dispatches a native `change`
event per row, keeping the dialog's React-controlled selection in sync —
"Add selected" then adopts nothing, exactly as if each box were cleared by
hand.
- No host code, no RPC, no settings, no session events. The observer is
disposed with the plugin fiber; uninstalling leaves nothing behind.
- Localized: shows 「取消全选」 with a Chinese UI and "Deselect all" with an
English UI, following the Cancel button's language.
## Install
```sh
dsh plugin --profile web add github:dsh-fetch-models-unselect-all # or a local clone:
dsh plugin --profile web add /path/to/dsh-fetch-models-unselect-all
```
Restart `dsh web` and hard-refresh the browser after installation.
## Build
```sh
DSH_CHECKOUT=/path/to/deepseek-harness node build.mjs
```
`build.mjs` resolves the checkout's esbuild + typescript and emits
`lib/index.js` (host, no-op) + `lib/client.js` (browser bundle,
`__ModuleLoader__` format) + `lib/types/` declarations.
## Notes
The dialog has no official plugin slot, so the button is anchored on the
dialog's DOM structure ("Add selected" action + checkbox list). A future
settings-form redesign may require a small update to the anchor logic.
## License
MIT
Install
dsh plugin --profile web add github:Townrain/dsh-fetch-models-unselect-all
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-fetch-models-unselect-all from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.