Introduction

When integrating a custom model provider into DSH’s Web GUI, model specifications often require configuration item by item: contextWindow, maxTokens, multimodal input, and reasoningEfforts. If these fields are missing, model selection, context limits, image input, and thinking intensity levels may be incomplete.

Below is an introduction to dsh-plugin-custom-provider-enhancer. It is a DeepSeek Harness / Cordis plugin designed for custom model providers that automatically fills in the above parameters when models are discovered or saved in the Web GUI.

What is this

  • Plugin Name: cinob/dsh-plugin-custom-provider-enhancer
  • Maintainer: cinob
  • License: MIT
  • Positioning: A Profile Bundle for DSH / Cordis that automatically populates model specifications when adding a custom provider in the Web GUI.

Core Features

  1. Automatically works when adding a custom provider, querying the model database and filling in model specifications.
  2. Automatically fills in contextWindow and maxTokens.
  3. Automatically enables multimodal visual input: input: [text, image], for image upload and visual reasoning.
  4. Automatically injects Deep Thinking / Reasoning intensity levels: off, low, medium, high, max.
  5. Only affects custom third-party providers and does not modify the native DeepSeek channel.
  6. Writes to settings.yaml upon saving and patches existing placeholder models in memory.
  7. Includes built-in definitions for 30+ core models, local caching, timeout circuit breaking, and fuzzy matching for models with date snapshots.

Installation and Activation

The installation command is as follows:

dsh plugin --profile web add github:cinob/dsh-plugin-custom-provider-enhancer

After installation as a Profile Bundle, it is automatically mounted and activated; no manual insertion of custom-provider-enhancer in profiles/web/cordis.patch.yml is required.

Compatible environments:

  • DSH: 0.1.0-rc.1 ~ mainline
  • Cordis: ^3.0.0
  • Node.js: ^20.0.0 || ^22.0.0 || >=24.0.0
  • OS: Linux, macOS, Windows

Typical Usage

  1. Start the DSH Web GUI:
dsh web
  1. Go to Settings ➔ Models ➔ Add Provider.
  2. Enter the Base URL and API Key, then click Fetch available models.
  3. Select the target model and click Adopt, then click Save.
  4. After saving, the documentation states that model specifications are written to settings.yaml, and existing placeholder models in memory are patched.

Optional Configuration

The optional configuration path is as follows:

$DSH_HOME/profiles/web/cordis.patch.yml

Listed optional configuration items:

metadataUrl
openrouterMetadataUrl
timeoutMs
cacheTtlMs
defaultContextWindow
defaultMaxTokens

Use Cases and Notes

  • Suitable for users who want to integrate custom third-party model providers via the DSH Web GUI.
  • The plugin only affects custom third-party providers and does not modify the native DeepSeek channel.
  • The plugin runs in-process via Cordis service hooks; the documentation states it does not create child processes or perform arbitrary file modifications.
  • Network access is limited to user-specified custom endpoints GET /models and public model specification databases; the documentation mentions github.com/BerriAI/litellm and openrouter.ai/api/v1/models.
  • Regarding credentials, the documentation states that API Keys are only passed via standard authorization headers and are not logged, forwarded, or stored.
  • The plugin runs with the permissions of the current dsh process. Before installation, you should check the source code, license, and configuration items to ensure they meet local security requirements.

Uninstallation

The uninstallation command is as follows:

dsh plugin --profile web remove dsh-plugin-custom-provider-enhancer

Conclusion

The value of this plugin lies in reducing repetitive configuration for custom providers: after installation, fields such as context, output limits, visual input, and reasoning intensity are automatically filled in when fetching models in the Web GUI.

GitHub: https://github.com/cinob/dsh-plugin-custom-provider-enhancer

The community directory page URL was not confirmed in this documentation, so you can use the GitHub address above directly.