Skip to content
dsh.fish
Bundle

dsh-tui-model-switch

Per-stage model routing for dsh-TUI: let subagents run on a different provider/model/reasoning-effort, configured in /settings (model-switch namespace), status via /model-switch.

Source
FUSU123fusu
License
MIT
Updated
Updated 3 days ago

Readme

# dsh-tui-model-switch

> 适用于 [dsh-TUI](https://github.com/ccch1mneyyy/dsh-TUI)([dshtui.com](https://dshtui.com))的社区插件。

让子代理用另一套模型跑——主会话模型不变。机制参考 [lincong1987/dsh-model-switch](https://github.com/lincong1987/dsh-model-switch)(MIT)重写为 TUI 原生:设置走 dsh settings 服务(`model-switch` 命名空间),在 TUI 的 `/settings` 屏「模型路由」区块直接编辑。

Per-stage model routing for dsh-TUI: run subagents on a different provider/model/reasoning-effort while the main conversation keeps its own route. Inspired by lincong1987/dsh-model-switch (MIT), rebuilt TUI-native.

## 安装 Install

```bash
dsh plugin --profile dsh-tui add github:FUSU123fusu/dsh-tui-model-switch
```

重启 dsh 后生效。Restart DSH after installation.

## 使用 Use

1. 打开 `/settings` →「模型路由 / Model switch」区块。
2. 「子代理模型」选 **自定义 / Custom**,「子代理路由」直接从**已配置的提供商模型目录**里下拉选择(目录不可用时退化为手动输入 `provider/model`),可选填推理强度(`low / medium / high / max`,合法档位以模型为准;留空跟随模型默认)。
3. `/model-switch` 随时查看当前生效的路由。

设为「跟随主会话 / Follow main session」时行为与未安装插件完全一致。

- 子代理启动路径(`subagents.start` / `startContinuable`)会被合入自定义的 `agentOptions`;调用方显式指定的 provider/model 优先于本设置。
- 推理强度不属于 `AgentOptions`,通过子代理的 `agent/request` 拦截器注入,只影响 `origin: subagent` 的会话。
- 计划执行(plan-execute)模型路由待 TUI 审批面板扩展缝落地后提供。

## 机制 How it works

- Settings persist in the dsh settings service (`model-switch` namespace), layered with composition entries and live-reloaded; the TUI `/settings` screen edits them through the `tuiSettingsSections` seam.
- `ctx.subagents.start` / `startContinuable` are wrapped to merge the custom selection into `agentOptions` (explicit request fields win over the setting).
- Reasoning effort rides the child agent's `agent/request` interceptor (subagent-origin sessions only).

Non-TUI hosts keep working: the command reports the route as text and the settings section simply doesn't render.

## License

MIT

Install

dsh plugin --profile web add github:FUSU123fusu/dsh-tui-model-switch

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source