DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
C

dsh-columbina-theme-sn

Columbina Theme Sn

Columbina themed glassmorphism skin for DeepSeek Harness — patch edition: theme-takeover switch, background upload with blur/clarity sliders, editable hero title.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:Columbla/dsh-columbina-theme-sn#7bb98839a4a3c0ae78d69824c2282ffbc3fa3cea
READMECompatibilityVersions

Compatibility and provenance

Columbina Theme Sn is published as dsh-columbina-theme-sn and currently resolves to version 0.3.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
11/5/2026

Versions

0.3.1stable
11/5/2026

Related plugins

Loading related plugins…

Latest
0.3.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 1
Weekly downloads
0
Last push
11/5/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Plugin Wallpaper Enginedsh-plugin-wallpaper-engineWallpaper Engine backgrounds for the DSH web GUI: render your local Wallpaper Engine wallpapers behind the chat — Scene and Web in real time through the bundled WebWallGL engine, Video played directly — with iOS-style liquid glass, adjustable blur/scrim/bClaude Designdsh-claude-designDeepSeek Harness plugin: the claude-design skill from baoyu-design. The agent writes canvases of artboards as files and opens them in a local canvas editor.Claude Slidesdsh-claude-slidesDeepSeek Harness plugin: the claude-slides skill from baoyu-design. The agent writes editable slide decks as files and opens them in a local slide editor.Genui@changfenhuang/dsh-genuiGenUI for DeepSeek Harness: interactive UI components rendered inline in assistant replies via the ```dsh-ui fence — layout, charts, plots, forms, quizzes, mermaid, 3D scenes, and an action event loop back to the model. Ships the fence-teaching host plugi

README

Columbina Theme — Patch Edition

English | 中文

A moonlit silver-blue glassmorphism skin for the DeepSeek Harness Web GUI, with an editable Columbina persona.

This is a patch, not an original theme. The bulk of the code comes from Columbina-sn, the font palette from hyposelen1a, and the host/client structure from berhbro. See Credits.

Disclaimer

This theme is pure CSS rendered by your browser, so the final look depends on your machine:

  • Glass blur (backdrop-filter) needs Chromium 76+ / Edge / Chrome. Old engines, disabled hardware acceleration, some remote desktops, VMs or integrated-GPU drivers fall back to a flat translucent layer — no blur.
  • Gradient text (background-clip:text) may fail to paint on a few GPU drivers. There is a @supports solid-colour fallback, but it looks different.
  • Light/dark follows your system/Harness appearance (prefers-color-scheme and body[data-ds-dark-theme]), not a plugin switch.
  • High DPI (125% / 150% / 200%) changes how the 72px avatar, 1px borders and 2px letter-spacing read; screenshot pixels are not CSS pixels.
  • Wide-gamut displays / colour management make saturated purples such as #78007a look brighter or duller. The "same colour" never is, across screens.
  • Fonts: the hero title prefers Source Han Serif / STSong and falls back to a system serif, which changes metrics.
  • Host wallpaper overlay: if your Harness frontend ships its own full-screen wallpaper layer (e.g. #dsh-wall-layer, opaque, z-index:0), it paints over this theme's z-index:-1 background layer. Since v0.2.2 the theme hides that layer while its own background image is active, and restores it in plain mode.

Screenshots are illustrative, not a guarantee of pixel-identical rendering.

What it is

A DSH theme plugin: palette, background image, glass effects, editable persona and sticker conventions. This patched edition adds a theme-takeover switch, background upload, blur/clarity sliders and an editable hero title.

What's changed

ChangeNotes
Theme takeoverWhen two Columbina themes are installed they fight over the same tokens. Toggle on → the other package (dsh-columbina-theme) is disabled through the host pluginManager; toggle off → it is restored and this theme steps aside. Persisted across restarts.
Background uploadUpload from the panel; files land in Background/ and become the anchor. Hover × on a thumbnail to delete (with confirm). Never overwrites existing files, duplicates get a suffix.
Blur & clarityTwo independent sliders: blur 0–40px (preview while dragging, persist on release; the layer scales by 1 + radius/200 to hide the soft edge) and clarity, the positive phrasing of the veil opacity.
Editable hero titleThe title lives in the state file and is editable from the panel. Empty hero.image hides the avatar entirely, leaving one line of text.
Editable welcome pageTitle and a multi-line body are both editable from the panel (v0.3.0). An empty body renders nothing at all; an empty title falls back to the built-in line.
Font paletteLabel tokens now use hyposelen1a's palette: #78007a light, #acabf2 dark, with secondary/tertiary derived at 0.82 / 0.6 alpha. The hero gradient follows.
Viewer text colourThe plain-text preview ships its own green (#2b8a3e) that a container-level color cannot beat, so it is pinned on pre[class*="_plain"]. Syntax-highlighted spans keep their own colours.
Hero image cacheThe image URL carries ?v=<path> so Cache-Control: max-age=300 cannot serve a stale avatar after a swap.
Host wallpaper overlayHides a host-side full-screen wallpaper layer (#dsh-wall-layer) while the theme background is active (v0.2.2).

Everything else (persona section, sticker manifest, fenced routes, slot registration, glass CSS) is unchanged from upstream.

Install

Requirements: a DSH desktop or web profile that loads client plugins. Verified on DSH 0.2.1-rc.2; the Linux test also passed on 0.2.0-rc.2.

dsh plugin needs pnpm on PATH. If it fails with spawn pnpm ENOENT, run corepack enable pnpm first.

From GitHub:

dsh plugin --profile desktop add github:Columbla/dsh-columbina-theme-sn

From a local folder:

dsh plugin --profile desktop add D:\path\to\dsh-columbina-theme-sn

Refresh the page afterwards (the client half is read on page load). Host-half changes need a plugin row reload or a DSH restart.

dsh plugin --profile desktop remove dsh-columbina-theme-sn

Quick start

  1. A ☾ 哥伦比娅 button appears next to Settings at the sidebar foot; the same editor is also under Settings → 哥伦比娅 · 主题.
  2. Top switches: persona / skin / theme takeover / stickers / proactive stickers / no-repeat.
  3. Background block: upload, pick an anchor, drag blur and clarity.
  4. 恢复默认 refills the default persona draft; 重新载入 discards unsaved edits.

When changes apply

WhatApplies
Persona / switches / background settings (panel save)Immediately, next turn
lib/client.jsPage refresh
lib/index.js, cordis.patch.ymlPlugin row reload or restart
Background/ add / remove / renamePage refresh

State & settings

The state file lives at $DSH_HOME/columbina-theme.json, or ~/.dsh/columbina-theme.json when DSH_HOME is unset.

{
  "persona": "…persona prompt…",
  "enabled": true,
  "theme": true,
  "takeover": true,
  "stickers": true,
  "proactive": true,
  "noRepeat": true,
  "stickerSize": 128,
  "customStickers": [],
  "stickerOverrides": {},
  "hero": { "image": "", "title": "今天的 token,能分我一口吗?", "body": "" },
  "background": {
    "enabled": true, "current": "01-columbina-light.png",
    "rotate": false, "interval": 90, "dim": 0.6, "blur": 0
  },
  "rev": 3
}
FieldMeaning
personaPersona prompt; empty disables injection
enabled / themePersona switch / skin switch
takeovertrue disables the rival theme
stickers / proactive / noRepeatSticker switches — prompt rules only, not message filters
stickerSizeMax sticker edge, 48–320px
customStickers / stickerOverridesUser-added entries / renames and hiding of bundled ones
hero.imageIn-package relative path; empty hides the avatar
hero.titleThe hero line
hero.bodyMulti-line text under the title, rendered with white-space: pre-wrap (max 2000 chars); empty hides the whole block
background.dimVeil opacity 0–0.95, higher is paler; the panel's "clarity" = 1 - dim
background.blurBlur radius 0–40px
revWrite revision; bump it when editing by hand

Writes go through a temp file + rename and carry optimistic concurrency: missing rev → 400 client-outdated, stale → 409 stale.

Theme takeover

Both packages override --dsw-alias-* and paint their own background layer, so only one can win. This fork does not fight over CSS specificity:

const RIVAL_PACKAGE = 'dsh-columbina-theme'          // the other package
const manager = ctx.get('pluginManager')
await manager.setPluginEnabled(rival.entryId, !takeover)
  • On → the rival row is written as disabled: true in the profile's cordis.patch.yml (persistent; it will not come back on reboot).
  • Off → disabled: false is restored and this theme's theme flag is turned off too, so you never end up with no theme at all.
  • 1.5s after host start, the plugin re-checks takeover from the state file.
  • If the rival is absent or pluginManager is not available, the switch only reports a message — it never breaks the plugin.

Background & blur

ControlRangeField
Blur0–40 pxbackground.blur
Clarity5–100%background.dim = 1 - clarity/100
Interval15–600 sbackground.interval (only with rotate)

Upload goes through POST /columbina/backgrounds (data:image/*;base64, ≤ 24MB). File names are stripped of path separators and reserved characters; duplicates get a suffix and existing files are never overwritten. Deletion uses POST /columbina/backgrounds/remove and only accepts names present in the scanned list.

Assets

The repo ships a default asset set so it looks complete out of the box:

PathContent
meme/12 Columbina stickers (WebP) + an optional hero avatar 星眸.png (shipped, not used by default)
Background/3 presets: 01-columbina-light.png, 02-columbina-dark.png, 03-columbina-dusk.jpg

These images are not covered by MIT. Character art and official stickers belong to miHoYo / HoYoverse; the avatar and backgrounds belong to their respective artists. Non-commercial fan use only — open an issue and the assets will be removed on request. See NOTICE.md.

To use your own images: drop them into Background/ and refresh; name sticker files after stickers.json's items[].file; point hero.image at any in-package path (a circular PNG with alpha at 72px works best).

Known issues & fixes

SymptomCauseFix
Hero avatar comes back after a restartBefore the state arrives heroReady defaults to true, so the browser paints a cached avatarFixed: nothing is rendered while heroKey is empty
Swapped avatar still shows the old image/columbina/hero sends Cache-Control: max-age=300Fixed: the URL carries ?v=<path>
Switching the background image or dragging blur does nothingThe host frontend draws its own opaque wallpaper layer (#dsh-wall-layer) above this theme's z-index:-1 layerFixed in v0.2.2: that layer is hidden while the theme background is active
dsh plugin add rejected with Unexpected token '\uFEFF'package.json was saved with a UTF-8 BOM, which JSON.parse rejectsFixed in v0.2.2; .gitattributes keeps it from coming back
Viewer text refused to change colourThe plain preview has its own green #2b8a3e; a container color losesFixed: pinned on pre[class*="_plain"] (!important, plain renderer only)
Two themes fight over coloursBoth override --dsw-alias-*, last one winsTurn on theme takeover
Whole window goes blurrybackdrop-filter on [data-shell-overlay], which covers the frameOnly blur the direct children of floating layers
UI flickers when hovering the send button[data-composer-card] became the containing block of a position:fixed tooltipPaint the blur on ::before
The collapsed right panel stays foggyBlur applied to [data-sidebar-right-panel]Blur the real pane [data-dockkit-pane] instead
Dark hero title turns into a pale blockbackground shorthand resets background-clip:textUse background-image and re-declare the clip
Stickers do not show up paths do not match real files

Full reproduction guide for the "background / blur does nothing" class of bugs: docs/repro-background-not-changing.md (English) · 中文版.

Compatibility

ItemNotes
EngineChromium 76+ (Edge / Chrome / Electron); older engines lack backdrop-filter
GPUWith acceleration off, the glass degrades to a flat translucent layer
DPI100%–200% works; at 125% the 1px borders and 72px avatar read slightly differently
OSVerified on Windows 10/11 and Alibaba Cloud Linux; macOS untested
DSHVerified on 0.2.1-rc.2 and 0.2.0-rc.2; slots/APIs may differ in other versions
FontsThe hero prefers Source Han Serif / STSong, falls back to a system serif

Tests

node test/contrast.mjs      # contrast, CSS-only
node test/client.smoke.mjs  # client half with DOM stubs
node test/host.smoke.mjs    # host half, needs assets

Baseline: contrast 31/31, client 130/130, host 115/115 (host prints SKIP when assets are absent).

Credits

ProjectAuthorUsed for
dsh-columbina-themeColumbina-snThe theme itself: host/client halves, fenced routes, slot registration, persona section, the "moonlit silver-blue" palette and glass CSS, sticker manifest, test suites
dsh-columbina-themehyposelen1aThe font palette (#78007a / #acabf2) and the mask-dim idea; the package that theme takeover disables
dsh-cyrene-themeberhbroOriginal host/client structure, rev optimistic concurrency, slot registration and the test harness

The original MIT notice is kept in LICENSE (Copyright © 2026 berhbro).

Character & art: Columbina and all Genshin Impact character names, likenesses and official stickers belong to miHoYo / HoYoverse and are not covered by MIT. This project is not affiliated with, endorsed by, or sponsored by miHoYo, HoYoverse or DeepSeek. See NOTICE.md.

License

Code is MIT. Image assets are not.

stickers.json
Check missing from /columbina/stickers
Proactive stickers do nothingThe rule lives in the host half; a page refresh is not enoughReload the plugin row or restart DSH
Dark primary text looks faint#acabf2 reaches 5.99:1 on this theme's darker backdrop (below the 7:1 the upstream targets, above AA 4.5:1)Use #c3c2fb instead (7.55:1)
A CJK filename became custom-xxxx on uploadThe request body was not UTF-8, so the name was strippedBrowsers are fine; scripts must send charset=utf-8