Skip to main content

ui-status-label

39Stars3Forks5Issues0Watchers

Customize the "thinking" status text for agent runtime in the dsh Web chat view, effective immediately without restart.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
TypeScript
License
MIT
Branch
master
dshdsh-plugin

Install

cmdweb profile
$ dsh plugin --profile web add --allow-build=dsh-ui-status-label github:alingalingling/ui-status-label

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin alingalingling/ui-status-label for me: review the repository at https://github.com/alingalingling/ui-status-label first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-line Summary

Replaces the "Thinking..." prompt text in the dsh Web chat view (the officially hardcoded Deep diving...) with your own custom text. Input takes effect immediately—no restart or save required.

Core Features

  • Adds a text input field in the General settings area to customize the chat view's runtime status bar text
  • Uses browser DOM injection as a fallback path to directly modify the hardcoded text on versions without official extension points
  • Provides an optional conversationStatus service; once upstream adds extension points, the chat view directly renders the configured text, and DOM injection automatically yields
  • Persists settings to $DSH_HOME/settings.yaml, effective across Web ports for the same user home
  • Supports both Chinese and English UI text (settings.status.title, settings.status.description dictionaries)

Technical Implementation

  • Language: TypeScript
  • Key Dependencies: @deepseek-ai/dsh-settings (settings namespace persistence), @deepseek-ai/schemastery (node-side schema validation), react (settings row component), @deepseek-ai/cordis (plugin runtime)
  • Architecture Pattern: Plugin splits into two halves—node half (src/index.ts) registers to Web roster via cordis.patch.yml, registers persistent ui-status-label namespace with settings service; client half (src/client/index.ts) auto-discovered via package.json#dsh.client, registers settings row, provides conversationStatus service, starts DOM injector
  • Entry Files: src/index.ts (node half) + src/client/index.ts (browser half)

Use Cases

Want more personalized "Thinking..." prompts in dsh Web chat view—e.g., change to "努力干活中" or "小鱼正在游泳"—instead of staring at English Deep diving... every time. Also suitable for operations or localization scenarios needing whale-mermaid brand copy in the status bar. Has zero impact on model response content.

Prerequisites and Compatibility

DependencyMin VersionDescription
DSH>=0.0.1-rc.1 <0.2.0 (peer dependency)Official stable with 0.1.0-rc.6 works directly; DSH auto-injects cordis and dsh-client-* peer dependencies
NodeNot declaredSource doesn't specify minimum Node version
PlatformCross-platform (macOS / Windows / Linux)Browser interaction only, no native modules
Native ModulesNoneAll dependencies are JS/TS packages

Installation

dsh plugin --profile web add github:alingalingling/ui-status-label

Configuration Options

No extra configuration needed—all user-visible options are adjusted via UI in dsh Web General settings area.

ConfigTypeDescriptionDefault
ui-status-label.statusLabelstringStatus text displayed during agent runtime in chat view小难梁在0721 (input max 40 chars, clearing reverts to default)

FAQ

Q: Do I need to restart dsh Web after installation?

A: Yes. Currently running GUI won't hot-load new plugin bundles. After installation, restart dsh web process and refresh page to see the "Runtime Status Text" entry in settings.

Q: What's the default text?

A: Default text is "小难梁在0721". Setting row also reverts to this default when cleared—empty input never renders as a blank status row.

Q: Is there a length limit for the input?

A: Yes, max 40 characters. This limit comes from the setting row's maxLength property to prevent chat view layout from being stretched by overly long text.

Q: Do I need to click a save button after modifying?

A: No. Input takes effect immediately—changes sync right away to chat view's runtime status bar, no manual save needed.

Q: Will this plugin change model response content?

A: No. Plugin only replaces the status text in browser rendering layer; it doesn't touch any model requests, inference, or response content.

Q: What to do when git installation is blocked by pnpm prepare scripts?

A: Repo already includes pre-built lib/ (with type declarations) committed alongside source code—git install can skip prepare and use artifacts directly; only add package to pnpm-workspace.yaml's allowBuilds when rebuilding from source.

Q: Can a customized dsh build with this plugin built-in install it again?

A: No. It would duplicate ui-status-label settings namespace registration; only official releases without built-in can install normally.

Q: How to uninstall?

A: Run dsh plugin --profile web remove dsh-ui-status-label, then restart process.

Difficulty Level

Beginner — install it, change one line of text, it takes effect immediately. No programming or configuration needed, zero risk, fully reversible.

Known Issues and Limitations

  • DOM injection path uses string-level matching against official hardcoded Deep diving...: if upstream changes that text in the future, DOM fallback automatically stops working (by then conversationStatus service path will take over)
  • Must install under dsh Web profile; headless or TUI profile installation has no meaning
  • Conflicts with "customized dsh builds with this plugin built-in" (e.g., locally built deepseek-harness)—duplicate installation not recommended in such scenarios
  • Input text only affects UI rendering layer; cannot differentiate text by different sessions/models

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/alingalingling/ui-status-label)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory