Preface

When DeepSeek Harness (DSH) runs a task, the status bar in the Web GUI displays “Deep diving…”. This message can feel monotonous during long-running tasks. DSH uses a plugin-based architecture. The plugin vincent-guo/dsh-loading-phrases replaces this text with alternating witty phrases and practical tips while preserving the original UI layout.

Plugin Overview

This is a plugin maintained by vincent-guo and belongs to the “playful reskin” category. Its core feature is to replace the “Deep diving…” status in the DSH Web GUI with random “witty phrases” and “practical tips”, while retaining the original flowing animation effect and running-time timer.

Core Features

The plugin intervenes during task execution (i.e., when the original status line appears), with the following behavior:

  • Position and style preservation: The text replacement occurs in the same position as the original status line. The rendering effect (such as the flowing gradient) and the timer that appears after 15 seconds are fully preserved.
  • Strict alternating logic: It uses a strict alternating pattern of 5-second witty phrases / 10-second practical tips, and every task starts with a witty phrase.
  • Shuffle without repetition: It uses the Fisher-Yates shuffle algorithm to achieve non-repeating random rotation, so no entries repeat within the same round.
  • Language adaptation: It automatically selects the corresponding phrase library based on the GUI language environment (zh for Chinese, others for English).
  • Accessibility support: It synchronizes the text to the status line’s aria-label, ensuring screen readers can read the actual content.
  • Narrow-window truncation: In narrow windows, overly long phrases are automatically truncated and displayed with an ellipsis.
  • Failure fallback: If the plugin script fails or the DOM structure changes, the plugin logs console diagnostic information and automatically falls back to the native DSH “Deep diving…” text without causing the UI to crash.

Installation and Enablement

Install the plugin via CLI:

dsh plugin --profile <profile> add @vincent-guo/dsh-loading-phrases

The plugin declares dsh.bundle.patch, so dsh plugin add automatically reconciles dsh.profile.bundles. After installation, restart the DSH process and refresh the Web GUI page (⌘/Ctrl+Shift+R) to activate it.

If the bundle reconciliation mechanism was not used during installation, manually add the load row in ~/.dsh/profiles/<profile>/cordis.patch.yml:

- insert:
    - id: loading-phrases
      name: '@vincent-guo/dsh-loading-phrases'

Configuration and Customization

The plugin provides a graphical settings panel to manage configuration.

GUI Settings Panel

At the bottom of the Web GUI sidebar, go to Settings -> Loading Phrases. Here you can perform the following operations:

  • Mode selection: Supports all (alternating), witty (witty phrases only), tips (practical tips only), and off (disabled, restores native text).
  • Duration settings: Adjust the display durations for witty phrases and practical tips (unit: seconds; stored as milliseconds).
  • Shuffle toggle: Control whether to enable non-repeating random rotation.
  • Language policy: Choose auto (follow GUI) or force en/zh.
  • Content editing: Edit the corresponding phrase and tip lists via the English / Chinese tabs.
  • Save policy: Clicking save applies changes immediately. The Save phrases button only writes modified parts; unmodified lists remain empty (inherit built-in content).
  • Open configuration file: Clicking the “Open phrase config” button opens the configuration file in the default editor for bulk editing.

Configuration File

The configuration file is located at ~/.dsh/dsh-loading-phrases.json. This is a machine-local configuration, and all configurations share this single file. The plugin is released under the MIT license.

The default configuration structure is as follows:

{
  "loadingPhrases": {
    "mode": "all",
    "wittyIntervalMs": 5000,
    "tipsIntervalMs": 10000,
    "shuffle": true,
    "language": "auto",
    "phrases": { "en": [], "zh": [] },
    "tips": { "en": [], "zh": [] }
  }
}

Content Sources

  • Witty phrases: 49 English and 24 Chinese entries, sourced from the Qwen Code web-shell list (Apache-2.0 license).
  • Practical tips: 40 English and 40 Chinese entries, written for the actual behavior of the DSH UI.

Development and Extension

If you want to modify the source content, you can edit src/data/witty.json and src/data/tips.json (note: the en and zh in these two files are independent content, not translations of each other). After modification, run node scripts/sync-data.js to regenerate the data block in lib/client.js.

Applicable Scenarios and Notes

This plugin is suitable for DSH users who want richer visual feedback during long-running tasks.

Notes:
* The plugin runs with the permissions of the current DSH process; check the source code and license before installation.
* Modifying code files (such as lib/*.js) requires restarting the DSH process; modifying only the configuration file takes effect after refreshing the page.
* The plugin does not guarantee compatibility when the UI structure changes significantly in future DSH versions, but includes a failure fallback mechanism.

Summary

DSH Loading Phrases transforms dull running statuses into dynamic interactive experiences through simple configuration and customization. It follows DSH’s plugin-based design philosophy and provides a comprehensive GUI management panel and configuration file editing capabilities.

  • GitHub repository: https://github.com/vincent-guo/dsh-loading-phrases
  • Plugin catalog: https://www.skillhub.cn/plugins/vincent-guo/dsh-loading-phrases