Bundle
dsh-client-ui-brand
Non-invasive product name and logo branding for DeepSeek Harness Web
- Source
- ningbonb
- stars
- 4 stars
- License
- MIT
- Updated
- Updated 2 hours ago
Readme
English | [中文](README.zh.md)
# dsh-client-ui-brand
This is a simple DeepSeek Harness plugin. It customizes product branding
without changing DeepSeek Harness source code.
## 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:
```sh
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:
```text
$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:
```yaml
- 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, browser title, and PWA name. |
| `logoUrl` | Not set | HTTPS URL, same-origin absolute path, or `data:image/...` URL for the logo, favicon, and PWA icon. |
| `logoPath` | Not set | Absolute path to one local image served by DSH for the logo, favicon, and PWA icon. |
| `logoAlt` | `productName` | Accessible logo text. |
Configure either `logoUrl` or `logoPath`, not both.
### Local logo
```yaml
- 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:
```text
/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
Install
dsh plugin --profile web add github:ningbonb/dsh-client-ui-brand#22e879cb8b0d1a116ef6d0aecadccbd8fd7db26f
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-client-ui-brand from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.