Introduction

In DSH (DeepSeek Harness), the reasoning effort selector only applies to DS-series models. If models are routed through a local LLM gateway and connected manually—such as aliases like gemini3.x, grok, kimi-*, or glm5.x—they neither display the effort selector nor allow switching thinking intensity in the chat. Previously, one had to manually declare efforts for each model in ~/.dsh/settings.yaml, but these declarations would drift after DSH upgrades or when the interface writes back settings, requiring repeated rewriting.

Below introduces the luxueliu-reasoning-efforts plugin. It consolidates the effort table into a single source of truth, provides check and reapply commands, and includes a router-level source patch.

What is this

luxueliu-reasoning-efforts is a DeepSeek Harness (DSH) plugin. In one sentence: it allows non-DS-series models on a local LLM gateway to display a reasoning effort selector in DSH and one-click reapply efforts after DSH upgrades.

Developed by luxueliu, MIT licensed, current version 0.1.0. The core capabilities are the effort truth source efforts.json, the check/reapply command /efforts, and the router-level source patch upstream.patch.

Core Features

Effort Truth Source efforts.json

efforts.json pre-sets a reasoningEfforts table for 20 example gateway aliases. The values are off / low / medium / high / xhigh / max, declared according to what each model actually supports.

This table is just an example: there is no limit on slots; add whatever models exist in the gateway, and you can arbitrarily add local gateway models.

The /efforts Command

/efforts compares the live ~/.dsh/settings.yaml with the gold standard effort table to check if efforts have drifted. If drift is found, it can be reapplied in one click, with an automatic backup settings.yaml.bak-reapply-* created before reapplying.

The command is implemented in lib/index.js, using text-level replacement while preserving the original spelling of off:.

Router-level Source Patch upstream.patch

upstream.patch adds a “router-level reasoningEfforts default value” to the upstream llm-pi-ai: declare the effort table once for the entire gateway, so all manually declared models not separately specified automatically inherit it.

Note: The upstream llm-pi-ai repository does not accept external PRs. You can manually apply this patch first, and reapply as needed after DSH upgrades.

Package Files

In addition to the effort table and patch, the package includes several supporting files:

File Purpose
settings.yaml.gold Complete settings snapshot (including default models), for full coverage
litellm-config.yaml.gold Gateway configuration snapshot, including allowed_openai_params: reasoning_effort
reapply.py Independent reapply script, writes only efforts, does not touch default models, --check only checks
restore-settings-gold.ps1 Rolls back the entire settings to the gold standard
lib/index.js /efforts command implementation (check + reapply)

Default Configuration

The plugin’s cordis.patch.yml comes with default configuration, which can be overridden in the profile’s cordis.patch.yml:

- insert:
    - id: luxueliu-reasoning-efforts
      name: luxueliu-reasoning-efforts
      config:
        settingsPath: ""        # live settings.yaml; leave empty to auto-detect ~/.dsh/settings.yaml
        checkOnStart: true      # check for effort drift on startup and prompt
        applyOnStart: false     # auto-reapply on startup (default off, check first)
        effortsFile: "efforts.json"

The default behavior is “check only on startup, do not auto-rewrite”: checkOnStart is true, applyOnStart is false.

Installation and Usage

The plugin requires Node.js 22.18+ (declared as >=22.18.0) and a DeepSeek Harness Web profile. Installation command:

dsh plugin --profile web add github:luxueliu/luxueliu-reasoning-efforts

Takes effect after restarting DSH.

Typical Usage

Scenario 1: Only want the 20 pre-set example aliases to show efforts (model-level declaration). After installing the plugin, execute:

/efforts        # Check if efforts have drifted
/efforts apply  # Write the gold standard efforts back to live settings (creates settings.yaml.bak-reapply-* first)

Scenario 2: Want to use the router-level capability (or experience it before official merge), choose one of the following two methods:

# Method 1: Apply the package patch + package reapply.py to reapply (one-click restore efforts after DSH upgrade)
python reapply.py

# Method 2: Apply upstream.patch directly to DSH source code (execute in repository root)
git apply upstream.patch

After the above steps, daily maintenance is just one command: if efforts drift after a DSH upgrade or interface writes back settings, run /efforts apply or python reapply.py anytime to pull them back.

Use Cases and Considerations

Suitable for users running a LiteLLM gateway locally, connected to multiple non-DS-series models, and wanting to uniformly control reasoning effort in DSH. Pay attention to a few points before use:

  1. applyOnStart is disabled by default; check first then manually apply; reapply.py only writes efforts, does not touch default models.
  2. settings.yaml.gold is a snapshot for full coverage, includes default models, use with caution; restore-settings-gold.ps1 also overwrites default models when rolling back, use with caution.
  3. The plugin runs with the permissions of the current DSH process; it is recommended to check the source code and license (MIT) before installing.

Summary

luxueliu-reasoning-efforts solves a specific problem: gateway models in DSH lack reasoning effort control, and effort declarations easily drift after upgrades. The combination of the effort table, check command, and router-level patch converges this into a single command /efforts apply.

Repository address: https://github.com/luxueliu/luxueliu-reasoning-efforts

Community directory page: https://www.skillhub.cn/plugins/luxueliu/luxueliu-reasoning-efforts