Skip to content
dsh.fish
Bundle

dsh-model-preset

DeepSeek Harness plugin with two default model-and-reasoning shortcuts above the composer and optional Settings customization.

Source
kaixinbaba
stars
2 stars
License
MIT
Updated
Updated 10 days ago

Readme

# dsh-model-preset

`dsh-model-preset` adds two default flat shortcut buttons in a full-width row above the DSH composer card. Settings can add a third button. Each button selects one complete `provider + model + reasoningEffort` combination in the current conversation.

It is **not** an Agent preset. It does not change Code Mode, Creator Mode, tools, prompts, permissions, personas, or the agent composition.

## Installation

Install it into a DSH Web profile with:

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

The package contributes both the Host plugin and its Web client bundle. Start or restart that profile's Web host after installation, then open **Settings → Plugins → 模型预设** to customize the buttons.

## Configuration

Add the package to a Web profile and include its patch, or copy the row from `cordis.patch.yml` into your own composition. This is the composition default:

```yaml
- 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
```

`presets` accepts zero to three entries. `label`, `color`, `provider`, and `model` are required. `color` must be a six-digit `#RRGGBB` value. Omit `reasoningEffort` to preserve the provider/model default; otherwise use the effort id advertised by that model's catalog.

## Settings editor

After the plugin is loaded, open **Settings → Plugins → 模型预设**. The editor can add or remove buttons and change every field, including the native color picker; it supports up to three buttons. Saving writes `$DSH_HOME/model-preset.json`, updates the current page immediately, and persists across restarts. A saved user configuration overrides the composition default; remove that file to return to the patch defaults.

## Behavior

- Buttons preserve configuration order and use the configured label and accent color.
- The active button is derived from the effective current selection, including the resolved reasoning effort.
- A click calls the same per-session model directory used by the built-in model picker.
- A selection applies to the current conversation's next model request; an in-flight request is not rewritten.
- Addressed subagent sessions do not render these controls.
- A rejected selection leaves the previous selection in place and shows a compact failure status.
- The host serves configuration through same-origin `GET` and `POST /dsh-model-preset/config` routes.

## Model Experience

The plugin changes only the user-facing composer controls. It does not add model-visible prompt text, tools, events, or durable session data. The selected model and reasoning effort are still recorded and applied through the existing DSH model-selection path.

## Known Limitations and Deferred Work

- A preset is not checked against the model catalog until the user selects it, so a stale model or effort id reports the host rejection at click time.
- The current Web host must expose the model-selection service and the `conversation.input.dock` and `settings.plugins.tab` slots; the plugin is intentionally Web-only.

Install

dsh plugin --profile web add github:kaixinbaba/dsh-model-preset

Profile: web

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