Introduction¶
DeepSeek Harness (DSH) adopts the “everything is a plugin” philosophy. When developing or using DSH on the Web, chat content layout is often constrained by hard-coded Shell styles (such as font tokens for Markdown and fixed font sizes for user bubbles), with no intuitive way to adjust them. This article introduces dsh-compact-chat-ui, a plugin maintained by secyborg, designed to address the difficulty of customizing chat area styles.
Plugin Positioning¶
This is a DSH Web plugin in the “fun theming” category. It does not modify native elements such as the input box. Instead, it focuses on the layout of the chat content area and uses browser-side style overrides to bypass hard-coded constraints introduced at build time.
Core Features¶
- Settings card: Provides a “Chat Area Layout” card in plugin settings.
- Real-time adjustment: Supports adjusting font size, line height, and block spacing.
- Style override: Overrides hard-coded styles for assistant Markdown and user bubbles.
- Auto-save: Settings are automatically saved to
localStorage.
Installation and Enablement¶
The installation command is as follows:
dsh plugin --profile web add ./dsh-compact-chat-ui-0.5.0.tgz
After installation, restart the application and refresh the page for the changes to take effect.
Typical Usage¶
In the application UI, go to Settings → Plugins → Configurable tab and find the “Chat Area Layout” card.
The supported adjustment parameter ranges are as follows:
| Slider | Range | Default | Original |
|---|---|---|---|
| Font size | 11–18px | 15px | 16px |
| Line height | 1.20–2.00 | 1.50 | ~1.75 |
| Block spacing | 25%–150% | 50% | 100% |
Changes are applied immediately and saved automatically. They can also be set directly from the browser console:
localStorage.setItem("dsh-compact-chat-ui:px", "14"); // 字号
localStorage.setItem("dsh-compact-chat-ui:lh", "1.4"); // 行高
localStorage.setItem("dsh-compact-chat-ui:mg", "0.5"); // 块间距
location.reload();
Use Cases and Notes¶
- Module limitation: The plugin only overrides whitelisted modules (
MessageItem/AssistantMarkdown) and does not affect input box sizing; the input box size remains native. - Dependency: The plugin relies on the host registering the settings namespace. Before installation, check the source code and license.