cinob/dsh-plugin-custom-provider-enhancer
⚡ DeepSeek Harness 自定义模型增强插件:在配置第三方提供商时,自动从权威模型库补齐上下文大小、Token 上限、视觉多模态输入与思考强度档位。
项目介绍Project Overview
DSH Custom Provider Enhancer 是面向 DeepSeek Harness/Cordis 的自定义模型提供商增强插件,拦截模型发现与信息解析,自动补全上下文窗口、最大输出、视觉输入和推理强度,并写入 settings.yaml。适用于接入 OneAPI、NewAPI、OpenRouter、vLLM、Ollama 等 OpenAI 兼容网关时。注意:仅影响自定义第三方提供商,未知模型使用默认回退值。
DSH Custom Provider Enhancer is a DeepSeek Harness/Cordis plugin for custom model providers. It intercepts model discovery and resolution to automatically fill context window, max output tokens, vision input, and reasoning effort levels, then persists them to settings.yaml. Use it when connecting OpenAI-compatible gateways such as OneAPI, NewAPI, OpenRouter, vLLM, or Ollama. It only affects custom third-party providers; unknown models receive fallback defaults.
请帮我了解并安装插件:【dsh-plugin-custom-provider-enhancer】【https://github.com/cinob/dsh-plugin-custom-provider-enhancer】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add github:cinob/dsh-plugin-custom-provider-enhancer
把 cinob/dsh-plugin-custom-provider-enhancer 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
DSH Custom Provider Enhancer
English | 简体中文
DSH Custom Provider Enhancer is an out-of-the-box DeepSeek Harness (DSH) / Cordis plugin designed for Custom Model Providers (e.g. OneAPI, NewAPI, OpenRouter, vLLM, Ollama, and OpenAI-compatible API gateways).
When discovering or saving models in the Web GUI, it automatically queries a 3000+ model database to populate Context Window (contextWindow), Max Output Tokens (maxTokens), Multimodal Vision (input: [text, image]), and Deep Thinking / Reasoning (reasoningEfforts).
📋 Table of Contents
- Overview
- Compatibility
- Key Features
- Install
- Configuration
- Quick Start
- Permissions & Data Security
- Troubleshooting & Rollback
- Development & Testing
- License
🎯 Overview
What problem does it solve?
When users connect custom third-party gateways (e.g. OneAPI, NewAPI, vLLM, Ollama) to DeepSeek Harness, the standard GET /models discovery endpoint only returns raw model IDs (such as gemini-3.7-flash, deepseek-v4-pro, or mimo-v2.5). It omits critical runtime parameters:
- ❌ Missing context limits causes inaccurate token pressure metering or context overflows.
- ❌ Missing multimodal flags (
input: ['text', 'image']) disables image uploads in the conversation interface. - ❌ Missing reasoning levels (
reasoningEfforts) hides the thinking intensity slider in chat.
How does this plugin solve it?
- Auto Discovery & Specification Enrichment: Intercepts
llm.discoverModelsand automatically fills correct context size and max output tokens. - Vision & Thinking Auto-Injection: Intercepts
llm.resolveModelInfoandsettings.mutateto automatically attach vision input and thinking levels both in runtime and insettings.yaml(~/.dsh/settings.yaml). - Zero Official Interference: Only affects custom third-party providers; native DeepSeek channels remain untouched.
🧭 Compatibility
| Environment | Supported Versions | Status |
|---|---|---|
| DeepSeek Harness (DSH) | 0.1.0-rc.1 ~ mainline |
✅ Verified (Runtime Compatible) |
| Cordis Framework | ^3.0.0 |
✅ Verified |
| Node.js | `^20.0.0 | |
| OS | Linux, macOS, Windows | ✅ Cross-Platform |
✨ Key Features
- ⚡ Zero-Config Automation: Works right out of the box when adding custom providers in Web Settings.
- 📏 Accurate Capacities: Automatic 1M context for Gemini 3.7 Flash, 1000K for DeepSeek V4 Pro, 128K for GPT-4o, 256K for MiMo 2.5, etc.
- 👁️ Automatic Vision Activation: Unlocks image uploads and visual reasoning in Web chat for multimodal models (Gemini, Claude, GPT-4o, MiMo, Qwen-VL, etc.).
- 🧠 Thinking Intensity Tiers: Injects reasoning effort gears (
off,low,medium,high,max) for reasoning models. - 💾 Dual-Layer Persistence: Automatically writes clean parameters into
settings.yamlon save, and patches legacy placeholder models in memory. - 🛡️ Fault-Tolerant & Offline Fallback: Built-in 30+ core model definitions, local caching, timeout circuit-breaking, and fuzzy matching for dated model snapshots (
-20241120).
Install
As a standard DSH Profile Bundle, installation is one simple command:
dsh plugin --profile web add github:cinob/dsh-plugin-custom-provider-enhancer
Note: As a Profile Bundle, the plugin automatically mounts and activates. There is no need to manually insert
custom-provider-enhancerinprofiles/web/cordis.patch.yml.
Uninstallation
dsh plugin --profile web remove dsh-plugin-custom-provider-enhancer
⚙️ Configuration
Optional configuration in $DSH_HOME/profiles/web/cordis.patch.yml:
- id: custom-provider-enhancer
config:
# Remote LiteLLM metadata catalog URL
metadataUrl: https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json
# Remote OpenRouter official model metadata URL
openrouterMetadataUrl: https://openrouter.ai/api/v1/models
# Request timeout in milliseconds (default: 6000ms)
timeoutMs: 6000
# In-memory cache TTL in milliseconds (default: 1 hour)
cacheTtlMs: 3600000
# Fallback context window when model is unknown (default: 128000)
defaultContextWindow: 128000
# Fallback max output tokens (default: 4096)
defaultMaxTokens: 4096
⚡ Quick Start
- Start DSH Web GUI (
dsh web). - Go to Settings ➔ Models ➔ Add Provider.
- Fill in your Base URL and API Key, then click Fetch available models.
- Check desired models and click Adopt, then click Save.
- All specifications (
contextWindow,maxTokens,input,reasoningEfforts) are automatically configured and saved!
🔒 Permissions & Data Security
- Network Access: Only requests the user-specified custom endpoint
GET /modelsand public model specification database (github.com/BerriAI/litellm). - Zero Credential Leaks: API Keys are passed through standard authorization headers only during user-initiated discovery; keys are never logged, forwarded, or stored by this plugin.
- Local Sandbox Safe: Strictly operates in-process through Cordis service hooks (
ctx.llm,ctx.settings); creates no subprocesses or arbitrary file modifications.
🛠️ Troubleshooting & Rollback
- Changes not reflecting: Ensure you click Save in Web Settings. If models were added prior to installing the plugin, opening Settings and clicking Save will auto-enrich them.
- Rollback:
Run
dsh plugin --profile web remove dsh-plugin-custom-provider-enhancer.
💻 Development & Testing
# Clone repository
git clone https://github.com/cinob/dsh-plugin-custom-provider-enhancer.git
cd dsh-plugin-custom-provider-enhancer
# Install dependencies
pnpm install
# Run automated tests
pnpm test
# Build distribution bundle
pnpm build
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS