dsh-client-ui-brand
Custom product name and logo branding for DeepSeek Harness Web 自定义 DeepSeek Harness Web 端 logo 和产品名称
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 26, 2026
- Updated
- Aug 26, 2026
Introduction
English | 中文
dsh-client-ui-brand
This is a simple DeepSeek Harness plugin. It customizes the product name and logo without changing DeepSeek Harness source code.
Preview

What it changes
- product name in the expanded sidebar;
- product mark in the sidebar and empty conversation.
Browser title, favicon, and PWA metadata are not configurable through this plugin. They require a branded Web Shell build.
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
| Field | Default | Description |
|---|---|---|
productName | Brand New Agent | Sidebar product name. |
logoUrl | Not set | HTTPS URL, same-origin absolute path, or data:image/... URL for the logo. |
logoPath | Not set | Absolute path to one local logo image served by DSH. |
logoAlt | productName | Accessible 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
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