dsh-model-metadata: Filling Capability Metadata for DeepSeek Harness Custom-Gateway Models
pgjh/dsh-model-metadata
A DSH plugin that looks up custom-gateway models by bare name and fills in context window, output cap, reasoning levels and vision support — without touching your settings.
dsh-model-metadata is a DSH plugin that solves the problem of custom-gateway models having a name but no capability parameters. The harness normally looks metadata up by the raw gateway name plus model id, so nothing matches and the model is treated as supporting nothing: a 256K context assumption, no reasoning levels, and rejected images. This plugin re-queries the catalog by bare model name and supplies the context window, output cap, reasoning levels and vision support, filling only what is missing without overwriting your hand-written fields, and adds Reasoning Level and Vision controls to the Settings page.
How to Install
dsh plugin --profile web add dsh-model-metadata- Category
- Models & Reasoning
- Platform
- DSH Plugin
- Author
- pgjh
- Distribution
- Plugin
dsh-model-metadata Key Features
dsh-model-metadata Repo Summary
What Does It Do?
It is a DSH plugin for DeepSeek Harness that fills in the missing capability metadata of models you declared yourself on a custom gateway. When you connect your own gateway, settings.yaml usually contains only a model id, and the harness looks up metadata by the raw gateway name plus model id, so nothing matches and the model is treated as supporting nothing: the context window is assumed to be 256K, no reasoning levels are offered, and image input is rejected. This DSH plugin looks each model up by its bare name (the part after the last slash in the id) and supplies the context window, output cap, reasoning levels and vision support it should have, without touching any DSH file. It is maintained by pgjh under the MIT license and written in JavaScript.
Core Features
- Name-based metadata matching: extracts
gpt-4ofrom an id such asmy-gateway/gpt-4oand searches the official route, the built-in catalog, opencode and models.dev in order, then fills in the context window, output cap, reasoning levels and vision support; name variants such asdeepseek-v41-flash,deepseek-v4.1-flashand different capitalizations resolve to the same entry, and suffixes like-expare tolerated. - Fill only what is missing: fields you wrote by hand in settings.yaml are never overwritten; when the settings document cannot be read (wrong location, no YAML parser available, or broken YAML syntax) the plugin fills in nothing at all and logs the reason, so your own pinned values are not replaced by catalog defaults.
- Graphical controls: adds Reasoning Level and Vision controls to each model row on the Settings page, an entry point the official DSH interface does not provide; changes are only pinned when you press Write, otherwise they keep following the catalog.
- Line-scoped writes: a write touches only the two fields of that row, a double click writes once, and unsaved changes in other rows are preserved; read-only deployments are told clearly that the card cannot be written.
- Self-updating catalog data: models.dev data is refreshed at startup, when the interface is opened, and daily (checked hourly for staleness), so new models need no manual maintenance and unchanged data is only confirmed rather than re-downloaded.
How to Use This Plugin?
After enabling it in DSH, go to Settings → Models → your gateway card → Edit → Custom settings → Model catalog. Each model row gains a Reasoning Level row and a Vision row plus a conclusion line such as "auto-matched: anthropic · 200K / output 64K · reasoning levels · vision"; a "no match" result means the name exists in no catalog and you must fill it in yourself. Reasoning Level offers follow-auto, reasoning off, low/medium/high, or custom values written like low, high, max; Vision offers follow-auto, on (can see images) or off (text only). The Write button appears only after you change something and pins those two fields for that row while leaving everything else intact. Newly added model rows re-query the catalog automatically, so you do not need to close the settings page or restart DSH. Context window and output cap remain managed by the official Capacity section; the plugin only tells you where those values really come from (your own declaration, the catalog, or the gateway default). Control and conclusion text follows the Settings page language, showing Chinese on a Simplified Chinese page and English on an English one.
How to Troubleshoot This Plugin?
An enrichment off (…) entry in the log means the plugin deliberately skipped enrichment, usually because the settings document is not where it looks, no YAML parser is available on the machine, or a half-finished edit broke the YAML syntax; fix it as described in the official documentation and enrichment resumes. A "no match" conclusion means the model name exists in no catalog and its parameters must be entered manually. If pressing Write returns a message that the card is read-only, the current deployment does not allow changes from the Settings page.
This page is an independent rewrite of the plugin's official README — for authoritative documentation and the latest changes, refer to the source: pgjh/dsh-model-metadata. The plugin is third-party code that runs on your machine once installed; inclusion does not imply endorsement — please review the source before installing.
DSH Plugin FAQ
