← Back to home@ningbonb

dsh-client-ui-brand

Custom product name and logo branding for DeepSeek Harness Web 自定义 DeepSeek Harness Web 端 logo 和产品名称

Stars
5
Language
TypeScript
Created
Aug 26, 2026
Updated
Sep 3, 2026
GitHub repo

Introduction

English | 中文

dsh-client-ui-brand

This is a simple DeepSeek Harness plugin. It customizes product branding without changing DeepSeek Harness source code.

Preview

Branding plugin preview

What it changes

  • product name in the expanded sidebar and browser title;
  • product mark in the sidebar and empty conversation;
  • browser favicon and PWA manifest when a logo is configured.

The plugin displays configured marks with centered, proportional fitting in the Web interface. It separately wraps every favicon and PWA icon in a square, transparent SVG canvas, so non-square marks do not stretch. HTTPS images are downloaded by the plugin and embedded into browser metadata, so favicon renderers never need a nested external image request. DSH's runtime session title remains visible and ends with the configured product name.

DSH Core does not currently provide an accepted slot for the empty-conversation slogan. This plugin therefore cannot change it without an intrusive modification; it can support the slogan when DSH Core exposes that slot.

Install

Install the published package into the Web profile:

dsh plugin --profile web add dsh-client-ui-brand

Restart the DSH Web process after installation.

Configure

Add a later Web profile patch, usually at:

$DSH_HOME/profiles/web/cordis.patch.yml

The installed bundle already uses Brand New Agent and its default Agent mark. Every configuration field is optional. Add this later profile patch only when overriding the defaults:

- id: dsh-client-ui-brand
  config:
    productName: Acme Agent
    logoUrl: https://cdn.example.com/branding/acme-agent.svg
    logoAlt: Acme Agent logo

Configuration fields

FieldDefaultDescription
productNameBrand New AgentSidebar product name, browser title, and PWA name.
logoUrlNot setHTTPS URL, same-origin absolute path, or data:image/... URL for the logo, favicon, and PWA icon.
logoPathNot setAbsolute path to one local image served by DSH for the logo, favicon, and PWA icon.
logoAltproductNameAccessible logo text.

Configure either logoUrl or logoPath, not both.

Local logo

- id: dsh-client-ui-brand
  config:
    productName: Acme Agent
    logoPath: /absolute/path/to/acme-agent-logo.svg
    logoAlt: Acme Agent logo

The local file is exposed only through the fixed route:

/plugins/dsh-client-ui-brand/brand-logo

When a logo is configured, the plugin serves the square brand image at /plugins/dsh-client-ui-brand/brand-mark.svg, generates a PWA manifest at /plugins/dsh-client-ui-brand/manifest.webmanifest, and replaces the Web Shell's favicon and manifest links. Without a configured logo, the Web Shell keeps its default favicon and manifest.

For safety, the path must be an absolute, non-symlink regular file with a gif, jpeg, jpg, png, svg, or webp extension. The route accepts only GET and HEAD, never accepts a request-controlled file path, returns 404 when the configured file cannot be read, and sends no-store and nosniff headers.

License

MIT