Preface

The default DeepSeek Harness (DSH) Web interface is functional, but during long conversations, issues with color schemes, font alignment, the display density of thinking blocks and tool chains, as well as the billing schedule for official API peak and off-peak hours, often require manual CSS adjustments or checking documentation. While there are scattered themes or scripts in the community, most lack a centralized settings page for instant toggling, and changes often require a refresh or restart.

Below is an introduction to dsh-uxexo: a DSH Web UI enhancement plugin developed personally by the maintainer jiangnanquan and released as free open-source software. It provides a dedicated “Interface Enhancement” page within the settings panel, where changes take effect instantly. It includes 25 terminal aesthetic color schemes, a Chinese-priority 0.5 narrow-width monospace font, text ink opacity levels, compact layouts, collapsible thinking/tool chain capsules, and account balance, cost-per-turn, 30-day usage, and official peak/off-peak reminders. The plugin is categorized as “Fun Dress-up” in the DSH Community Directory, and the GitHub repository currently has approximately 9 stars.

What is this

dsh-uxexo enhances the official Web UI under the web profile via DSH’s bundle patches and client injection; it does not replace the DSH core. The version in package.json is 2.0.0, and the license is MIT.

Capabilities are centralized in Settings → Interface Enhancement: The master switch and sub-items are written to the data-dsh-ux-* attributes of the <html> element and synced to cookies. The host restores the state before the first frame to avoid a flash of the official theme before switching. After the plugin itself is updated, a DeepSeek Harness restart is required (the client half supports semi-hot-reload, but the host half’s /enh/* interfaces and first-frame scripts are loaded at process startup); the settings page will compare the build numbers of both halves and prompt a restart.

Core Features

Settings Page and Instant Switching

Open Settings → Interface Enhancement to manage all options. Turning off “Enable dsh-uxexo Interface Enhancement” removes the enhancement layer entirely and reverts to the official look, while individual sub-item selections are retained. Except for plugin upgrades, no restart is required.

Switch Summary
Enable dsh-uxexo Interface Enhancement Master switch
Color Theme 25 sets or “Official”; default is Solarized
Weaken “New Session” Button Default follows theme accent; when on, only slightly darker than the sidebar
Font Scheme / Weight Chinese-priority monospace schemes; Weight: Standard / Semi-bold (default Semi-bold)
Text Ink Deep Ink (default) / Follow Theme / Pure Black; applies to light themes only
Compact Layout Tuning Message column width, spacing, input card, and menu alignment, etc.
Collapsible Capsules Thinking blocks and tool chain summary capsules; linked with official process grouping in 0.2.x
Account Balance and Usage Balance below input box, cost per turn, charts, and peak/off-peak badges

25 Color Themes

The themes are drawn from Jiang Nan Quan’s “Terminal Aesthetics” trilogy and can be switched by group in the Appearance → Color Theme dropdown: Official, Classic CRT, Paper Light, Modern Dual, AI Brand, etc., totaling 25 sets. The naming format is English · Chinese (e.g., P1 Green Phosphor · 绿磷光, Tokyo Night · 东京夜).

Each set declares only four anchors: background, body text, accent, and status colors. Other surface / border / hover colors are derived from the same set of rules; dark themes automatically set color-scheme: dark. Since 0.2.x, it also takes over the official common menu glass material and related tokens (documented as 49 total) to prevent menus from appearing as light glass blocks on dark pages. The third anchor, accent, is uniformly applied to send/stop buttons and the sidebar “New Session” (which can be weakened).

Text Ink

To address insufficient body text contrast in some light themes (like Solarized), the plugin only modifies text tokens without touching backgrounds or brand colors:

  1. Deep Ink (Default, Recommended): e.g., warm cyan-black #002b36, improving readability on light backgrounds.
  2. Follow Theme: Inherits the theme’s default ink color.
  3. Pure Black: #000000, highest contrast, but may be too harsh for long paragraphs.

Dark themes define their own ink, so this setting does not override them; reverse-white button text is unaffected.

Chinese-Priority and 0.5 Narrow-Width Fonts

Based on the concept that “Chinese characters are 1.0 square, while Western characters are narrowed to 0.5 so that 2 Western characters equal the width of 1 Chinese character,” the settings page provides:

  • Auto (Recommended): Tries Sarasa Mono → Term → Noto Mono CJK → Maple Mono in order; falls back to the official font stack if not installed.
  • Sarasa Mono SC / Sarasa Term SC / Noto Mono CJK / Maple Mono / Off.

Fonts installed on the local machine will be detected and marked on the page; Font Weight can be set to Standard or Semi-bold (default Semi-bold), with font-synthesis disabled to avoid pseudo-bolding. An alignment self-check block is provided at the bottom of the page for visual confirmation of the 2:1 column width. See docs/字体方案-中文优先与0.5窄体.md in the repository for detailed selection criteria.

Layout and Collapsible Capsules

The compact layout includes widened message columns, tightened conversation spacing, aligned new conversation input cards and /, @ candidate menus, and disabled rubber-band scrolling.

Collapsible capsules in 0.1.x aggregated thinking blocks into Think ×N and tool calls into A → B → C chains. Since 0.2.0, official process grouping takes over visibility; the plugin attaches the summary below the “Completed in X” line. Clicking interacts with the official expand/collapse, long chains wrap according to message column width, and each line maintains a distinct capsule outline.

Account Usage and Peak/Off-Peak Reminders

Below the input box, the plugin can display the official account balance, cost per turn (tokens), and a usage chart for the last 30 days. When the most recent request used the provider deepseek-official or deepseek-account, a Peak (峰) or Off-Peak (谷) badge is shown after the cost per turn:

  • Peak: Weekdays (excluding legal holidays) 09:00–12:00, 14:00–18:00 (Beijing Time), billed at peak rates.
  • Off-Peak: All other times (including weekends and all-day legal holidays), billed at half the peak rate.

The judgment criteria come from the request/header.config.provider in the session log, not from “whether balance can be queried.” Holiday data is fetched via the host from holiday-cn and cached in ~/.dsh/dsh-uxexo/calendar-<year>.json; if disconnected from the network, the built-in 2026 table serves as a fallback. Clicking the badge allows viewing rules, the next switch time, and source links.

Installation and Activation

Prerequisites: Running DSH via the profile mechanism (dsh web).

dsh plugin --profile web add github:jiangnanquan/dsh-uxexo#main

dsh plugin add automatically adds the bundles to the profile based on dsh.bundle.patch and dsh.client in the package. A restart of dsh is required for it to take effect; repeating the command is idempotent. To upgrade, use:

dsh plugin --profile web update dsh-uxexo

Note: The desktop profile is exclusive to the Electron desktop version, and dsh plugin --profile desktop … will be rejected; for desktop installation steps, see the repository’s INSTALL.md.

It is recommended to install Sarasa Mono (Sarasa Mono/Term SC or SuperTTC) locally to fully experience the font scheme.

Typical Usage

  1. After installing and restarting DSH, open the Web UI, go to Settings → Interface Enhancement, and turn on the master switch.
  2. In Appearance → Color Theme, select a theme (e.g., Kanagawa Wave · 神奈川·浪) and observe if it takes effect immediately.
  3. If using a light theme and feeling the body text is grayish, keep Text Ink on “Deep Ink” or change to “Pure Black” for contrast.
  4. In Font Scheme, select “Auto” or a specific Sarasa font, look at the alignment self-check block at the bottom, and confirm the boxes are rectangular.
  5. When chatting using the official API or account, check the Peak/Off-Peak badges next to the cost per turn below the input box; before and after weekday peak hours, you can click the badge to verify the next switch time.
  6. During long tool chain conversations, click the capsule summary below “Completed in X” to verify the expansion interaction with the official process grouping.

If you wish for an AI agent to install it according to documentation, you can paste the “Leave it to your AI” section from the README (pointing to INSTALL.md and health checks) to your local agent to execute.

Use Cases and Notes

Who it is for: Developers who primarily use DSH for long-term conversations under the web profile, wish to unify terminal aesthetic themes, improve Chinese-English mixed alignment, reduce visual noise from thinking/tool chains, and pay attention to peak/off-peak hours under the official billing mode.

Security and Permissions: The plugin runs with the current dsh process permissions, injecting client scripts and providing host-side enhancement interfaces. Before installation, you should read the source code and the MIT license on GitHub, and only execute dsh plugin add from trusted sources.

Ecosystem Notes: DSH follows the philosophy that “everything is a plugin”; community directories like skillhub.cn are independent sites with no official affiliation with DeepSeek / High-Flyer. This article introduces a community plugin, not an official app store entry.

Conclusion

dsh-uxexo consolidates color schemes, fonts, layout, process display, and usage/peak-off-peak information into a single settings page. Changes take effect immediately, making it suitable for users who treat the DSH Web interface as their daily workstation. If the plugin helps you, the maintainer has provided a GitHub Star entry at the top of the settings page.

  • Directory Page: https://www.skillhub.cn/plugins/jiangnanquan/dsh-uxexo
  • Source Code and Documentation: https://github.com/jiangnanquan/dsh-uxexo