In DSH Web UI, model switching is a high-frequency operation. Manual selection is not only time-consuming but also makes it difficult to quickly check provider balances. The dsh-model-slider plugin integrates directly with sliders and panels to solve model-switching efficiency and usage-monitoring issues.

Plugin Positioning

A DSH Web UI model-selector enhancement plugin maintained by ipcjs. Its core value lies in a low/medium/high quick-switch slider, an advanced selector, multimodal icons, and provider usage/balance display.

Core Features

  1. Three-Tier Quick-Switch Slider
    Clicking the model name opens a panel, with a low/medium/high slider at the top. The model and reasoning level for each tier are preset in the configuration file. A single click switches directly (the panel remains open, so you can immediately see the new model and usage).

  2. Advanced Selection
    Below the slider, the original “Model” and “Reasoning Level” entries are retained, allowing you to browse all models just like the native selector.

  3. Multimodal Icons
    Image/video/audio support icons are displayed directly after the model name (not shown for pure-text models).

  4. Provider Usage
    The bottom of the panel displays the current provider’s usage/balance.
    * Membership-based providers (e.g., kimi-coding): hover to show weekly quota and 5-hour window details.
    * Prepaid providers (e.g., deepseek): shows balance.

  5. User-Level Configuration
    The configuration file is located at ~/.dsh/.model-slider.json and is shared across all workspaces.

Installation and Activation

Use the official plugin command to install:

dsh plugin --profile web install ipcjs/dsh-model-slider

Restart DSH after installation to activate it.

Configuration

The configuration file is located at ~/.dsh/.model-slider.json. If this file does not exist, the plugin uses built-in defaults and does not need to be created manually.

Tier Configuration (levels)

Defines the three tiers of the slider. Each tier includes provider, model, and an optional reasoningEffort.

  • id: Unique identifier for the tier.
  • label: Display text (e.g., “Low”, “Medium”, “High”).
  • provider / model: Must match the provider and model names configured in DSH.
  • reasoningEffort: Reasoning level. If omitted, the model’s default value is used.
  • If an unavailable model or reasoning level is configured, clicking that tier will show an error.

Usage Query Configuration (usage)

Configures usage-query endpoints for each provider.

  • kind:
    • membership: Membership quota. Parses usage.{limit,remaining,resetTime} and limits[] windows.
    • prepaid: Prepaid balance. Parses balance_infos[0].{total_balance,currency}.
  • endpoint: Query endpoint address. An empty string means no query is performed (displays “Unavailable”).

API Key Security: The plugin reads the API Key from DSH’s credentials service (apiKeyEnv configured in settings.yaml) and does not hardcode it or write it to this configuration file.

Compatibility and Dependencies

  • Runtime Environment: DSH Web GUI (dsh web).
  • Plugin Type: Server-side static plugin. It is loaded automatically when DSH starts and does not require dynamic plugin approval.
  • Dependent Services: DSH’s built-in conversation.input.model slot and modelDirectories service.

Access and Catalog