yijiezhong/dsh-output-setting ↗★ 1

dsh-output-setting

DSH output settings: auto-expand reasoning/tool nodes, code block font size and line height, and model output language (auto / Chinese / English) 适合需要精细调整Web端输出排版、代码块样式及模型回答语言偏好的用户。

패키지
dsh-output-setting
호환성
미검증
버전
1.0.0
라이선스
MIT
최근 업데이트
2026. 10. 3.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:yijiezhong/dsh-output-setting

dsh-output-setting

English | 简体中文

An output-presentation settings plugin for DSH (DeepSeek Harness). It gathers "how process nodes expand", "how large code blocks are" and "which language the model answers in" into a single settings page — all applied live, no restart needed.

Where to configure: Plugins → dsh-output-setting (the plugin's own detail page, not a separate group inside Settings).

Settings page (English)

Settings

GroupSettingTypeDefaultDescription
Process nodesAuto-expand reasoningswitchonNew reasoning blocks show their full content
Process nodesAuto-expand tool callsswitchonCommand and other tool cards show input and output
Code blocksCode font sizeslider 1–31.4×Font scale for code blocks and inline code (1 = DSH default, 11px)
Code blocksCode line heightslider 1–2.51.6×Line height = font size × this ratio
Output languageModel output languageselectAutomaticAutomatic (follow UI language) / 简体中文 / English

"Model output language" is written into the system prompt (not AGENTS.md), so it also constrains the hidden reasoning/thinking channel — AGENTS.md arrives as a user message and cannot reach that channel.

Install

Published on npm as dsh-output-setting.

Use the plugin manager; three sources work:

# 1. From GitHub (no npm publish needed)
plugin_manager(install_bundle, "github:yijiezhong/dsh-output-setting")

# 2. From npm (published)
plugin_manager(install_bundle, "dsh-output-setting")

# 3. Local development: link the source directory
plugin_manager(install_bundle, "link:/path/to/dsh-output-setting")

Make sure dsh-output-setting ends up in the profile's dsh.profile.bundles (the plugin manager does this for you; see below for the manual route).

Manual install

cd ~/.dsh/profiles/desktop
pnpm add github:yijiezhong/dsh-output-setting
node -e "const f='package.json',j=require('./'+f);j.dsh.profile.bundles.push('dsh-output-setting');require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\n')"

Dependencies

npm install          # installs the @deepseek-ai/schemastery declared in package.json

package.json declares exactly one dependency:

"dependencies": { "@deepseek-ai/schemastery": "~3.18.4" }

Why pinned to 3.18.x: on this machine the profile shared layer (~/.dsh/profiles/node_modules) holds the old 3.18.1, which has no .volatile(). Desktop does not pass bareModuleBaseUrl, so bare specifiers resolve through plain Node resolution — without a local copy the plugin hits the old version → z.number().volatile is not a function → module load fails → Config is missing → the settings page never appears (listConfigs reports status: "absent", yet fiberPhase still says active, which makes it very easy to misdiagnose). So it must ship its own 3.18.4.

⚠️ Do not move it into peerDependencies — as a peer it gets intercepted back to the shared old 3.18.1 and the failure above returns. (This does not contradict official plugins: they also keep schemastery in dependencies and only put @deepseek-ai/cordis in peer.)

react and cordis are not declared — the DSH runtime provides them (official client plugins likewise only require("react") without listing it; official plugins were measured at 0 import cordis sites). peerDependencies.cordis was tried once and made npm pull a redundant 308K cordis copy into the plugin, so it was removed.

Development notes

  • Changing the host half (host.js) requires an app restart. disable → enable, renaming the file, and remove + install all fail to reload the module (Node caches ESM by URL; dsh-hmr only watches patch files). Verify a reload by writing a marker file as a side effect — do not trust fiberPhase.
  • Changing the client half (client.js) only needs a page refresh (Cmd+R). Note that Cmd+R resets the whole DSH UI language to the browser language; switch languages from the settings panel when testing localization.
  • The settings UI registers into plugins.bundle.config (a keyed slot, key = this package name) and renders between the plugin page's description and its component rows.

License

MIT