DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Relay Reasoning — DSH Plugin for DeepSeek Harness
← Plugins
R

dsh-relay-reasoning

Relay Reasoning

Enable DSH to support inference levels for relay services: five options—off, low, medium, high, and max—for each model, compatible with any OpenAI-compatible relay service.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:wuwan911-cell/dsh-relay-reasoning#2f275ffacdb6c083783216a4af65a66dafc7e78b
READMECompatibilityVersions

Compatibility and provenance

Relay Reasoning is published as dsh-relay-reasoning and currently resolves to version 2.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
github
Registry updated
10/19/2026

Versions

2.1.0stable
10/19/2026
2.0.0stable
10/18/2026

Related plugins

Loading related plugins…

Latest
2.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
any
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/19/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in models-usage.

Whale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editinUsage@linxin666/dsh-usageUsage statistics plugin for the dsh web GUI: per-provider balance and coding-plan quota detection plus a live token usage ledger, with a compact price glance card above the sidebar's Settings rowClient Ui Model Capabilities@linxin666/dsh-client-ui-model-capabilitiesPer-model capability declarations (image input and reasoning efforts) for custom pi-ai providers, edited in place on the Models settings cards; writes the official llm-pi-ai settings namespace, no DSH source changes.Cost Meterdsh-cost-meterDeepSeek Harness session cost statistics plugin: current session cost, daily expenses, historical records, and synchronization with official pricing; supports multi-provider and multi-model price billing (built-in price catalog for 170+ model IDs with automatic matching), and querying and displaying

README

dsh-relay-reasoning

English | 中文

Real reasoning levels — off / low / medium / high / max — on every model of your OpenAI-compatible relay, right in the DSH model picker.

The problem

Relays such as a self-hosted gateway fronting many models accept the reasoning_effort request parameter, but DSH offers no reasoning control for them. The reason is structural: @deepseek-ai/dsh-llm-pi-ai only publishes selectable levels for a model whose reasoningEfforts field declares them, so a route configured by hand shows nothing.

Declaring those levels by hand means repeating seven lines for every model — and re-doing it whenever the model list changes.

What this plugin does

It writes reasoningEfforts into the llm-pi-ai profile entry for every model on the configured providers, and the picker immediately offers those levels. No restart, and no editing of your model list.

It keeps up with your configuration. The first pass runs at activation, and every later profile configuration reload — adding a relay or a model from the settings UI, editing a route — runs it again and fills in whatever is missing. A relay you connect while DSH is running gets its levels without a restart.

Why these five levels

pi-ai understands seven levels, but a relay does not distinguish all of them. Measured over three prompts and two passes on one relay route, median reasoning tokens per level:

Levelmedian reasoning tokens
off0
minimal108
low122
medium155
high142
xhigh125
max359

max is roughly double every other level, so it is a genuinely stronger tier and is included by default.

The five middle levels (minimal through xhigh) land within each other's noise on this route, so publishing them would only duplicate choices. They stay out by default but can be requested through levels if a route of yours does distinguish them.

If your relay turns out to ignore max, drop it with levels: [off, low, medium, high] so the picker does not offer a level that does nothing.

Install

From the DSH workshop (Settings → Workshop → Plugins), or directly:

plugin_manager install_bundle → dsh-relay-reasoning

Development builds can also be installed from a checkout:

plugin_manager install_bundle → <path to this repository>

Configuration

The plugin row takes an optional config:

- insert:
    - id: relay-reasoning
      name: dsh-relay-reasoning
      config:
        target: llm-pi-ai                 # profile entry id to configure
        providers: []                     # empty = every provider on that entry
        levels: [off, low, medium, high, max]  # published levels, ascending
        force: false                      # true = rewrite once at activation even if already correct
        debugLog: ""                      # optional file path for diagnostics

providers: [] means the plugin covers every provider on the entry, so adding a new relay needs no plugin change.

levels defaults to off, low, medium, high, max. Narrow it if your relay ignores a level:

levels: [off, low, medium, high]

Any subset of off, minimal, low, medium, high, xhigh, max is accepted; names are published in ascending order and unknown names are dropped.

Idempotent

A pass writes nothing when every model already declares exactly the configured levels; it inspects and stops. Updating the package, and the configuration reload caused by the plugin's own write, therefore never churn your configuration, and any leftover declaration from a manual setup is detected and rewritten.

Changing levels does rewrite the affected models, because their current declaration no longer matches.

force: true is honoured at activation only — it rewrites once, including declarations that are already correct. Later reloads ignore it, because honouring it every time would rewrite the same declaration and reload in a loop.

How it works

Three details are worth knowing if you read the source.

It does not override the llm-pi-ai row. A Cordis loader patch replaces a row's config wholesale rather than merging it, so a patch that added reasoningEfforts would erase baseURL, the credential reference, and the whole model list. The plugin instead calls settings.mutate() with path-scoped operations, touching only providers.<name>.models[i].reasoningEfforts.

It writes outside the transaction. The HMR config editor refuses to nest transactions, and its guard reads an AsyncLocalStorage store that survives awaits and timers, so deferring is not enough. The plugin runs the write through hmr.executing.exit() — the same mechanism dsh-hmr uses when wiring a config watcher from inside a transaction.

It listens to app-boot/config-reload. Every successful profile reload emits that event — including a relay added from the settings UI. The plugin inspects once shortly afterwards; a reload caused by its own write only finds everything already correct and stops, so there is no loop, and a burst of events collapses into one inspection.

Compatibility

  • Requires DSH >=0.2.1-rc.1.
  • No runtime dependencies: only node:fs and Host-provided services.
  • Works with any OpenAI-compatible route declared on the llm-pi-ai entry, not just one relay.

License

MIT