Bundle
dsh-model-switch
DSH plugin: choose models for subagents and plan execution separately / 为子代理和计划执行选择更合适的模型
- Source
- lincong1987
- stars
- 11 stars
- License
- MIT
- Updated
- Updated 38 minutes ago
Readme
# dsh-model-switch
English | [中文](README.zh.md)
Use the right model for each stage of work in DeepSeek Harness.
The main conversation, subagents, and plan execution serve different purposes. `dsh-model-switch` lets each of them use a suitable model without changing the normal DSH workflow.
## Why use it
- **Match models to tasks** — keep your preferred model in the main conversation and use another model for subagents or plan execution.
- **Avoid repeated switching** — save defaults once instead of changing models before every task.
- **Confirm before execution** — review or change the model directly in the plan approval panel.
- **See what subagents use** — display the model, context window, and reasoning effort, such as `GPT-5.6 Sol 1M Max`.
- **Keep the main model unchanged** — after plan execution, DSH restores the previous main-session model.
## Preview
### Configure model defaults
<img src="docs/settings.png" alt="Model switch settings" width="720" />
### Choose the model for plan execution
<table>
<tr>
<td width="50%"><img src="docs/plan.png" alt="Plan awaiting review" /></td>
<td width="50%"><img src="docs/plan-exec.png" alt="Plan execution model" /></td>
</tr>
</table>
### See the model used by subagents
<table>
<tr>
<td width="50%"><img src="docs/subagent.png" alt="Subagent model overview" /></td>
<td width="50%"><img src="docs/subagent-detail.png" alt="Subagent model details" /></td>
</tr>
</table>
## Install
Use the GitHub spec. This plugin is not published as an npm package, so do not use `@lincong1987/dsh-model-switch`.
```bash
dsh plugin --profile web add github:lincong1987/dsh-model-switch
```
Replace `web` with the profile DSH is actually running. DeepSeek Harness Desktop typically uses `desktop`.
Restart DSH after installation.
## Update DSH
This plugin requires DeepSeek Harness **0.1.5-rc.1** or later. DSH has no `dsh update` command — install the version you want the same way you originally installed it.
1. Check the installed version and what npm currently publishes:
```bash
dsh --version
npm view @deepseek-ai/dsh dist-tags
```
As of 2026-09-10, `latest` points to `0.1.5-rc.1` (this plugin's current target), `next` points to `0.1.5-rc.2`, and the `alpha` tag points to `0.1.5-alpha.2`. Pin the exact version (`@0.1.5-rc.1`) when reproducibility matters.
2. **npx (Web):**
```bash
npx --yes @deepseek-ai/dsh@0.1.5-rc.1 web
```
3. **Global npm install:**
```bash
npm install -g @deepseek-ai/dsh@0.1.5-rc.1
dsh --version
```
Then restart `dsh web`. DSH needs Node.js `^22.19.0` or `>=24`.
4. **Desktop:** Fully **Exit** from the tray, then use **Check for Updates** in the app (or install a newer Desktop build). Desktop ships its own packaged `dsh`; updating npm or `npx` does not replace that copy. After Desktop finishes updating, restart it.
DSH is still a developer preview and may change on-disk formats between releases. Back up `~/.dsh` (Windows: `%USERPROFILE%\.dsh`) before jumping versions. In particular, 0.1.0-rc.8 changed the SQLite storage format incompatibly, and 0.1.2-alpha.3 removed the optional SQLite session backend entirely (existing data is kept but needs an older version to export); treat local sessions as non-portable when crossing those boundaries. 0.1.2-alpha.5 fixed upgrading from 0.1.1-rc.2 or 0.1.2-alpha.3 (the app now starts and session list titles are kept); 0.1.5-rc.1 is the current release-candidate line that this plugin targets.
After DSH is on a compatible version, reinstall this plugin as described below.
## Reinstall / after a DSH update
Reinstall the plugin when this repository has a new release, or after you upgrade DeepSeek Harness. The plugin tracks a specific DSH version (currently **0.1.5-rc.1** or later), so a host upgrade should be followed by a plugin reinstall.
1. Update DSH first (see [Update DSH](#update-dsh); skip this step if only the plugin changed).
2. Reinstall with `--force` so DSH refreshes the GitHub source:
```bash
dsh plugin --profile web add --force github:lincong1987/dsh-model-switch
```
3. Restart DSH.
On Desktop, run **one** `plugin add` at a time. Fully **Exit** from the tray (closing the window is not enough), wait until Desktop finishes starting, then reinstall, then Exit and reopen again. If install fails with `another plugin install recovery transaction is pending`, quit Desktop, wait, and retry once. If it is still pending, quit Desktop, delete `%APPDATA%\DSH Desktop\plugin-install-recovery`, reopen Desktop, then run a single `add --force`.
To bypass the Desktop wrapper, run the matching DSH CLI in a normal terminal:
```powershell
npx --yes @deepseek-ai/dsh@0.1.5-rc.1 plugin --profile desktop add --force github:lincong1987/dsh-model-switch
```
## Use
1. Open **Settings → Model switch**.
2. Configure the **Subagent model** and **Plan execution model**:
- **Follow main model** uses the current conversation model.
- **Custom** lets you choose a model and reasoning effort.
3. When reviewing a plan, confirm or change the execution model before selecting **Approve**.
The model selected in the plan review panel takes priority over the saved plan-execution setting.
## Compatibility
Requires DeepSeek Harness **0.1.5-rc.1** or later. Settings are stored in the host settings document through the plugin's registered `model-switch` namespace.
Subagent model switching applies to in-process subagents such as `spawn` and `fork`. External-process agents may manage their models independently.
DSH 0.1.2-alpha.1 also introduced a native, agent-driven model selection for subagents (the agent picks provider/model/effort within its authorization). This plugin is complementary: it enforces a fixed, user-configured routing policy instead, and adds the plan-execution model switch, restore, and session model badges.
## Community
<img src="docs/wechat.jpg" alt="WeChat" width="160" />
## Links
- [Linux.do](https://linux.do)
## License
MIT
Install
dsh plugin --profile web add github:lincong1987/dsh-model-switch
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-model-switch 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.