# dsh-model-controller [中文](../README.md) | English Install this plugin into a DSH profile and it will pick a model once per user turn: regex keywords first, then a semantic classifier if nothing matches. The current release requires DeepSeek Harness `0.1.1-rc.2` or a compatible version. ## Default routes | When | Model | Reasoning | | ------------------------------------------ | ------------------- | --------- | | Complex structure (`v4pm`, `重构`, `设计`) | `deepseek-v4-pro` | `max` | | Review (`review`) | `deepseek-v4-pro` | `high` | | Small script (`v4fm`) | `deepseek-v4-flash` | `max` | | Small method (`v4fh`) | `deepseek-v4-flash` | `high` | | Active Plan Mode | `deepseek-v4-pro` | `max` | | Semantic classifier (fallback) | `deepseek-v4-flash` | `off` | Unmatched requests keep the Agent's original model. The route lasts for the whole turn. ## Settings Open **Settings → Plugins → Plugin configuration**. Saved changes apply from the next user turn. - **Global matching mode** — Mixed (regex, then semantic), Semantic only, or Regex only. - **Route rules** — Add, edit, reorder, or delete routes; restore the built-in table. - **Semantic classifier** — Model used only when mixed/semantic mode needs a classification step. - **Plan Mode** — Force the dedicated Pro/max model while Plan Mode is active. - **Routing metadata** — Show provider, model, effort, and route id at the start of reasoning. ## Install ```sh dsh plugin --profile web add dsh-model-controller@next dsh web ``` From this repository, build first and install the checkout: ```sh pnpm install pnpm run build dsh plugin --profile web add . ``` Remove it with `dsh plugin --profile web remove dsh-model-controller`.