Preface¶
The DeepSeek Harness (DSH) web interface has limited default font and typography capabilities: the official “Settings → General → Appearance” allows selecting color schemes and entering font family names. Starting from v0.2.1-alpha.2, it provides options for body font size, code font size, and terminal font size. However, fonts still rely mainly on manual name input, and there are no fine-tuning options for font weight, letter spacing, or line spacing. A common workaround is to modify the CSS inside app.asar, but that is the application core; it gets overwritten with every upgrade, and if broken, it is hard to restore.
Below is an introduction to the community plugin dsh-font-probe (maintainer lohana20061023-29): via the Cordis client plugin channel, it uses styles.insert() to inject styles, overriding only CSS custom properties. Configuration is written back to the profile without touching app.asar. It is categorized as “Fun Dress-up” in the SkillHub directory and has approximately 19 stars on GitHub (MIT license).
What is this¶
dsh-font-probe is a font and typography plugin for the DSH Web GUI: it features separate font settings for Chinese and English, adjustable weights for the interface and titles, four sliders for letter spacing/line spacing/paragraph spacing/first-line indentation, and a bottom-anchored master preview that applies to the disk only after confirmation.
Font sizes are managed uniformly by the official “General → Appearance”: this plugin does not write --dsh-content-font-size and does not override body or code font sizes. If you only need font weight and typography control while font sizes are managed by the official settings, the same author also provides dsh-font-probe-lite, which uses a different namespace and can coexist with the main package.
Core Features¶
| Capability | Description |
|---|---|
| Chinese Font | Set a font family name specifically for Chinese characters; click the name to expand presets, or use “Browse local fonts…” for other families |
| English Font | Applies only to Latin letters and numbers; Chinese characters still use the Chinese font; if left blank, no distinction is made |
| Code Font | Monospace font for code blocks, terminals, and line numbers; can browse local fonts |
| UI Weight / Title Weight | Arranged side-by-side in the same row; if title weight is left blank, it follows the UI weight |
| Letter Spacing | Slider 0–3px |
| Line Spacing | Slider 0–12px, added on top of the application’s own line height, not replacing it |
| Paragraph Spacing | Slider 0–24px |
| First-line Indentation | Slider 0–4em, scales with font size |
| Master Preview | Bottom-anchored card providing real-time preview of fonts, weights, four typography settings, and code samples (including titles); the top edge is draggable to adjust height between 80–560px |
| Confirmation Mechanism | Changes go into a draft first; clicking “Confirm Apply” writes them to the profile |
| Reset to Default | One-click to clear the draft (confirmation is still required to take effect) |
The preset list includes 15 built-in fonts (including 8 Chinese fonts, such as the Xiawu Wenkai series, Yuexing Kai, etc.); when expanding presets, it detects if they are installed locally, and missing items link to the official download page. All entry points are in Settings → Text Display Settings.
Installation and Enablement¶
Install from npm with a single command, no git required:
dsh plugin --profile desktop add dsh-font-probe
After installation, you need to restart the application (right-click tray → Quit App → reopen). The plugin consists of both host and client halves. After the first installation, the host’s configuration schema needs to be imported once by the module loader for “Text Display Settings” to appear in the sidebar “Settings”.
Update and uninstall:
dsh plugin --profile desktop update dsh-font-probe
dsh plugin --profile desktop remove dsh-font-probe
After uninstallation, the injected stylesheet is removed, and the interface font returns to the application default. Other methods (GitHub source, Release tarball, local directory) are covered in the repository README and are not expanded upon here.
Lite version (Weight + Typography only):
dsh plugin --profile desktop add dsh-font-probe-lite
Typical Usage¶
- Open Settings → Text Display Settings.
- Select Chinese Font, English Font, and Code Font; set UI/Title weight; drag the four sliders to adjust typography.
- Check the bottom Master Preview to see if it meets your expectations.
- Once satisfied, click Confirm Apply.
Before clicking confirm, the interface, CSS variables, and profile remain unchanged, allowing for repeated experimentation. Body font size, code font size, and terminal font size are still adjusted in Settings → General → Appearance.
Brief Principle¶
The plugin primarily does two things: inject CSS custom properties and write a small number of rules in a single stylesheet.
The body font token --dsw-font-family is synthesized as: "English Font", "Chinese Font", <app stack>. The stack falls back by character: Latin characters hit the English font, while Chinese characters fall back to the Chinese font. The order cannot be reversed; otherwise, the Latin glyphs contained in the Chinese font would prevent the English font from being used.
The four typography settings only apply to areas with _markdown class names and do not touch the text of the settings panel itself. Line spacing uses calc to add an increment on top of the official line height, so the line height still scales with font size when the official font size is changed.
Applicable Scenarios and Notes¶
Who it is for: Users who long-term read conversations and write Markdown in the DSH Desktop version or dsh web, want to use separate fonts for Chinese and English, adjust font weights and paragraph typography, but do not want to touch app.asar.
Limitations (from official documentation):
- Only affects the Web GUI; does not include Native window/menu fonts.
- Typography sliders mainly affect the conversation body and do not change sidebar, button, or other interface text.
- “Browse local fonts” relies on Chromium’s Local Font Access API; if unsupported, it falls back to the preset list.
- Fonts must be installed locally; the plugin does not bundle font files.
- Some fonts have only a single weight; selecting them may make the overall text appear bolder, which is a property of the font itself.
Security and License: The plugin runs with the permissions of the current DSH process. It is recommended to browse the GitHub source and the MIT license before installation. The DSH community plugin directory (such as SkillHub) is an independent site and has no official affiliation with DeepSeek / High-Flyer. The ecosystem philosophy is “Everything is a plugin”; simply choose what you need.
Conclusion¶
dsh-font-probe brings font families, weights, and four typography settings into the settings page, using a confirmation mechanism and profile persistence to avoid modifying the application package just to change fonts. Directory page: https://www.skillhub.cn/plugins/lohana20061023-29/dsh-font-probe; Repository: https://github.com/lohana20061023-29/dsh-font-probe.