DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Loading Phrases — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

@vincent-guo/dsh-loading-phrases

Loading Phrases

Replace the 'Deep diving...' running status in the DeepSeek Harness Web GUI with alternating witty phrases and practical tips.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @vincent-guo/dsh-loading-phrases@0.7.1
READMECompatibilityVersions

Compatibility and provenance

Loading Phrases is published as @vincent-guo/dsh-loading-phrases and currently resolves to version 0.7.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
8/26/2026

Versions

0.7.1stable
8/26/2026
0.7.0stable
8/26/2026

Related plugins

Loading related plugins…

Latest
0.7.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
79.6 kB
Files
9
Surface
web
License
MIT
Source
npm
GitHub
★ 2
Weekly downloads
0
Last push
8/27/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Remote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Client Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundlePet@linxin666/dsh-petMulti-pet companion plugin for the dsh web GUI: a registry-driven floating pet that reacts to model activity, with per-pet naming, petting/feeding interactions and an affinity score

README

@vincent-guo/dsh-loading-phrases

Replace the "Deep diving..." running status in the DeepSeek Harness Web GUI with alternating witty phrases and practical tips — in the original position, with the original shimmer effect and the elapsed clock intact.

中文说明

Behavior

While a turn is running (the same condition under which the original status line appears):

  • the original "Deep diving..." text gives way to a rotating line in the same place, rendered with the same gradient-shimmer recipe;
  • strict alternation: witty phrase for 5 s → tip for 10 s → witty phrase… each run starts with a witty phrase;
  • rotation is a no-repeat shuffle (Fisher–Yates decks, reshuffled on exhaustion) — no back-to-back repeats, every entry shown once per cycle;
  • the elapsed clock that appears after 15 s keeps working exactly as before;
  • the line follows the GUI locale: zh → Chinese lists, otherwise English;
  • the phrase is mirrored onto the status line's aria-label, so assistive tech announces real text changes instead of the CSS pseudo-element;
  • long phrases truncate with an ellipsis in narrow windows;
  • if the product DOM changes and the status line can no longer be found, the plugin logs a console diagnostic instead of failing silently.

Fail-safe by construction: the original text is hidden only while the plugin's script is alive. Any failure degrades back to the product's own status text.

Install

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

0.7.0 note: the npm package was renamed from dsh-loading-phrases to @vincent-guo/dsh-loading-phrases; the old name is deprecated on npm. Existing installs should switch the dependency and the dsh.profile.bundles entry to the scoped name.

The package declares dsh.bundle.patch — a cordis.patch.yml at the package root that inserts the loading-phrases row — so dsh plugin add reconciles the profile's dsh.profile.bundles automatically and the row is composed from the package itself. No hand-written load row is needed. For a local checkout, pass the absolute path instead of the package name (or run corepack pnpm add /absolute/path/to/dsh-loading-phrases inside the profile directory).

Restart the profile process so the host half loads, then hard-refresh the Web GUI page (⌘/Ctrl+Shift+R).

If the package is installed as a plain dependency without bundle reconciliation, add the load row manually to ~/.dsh/profiles/<profile>/cordis.patch.yml:

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

Settings panel

The plugin registers a Loading Phrases page in the GUI Settings (sidebar foot → Settings), styled with the official design-system primitives (selector pills, buttons, inputs), the shipped settings-row layout, and the Plugins- page heading/intro pattern. From it you can:

  • switch mode (alternating / witty only / tips only / off), the dwell times (shown in seconds, stored as milliseconds), the no-repeat switch, and the language policy — preference changes save themselves (debounced, with a Saving…/Saved status) and apply immediately, no button needed;
  • edit the phrase and tip lists (one per line) behind English / 中文 tabs (labeled like the language options) that open on the language currently in effect — the tab is just an editor view, never coupled to the runtime language preference;
  • save phrase edits explicitly with Save phrases — saving writes only what you changed: a list left at the built-in content (or cleared) stays empty in the file and follows the built-ins, while a customized list is written in full; Restore defaults re-seeds everything;
  • the panel re-reads the config every time it opens, so hand-edited file changes are never overwritten by a stale draft (panel save still replaces the whole section — the panel view wins when both were edited).

The Open phrase config button (beside Save/Restore on the page itself) opens ~/.dsh/dsh-loading-phrases.json in your default editor for bulk editing; it is enabled after the first save creates the file. File edits apply after a page refresh.

Configuration

The user-owned config lives at $DSH_HOME/dsh-loading-phrases.json (usually ~/.dsh/dsh-loading-phrases.json) — machine-local and shared by every profile, so it survives plugin updates. It is served by the host half and read by the client on every page load; edits apply on the next refresh, and settings-panel saves apply immediately. The package-root dsh-loading-phrases.json serves only as a development seed and is never written by the plugin.

{
  "loadingPhrases": {
    "mode": "all",
    "wittyIntervalMs": 5000,
    "tipsIntervalMs": 10000,
    "shuffle": true,
    "language": "auto",
    "phrases": { "en": [], "zh": [] },
    "tips": { "en": [], "zh": [] }
  }
}
KeyValuesDefaultMeaning
modetips / witty / all / offalloff yields entirely: the original Deep diving... stays untouched
wittyIntervalMsnumber5000Dwell time for a witty phrase
tipsIntervalMsnumber10000Dwell time for a tip
shufflebooleantrueNo-repeat rotation; false = random with replacement
languageauto / en / zhautoForce a language instead of following the GUI locale
phrases, tips{ "en": [...], "zh": [...] }emptyPer-language overrides; a non-empty list replaces the built-in list for that language

Customizing phrases

  1. Edit src/data/witty.json and/or src/data/tips.json (en / zh arrays are independent content, not translations).
  2. Run node scripts/sync-data.js (or npm run sync) to regenerate the data blocks in lib/client.js, then npm run check.
  3. Hard-refresh the page for config edits. Code edits (lib/*.js) require a web profile restart — bundle revisions only re-enter the module graph through HMR or a restart.

Content

ChannelENZHSource
Witty phrases4924Derived from Qwen Code web-shell lists (Apache-2.0, see NOTICE.md)
Tips4040Written against real DSH UI behavior

Repository layout

dsh-loading-phrases.json   default configuration (served by the host half)
cordis.patch.yml           profile bundle patch (the loading-phrases row)
CHANGELOG.md               release notes
NOTICE.md                  Apache-2.0 attribution for the derived phrases
LICENSE                    MIT license
lib/index.js               host half (config HTTP route)
lib/client.js              client bundle (DOM target, rotation engine, generated data)
src/data/*.json            phrase/tips content (single source of truth)
scripts/sync-data.js       regenerates the data blocks in lib/client.js
scripts/test-manifest.mjs  distribution-manifest contract test
scripts/test-client.mjs    client bundle behavior simulation
scripts/test-host.mjs      host config route test
docs/design.md             design baseline and decisions

Roadmap

The settings panel (v3), the profile-bundle distribution (v0.5), and the minimal-write save (v0.6) are delivered. No further milestones are planned; optional future work:

  • re-evaluate migrating preferences into the durable settings service only if a concrete need appears (e.g. a DSH settings export/sync feature users want this plugin's preferences to ride). See docs/design.md for the decision record.

License

MIT. Release notes: CHANGELOG.md.