dsh-client-ui-brand

August 28, 2026 · View on GitHub

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 wraps every configured logo in a square, transparent SVG canvas; non-square marks retain their aspect ratio and receive centered padding. 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.

- 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