Preface

In the plugin workflow of DSH, many runtime configurations can be completed directly on the Web Settings page. For scenarios requiring control over the model’s inference language, temporarily modifying the system prompt is unstable, and making an extra model call for translation might increase latency. Below is an introduction to a DSH plugin: dsh-think-any-lang. It provides a Thinking Language dropdown in Settings → General. By injecting thinking language instructions via systemPrompt.section, it enables the model to reason in the specified language while keeping the final response in the user’s language.

What is it

lco117/dsh-think-any-lang is a DeepSeek Harness (DSH) plugin maintained by lco117 with an MIT license.

It solves a specific need: separating the “language used for the model’s final response” from the “language used for the model’s reasoning.” Users can select the language for model reasoning in DSH settings, and the plugin will inject corresponding instructions into the system prompt, rather than requiring the user to manually maintain a prompt string.

Core Features

  • Provides a Thinking Language dropdown selection in Settings → General.
  • Injects thinking language instructions via systemPrompt.section. The source describes this as zero extra calls, zero latency, implemented by adding instructions to the system prompt rather than calling the model for translation.
  • Instructions for each language are written in the target language itself to improve model compliance.
  • Selection is persisted to the user settings document and retained after restart.
  • Supports off and 12 languages: Simplified Chinese, English, Japanese, Korean, German, French, Spanish, Portuguese, Russian, Italian, Arabic, and Hindi.
  • The final response maintains the user’s language.
  • Pure JavaScript, no build step, installable from GitHub.

Installation and Activation

First, ensure the dsh CLI is installed and the target profile is available. The source states that dsh plugin --profile <name> add can automatically initialize.

The installation command provided by the source uses the web profile:

dsh plugin --profile web add github:lco117/dsh-think-any-lang

The source suggests pinning to a specific commit for installation:

dsh plugin --profile web add github:lco117/dsh-think-any-lang#<commit-sha>

Note: The source does not specify whether --profile web applies to all profiles. If your DSH instance uses a different profile, please replace it with the name of the initialized profile.

Typical Usage

  1. Start:
dsh web
  1. Open Settings → General.

  2. Select a language in the Thinking Language dropdown. The default value is Chinese (zh).

  3. Subsequent model calls will receive the thinking language instructions in the system prompt. DeepSeek reasoning models typically output reasoning_content in the selected language.

Implementation Details

  • The plugin injects thinking language instructions via systemPrompt.section.
  • The browser side reads and writes settings via the private loopback RPC channel /think-any-lang. The source notes that this is because dsh-host-apiproxy only exposes settings namespaces in the whitelist.
  • The language table is maintained in both index.js and client.js. When adding a new language, it is necessary to keep both files in sync.

Suitable Scenarios and Notes

Suitable for:
- Need to fix or switch the model’s thinking language in DSH Web settings.
- Want the final response to continue using the user’s language.
- Do not want to translate reasoning text via extra model calls.

Notes:
- The plugin runs with the current dsh process permissions; check the source code and license before installing.
- License is MIT © 2026 lco117.
- The source does not provide specific star counts, categories, or directory page URL; this article does not infer based on these.

Conclusion

The value of dsh-think-any-lang lies in turning “what language the model thinks in” into a DSH setting: after selection, it is persisted, instructions are injected via systemPrompt.section, and the final response continues to use the user’s language.

Repository: https://github.com/lco117/dsh-think-any-lang

Directory page: The source does not provide a specific URL; you can check the instructions via the GitHub repository first.