lco117/dsh-think-any-lang 预览 preview

lco117/dsh-think-any-lang

DeepSeek Harness(DSH)插件:在“设置 → 通用”下新增“思考语言”选择器,通过系统提示词部分告知模型使用何种语言进行推理(思维链)。零额外调用,零延迟,支持12种语言。

项目介绍Project Overview

dsh-think-any-lang 是一款 DeepSeek Harness 插件,在「设置 → 通用」新增「思考语言」下拉菜单,可选中文、英文、日文等 13 种语言,让模型用指定语言输出 chain-of-thought,最终回复仍保持用户语言。核心能力是通过挂载 systemPrompt.section 指令实现,零额外调用、零延迟。选择持久化保存于用户设置。适用于使用 DeepSeek 推理模型并希望控制思考语言的用户。需注意:language 表在 host 与 browser 两端各自维护,添加语种时必须同步 index.js 与 client.js。

dsh-think-any-lang is a DeepSeek Harness plugin that adds a Thinking Language dropdown under Settings → General, offering 13 options such as Chinese, English, and Japanese. Its core capability is injecting a systemPrompt.section instruction so the model reasons in the chosen language while the final reply stays in the user's language, with zero extra calls and zero added latency. Use it when working with DeepSeek reasoning models to control the language of reasoning_content. The selection is persisted in the user settings. Caveat: the language table exists in both index.js and client.js and must be kept in sync when adding new languages.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

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

lco117/dsh-think-any-lang 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-think-any-lang

DeepSeek Harness Plugin

GitHub Stars GitHub Forks GitHub Issues GitHub Pull Requests License English 简体中文

dsh-plugin Languages Zero latency Plain JS

A DeepSeek Harness plugin that adds a Thinking Language dropdown under Settings → General, letting you choose which language the model uses for its reasoning / chain of thought (中文, English, 日本語, 한국어, Deutsch, …). The final reply stays in the user's language.

Screenshots · Features · How it works · Installation · Usage · Development · Publishing · Star History


Screenshots

Thinking language selector in Settings → General
Selector in General settings
Pick it right from the settings page
The thinking-language selector box
The selector box
Click to expand and pick a language
Expanded language dropdown
All languages in one dropdown
off plus 12 languages in one list
dsh-think-any-lang in the plugin list
In the plugin list
Listed under plugin management after install

Features

  • Settings → General → Thinking Language: a dropdown to pick the language the model thinks in.
  • Zero latency, zero extra calls: implemented as a system-prompt instruction (systemPrompt.section) — no extra model calls or response delay like "translate the reasoning" approaches.
  • Instructions written in the target language: each instruction is written in its own language (e.g. the English instruction is written in English), which improves model adherence.
  • Persisted: the choice is stored in the user settings document (settings service) and survives restarts.
  • Plain JS, no build step: both the host and browser halves are hand-written JavaScript; install straight from GitHub with zero friction.

Supported languages: off (follow default, no instruction), Simplified Chinese, English, 日本語, 한국어, Deutsch, Français, Español, Português, Русский, Italiano, العربية, हिन्दी.


How it works

Half Responsibility
index.js (host half) Registers the think-any-lang settings namespace (language field, enum, default zh); watches for changes and mounts systemPrompt.section (named think-any-lang) when non-off, unmounts on off; also registers a private loopback RPC channel /think-any-lang (get/set) that the browser half uses to read/write the namespace
client.js (browser half) Registers a settings.general.item row via the window.__ModuleLoader__.load contract; renders the dropdown and reads/writes the setting through the host half's /think-any-lang RPC channel

Why a private RPC channel instead of the settings RPC surface? dsh-host-apiproxy only exposes an explicit allowlist of settings namespaces to configuration clients (WEB_SETTINGS_NAMESPACES / PRODUCT_SETTINGS_NAMESPACES); a third-party namespace answers settings-not-exposed, so the selection would never persist. The browser half therefore talks to a private channel registered in-process (ctx.connection.rpc.handle), and in-process ctx.settings access is not filtered by that allowlist — persistence and the systemPrompt linkage stay unchanged.

The language table is maintained in two places — index.js (instruction texts) and client.js (display labels): the browser factory's require only resolves platform modules and cannot read local modules, so each half keeps its own language view. Keep both files in sync when adding a language.


Installation

Requirements: dsh CLI installed with an initialized profile (dsh plugin --profile <name> add auto-initializes).

From GitHub (recommended)

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

The package is pure JS with no prepare build script, so no pnpm ≥10 allowBuilds approval is needed — install straight from GitHub. Pinning to a commit is recommended as in the official docs: github:lco117/dsh-think-any-lang#<commit-sha>.

From a local directory (development)

dsh plugin --profile web add ./dsh-think-any-lang

Verify

dsh --profile web --dump-config   # should show a "# == dsh-think-any-lang" layer

Usage

  1. Start dsh web.
  2. Open Settings → General.
  3. Pick a language in the Thinking Language dropdown (default: Chinese).
  4. Subsequent model calls receive the thinking-language instruction in the system prompt; DeepSeek reasoning models typically output reasoning_content in the chosen language.

Development

dsh-think-any-lang/
├── package.json       # declares dsh.bundle and dsh.client
├── cordis.patch.yml   # plugin row: mounts both halves of this package
├── index.js           # host half: settings namespace + systemPrompt.section
├── client.js          # browser half: settings row UI (hand-written factory bundle)
├── README.md          # 中文说明
├── README.en-US.md    # English docs
└── screenshots/       # README screenshots (webp)

Tech Stack

Category Tech
Plugin platform DeepSeek Harness (DSH)
Plugin framework Cordis
Language JavaScript (ESM)
Schema @deepseek-ai/schemastery
Build None (plain JS, install straight from GitHub)

License

MIT © 2026 lco117


⭐ Star History

If this project helps you, give it a ⭐ to help more people discover dsh-think-any-lang.

Star History Chart
上一个 Prev dsh-launcher 下一个 Next dsh-vision