dsh-plugin-brand-custom
Custom brand icon and name for the DeepSeek Harness Web client — replaces the sidebar brand mark/name and the conversation hero mark, with a settings card to change them live, no rebuild and no reload.
What it does
- Occupies the
sidebar.brand.mark,sidebar.brand.name, andconversation.hero.brand.markslots with a custom icon and name, and swaps the browser favicon to match. - Settings card on the plugin's detail page (Plugins → dsh-plugin-brand-custom): edit the brand name, pick an icon image (PNG/JPEG/WebP/GIF/SVG, up to 256KB, previewed in place), and save — the sidebar, hero, and favicon update immediately. Reset restores the bundled defaults.
- Values persist in the profile's settings document, so every browser and every restart sees the same brand.
- Disables the official brand occupants (
ui-brand-official), which only register inofficialbuilds; single brand slots are exclusive. - Ships a bundled default icon from
src/client/assets/icon.png, inlined as a base64 data URL by the tsdown build.
Requires dsh 0.1.7 or newer (the host serves the plugin's settings from its own Config schema there).
Install
dsh plugin --profile web add dsh-plugin-brand-custom
Or from the dsh-market plugin market inside the GUI: search "brand-custom", one click.
Restart dsh web, then open Plugins → dsh-plugin-brand-custom (click the card title) to reach the settings card.
Remove with dsh plugin --profile web remove dsh-plugin-brand-custom.
Develop
npm install --legacy-peer-deps # type packages track the @deepseek-ai next channel
npm run bundle # tsc (lib/types) → tsdown (lib/client.js, PNG inlined as data URL)
lib/client.js is a closure-factory bundle (window.__ModuleLoader__.load): the baseline modules (React, Cordis, ui-slots, ui-primitives) stay external and resolve through the shell's shared module table; everything else inlines. Those contracts are provided by the host shell at runtime, so the only runtime dependency is @deepseek-ai/schemastery (declared as a peer, supplied by the host profile).
License
MIT
No comments yet. Be the first to write one.