Preface

DeepSeek Harness (DSH) displays the model’s reasoning process in both the Web interface and the trajectory view. By default, this content is often output in English. For Chinese users, this adds an extra layer of translation cost when reading reasoning chains and comparing conclusions.

The community has also adopted the practice of manually requesting “think in Chinese” in conversations. However, this requires repeating the instruction with every message and cannot guarantee consistent constraints across all requests. The approach of dsh-think-zh is to inject a concise language directive into the system prompt of every request, turning “think in Simplified Chinese” into a fixed profile-level behavior.

Below is an introduction to the positioning, mechanism, installation process, and usage notes of this plugin.

What is This

dsh-think-zh is a plugin developed by maintainer Len7183 for DeepSeek Harness. The current version is 0.1.0, licensed under MIT. It falls under the category of model inference-related capabilities.

The core problem it solves is ensuring the model’s reasoning process is always in Simplified Chinese, while allowing the final response to follow the language of the user’s query. Technical content such as code, identifiers, file paths, and commands remain in their original form and are not translated.

Core Features

Single Injection Mechanism

The plugin registers a dsh-think-zh/language section in the system prompt of every request via ctx.systemPrompt.section(). The order is 2, positioned after the persona and before tool declarations.

Language Behavior

The built-in default directive specifies three rules:

Language Requirements (Enforced):
1. Reasoning must be in Simplified Chinese.
2. Responses should be in the same language as the user's query; default to Simplified Chinese if the language cannot be determined. Code, identifiers, file paths, commands, and other technical content remain in their original form and are not translated.

Accordingly, for Chinese queries, both reasoning and responses are in Simplified Chinese. For English queries, reasoning remains in Simplified Chinese, while responses follow English. When the language tendency cannot be determined, the default is Simplified Chinese.

Low Overhead and Loading Timing

The plugin performs no detection, buffering, alerting, or write-back. Each request only adds approximately 75 characters of directive text token cost. It declares inject: ['systemPrompt'], and cordis will wait for the systemPrompt service to be ready before executing apply, preventing section registration from being silently degraded.

Configurable

It supports disabling the injection via profile configuration or replacing it with custom directive text. The default injectPrompt: true allows the plugin to take effect immediately upon installation without additional operations.

Installation and Enabling

Prerequisites: DeepSeek Harness must be installed (dsh --version should run), Node.js ≥ 22.19, and pnpm (which dsh plugin calls internally).

No local build is required. Execute in any directory:

dsh plugin --profile web add github:Len7183/DSH-Think-zh

The equivalent command is npx @deepseek-ai/dsh plugin --profile web add github:Len7183/DSH-Think-zh.

Build and Install from Source

# 1. Clone and build the plugin
git clone https://github.com/Len7183/DSH-Think-zh.git
cd DSH-Think-zh
npm install
npm run build

# 2. Install to the web profile (execute in any directory)
dsh plugin --profile web add <absolute path to this plugin directory>

# 3. Restart DSH
dsh web

Note: You must install using the dsh plugin method. Running npm install directly will only install the package to the current directory and will not register it into any DSH profile.

After installation and restart, the plugin takes effect by default. Verify whether it is integrated into the profile:

dsh --profile web --dump-config | grep dsh-think-zh

After starting a new session, the appearance of the “Language Requirements (Enforced)” section in the system prompt within the trajectory view indicates successful injection.

Custom Configuration

Add a config for dsh-think-zh in ~/.dsh/profiles/web/cordis.patch.yml:

- id: dsh-think-zh
  name: 'dsh-think-zh'
  config:
    injectPrompt: true        # Whether to inject the Chinese directive
    injectionText: ''         # Custom directive text; leave empty to use the built-in concise version

Typical Behavior Examples

Below are the mechanism illustrations from the README. Actual output depends on the model.

Chinese Query

User: Please help me write a Python function to compute the Fibonacci sequence.

Reasoning (Simplified Chinese): The user needs a Python function to compute the Fibonacci sequence. This can be implemented using iteration or recursion. Considering performance, iteration is more suitable...
Response (Simplified Chinese): Here is an iterative Python implementation:
def fibonacci(n): ...

English Query

User: Write a Python function to compute the Fibonacci sequence.

Reasoning (always Simplified Chinese): The user requests a Python function to compute the Fibonacci sequence. The response language should follow the query and use English, with code kept as is...
Response (follows query in English): Here is an iterative Python implementation:
def fibonacci(n): ...

Overview of Working Principle

Step Mechanism
Loading Dependencies The plugin declares inject: [systemPrompt], and cordis waits for the service to be ready before executing apply
Injection Point ctx.systemPrompt.section() registers dsh-think-zh/language (order 2)
Timing of Effect During the system prompt assembly phase of every request
Runtime Overhead Zero detection, zero buffering, zero write-back; approximately 75 characters of directive text

Suitable Scenarios and Notes

Who is it for

  • Chinese developers who regularly read reasoning trajectories using the DSH Web interface;
  • Users who need a stable “think in Simplified Chinese, response follows query” behavior without manually writing language constraints for every message;
  • Teams that prefer to manage language strategies using profile-level configuration within DSH’s “everything is a plugin” ecosystem.

Limitations Notice

The model’s reasoning language is fundamentally its own behavior. The plugin can only influence output by injecting forced directives and cannot guarantee 100% programmatic locking; compliance is beyond the plugin’s control. The README explicitly states this.

Pre-installation Check

The plugin runs with the permissions of the current dsh process. It is recommended to review the source code and MIT license before installation. The community directory SkillHub is an independent site and has no official affiliation with DeepSeek or High-Flyer.

Reference Links