Townrain/dsh-fetch-models-unselect-all ↗★ 1
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.
AI 분석
核心用于优化模型管理操作。适合在使用拥有大量模型的自定义服务商时,需要快速清除默认全选并自定义勾选模型列表的用户。
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Townrain/dsh-fetch-models-unselect-alldsh-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
changeevent 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
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
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