Introduction

When developing agents using DSH (DeepSeek Harness), switching models requires confirming three dimensions: provider, model, and reasoning effort. Daily work often involves toggling between two sets of configurations: “Quick Results” and “Deep Reasoning,” requiring the opening of the built-in model selector and re-selection of items every time.

If common combinations could be fixed as buttons, switching would be completed with one click, saving this repetitive operation. The dsh-model-preset introduced below does exactly that.

What is it

dsh-model-preset is maintained by kaixinbaba (repository kaixinbaba/dsh-model-preset), licensed under MIT, and is currently at version 0.2.0. It displays a full row of shortcut buttons above the composer card in DSH Web. Each button instantly selects a complete provider + model + reasoningEffort combination for the current session.

DSH’s philosophy is “everything is a plugin,” and this plugin follows the same approach: it does not modify core behavior but only mounts controls into existing slots in the Web interface.

One point to clarify: it is not an Agent preset. It does not change Code Mode, Creator Mode, Tools, Prompts, Permissions, Persona, or agent composition; it only determines “which model to use for the next request.”

Core Features

Verified capabilities include:

  1. Display two default flat shortcut buttons in a full row above the composer card, with a maximum of three configurable in Settings.
  2. Each button corresponds to a complete provider + model + reasoningEffort combination and takes effect in the current session upon clicking.
  3. Buttons maintain the configuration order and use the configured label and accent color; the active button is derived from the current valid selection and includes the parsed reasoning effort.
  4. Clicking invokes the same per-session model directory as the built-in model selector.
  5. The selection applies to the next model request in the current session and does not rewrite an ongoing request; rejected selections retain the original choice and display a compact failure status.
  6. Settings → Plugins → Model Preset provides an editor where you can add/remove buttons and modify all fields, including a native color picker.
  7. Saves to $DSH_HOME/model-preset.json, updates the current page immediately, and persists across restarts; user configuration overrides the composition default.

Installation and Usage

First, execute the installation command:

dsh plugin --profile <profile> add dsh-model-preset

This command installs the plugin into the specified DSH Web profile; the package also contains the Host plugin and Web client bundle. After installation, start or restart the Web host for that profile, then open Settings → Plugins → Model Preset to see the button editor.

Environment requirements: node >=22.19.0, dsh >=0.1.0-rc.6.

Typical Usage

The default composition configuration includes two buttons: “Quick” corresponds to deepseek-official / deepseek-v4-flash / reasoningEffort: high, and “Deep” corresponds to deepseek-official / deepseek-v4-pro / reasoningEffort: high. If you use composition to manage configuration, you can copy the following snippet from the plugin’s cordis.patch.yml and add it to your own composition:

- id: dsh-model-preset
  name: 'dsh-model-preset'
  config:
    presets:
      - label: 快速
        color: '#2F80ED'
        provider: deepseek-official
        model: deepseek-v4-flash
        reasoningEffort: high
      - label: 深度
        color: '#9B51E0'
        provider: deepseek-official
        model: deepseek-v4-pro
        reasoningEffort: high

Several configuration rules:

  1. presets accepts 0–3 entries.
  2. label, color, provider, and model are required.
  3. color must be a six-digit #RRGGBB value.
  4. Omitting reasoningEffort retains the provider/model default; otherwise, it uses the effort ID published by that model in the directory.

If you don’t want to modify the configuration file, after installing via the steps above, you can directly add/remove buttons and modify fields in Settings → Plugins → Model Preset, and it takes effect immediately upon saving.

Use Cases and Notes

Suitable scenarios: People who frequently switch between a few fixed model combinations on the Web. If the combinations change often, the built-in model selector is sufficient; the value of this plugin lies in hardcoding these fixed combinations.

Please note the following points:

  1. Limited to Web. The plugin requires the current Web host to expose the model-selection service and the two slots conversation.input.dock and settings.plugins.tab; subagent sessions addressed by these controls will not render them.
  2. Presets are only checked against the model directory when the user clicks. If the model or effort ID has expired, the host will reject the request upon clicking, and the original choice is retained.
  3. Configuration is provided by the Host via the same-origin GET and POST /dsh-model-preset/config routes.
  4. The plugin does not add visible prompts, tools, events, or persistent session data for the model; the selected model and effort are still recorded and applied via the existing DSH model selection path.
  5. Deleting $DSH_HOME/model-preset.json reverts to the patch default configuration.

Security: The plugin runs with the permissions of the current dsh process; it is recommended to check the source code and license yourself before installation. The project license is MIT.

Summary

dsh-model-preset solves a small but specific problem: compressing repetitive model selection operations into a single click. One line command to install, default configuration is ready out of the box, adjustments are made in Settings, and the configuration persists across restarts.

Plugin directory page and repository address:

  • Community directory: https://www.skillhub.cn/plugins/kaixinbaba/dsh-model-preset
  • GitHub: https://github.com/kaixinbaba/dsh-model-preset

It should be noted that the aforementioned directory is an independent site maintained by the community and has no official affiliation with DeepSeek or Hypothesis.