clclyzybzjsq/deepseek-harness-yunoseek
Yunoseek pink skin for the DeepSeek Harness web GUI. It restyles the DSH browser UI with the pink art direction of the yunoseek chat UI (#E91E8C / #FF6B9D gradients, pink tints) while reusing every DSH layout and component unchanged, through the standard client-plugin interfaces:
catalog 简介 / catalog descriptioncatalog description:一个基于tv动画yumemita中的人物千石由乃,使用剧照素材,应用于deepseek-harness的自定义配色插件;A custom color scheme plugin for deepseek-harness, based on the character Yuno Sengoku from the TV anime "Yumemita"
项目介绍Project Overview
这是 DSH 网页 GUI 的 Yunoseek 粉色皮肤插件,通过标准客户端接口覆盖主题令牌、重绘助手头像与 Hero 光晕,并可注入 Yunoseek 身份系统提示。适合想把 DSH 界面改成 Yunoseek 粉色风格、统一模型人设时使用。注意:身份提示默认全局开启且约多耗 1200 tokens,official 构建不替换品牌位。
This is a Yunoseek pink skin plugin for the DSH web GUI. It overrides theme tokens, restyles the assistant avatar and Hero glow, and can inject the Yunoseek identity system prompt through standard client-plugin interfaces. Use it when you want the DSH browser UI to follow Yunoseek’s pink art direction and persona. Note: the prompt is global by default, adds about 1200 tokens, and official builds skip brand-mark replacement.
请帮我了解并安装插件:【deepseek-harness-yunoseek】【https://github.com/clclyzybzjsq/deepseek-harness-yunoseek】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add dsh-yunoseek-skin
把 clclyzybzjsq/deepseek-harness-yunoseek 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-yunoseek-skin
Yunoseek pink skin for the DeepSeek Harness web GUI. It restyles the DSH browser UI with the pink art direction of the yunoseek chat UI (#E91E8C / #FF6B9D gradients, pink tints) while reusing every DSH layout and component unchanged, through the standard client-plugin interfaces:
- Pink token layer — a theme
overrideTokenslayer over the--dsw-*semantic tokens and the--dsw-static-deepseek-*scale, every token carrying explicit light and dark values from yunoseek's two palettes. The skin is always on and follows the user's light/dark/system preference; no settings change needed. - Art direction sheet — the pink Hero glow recolor per palette, and the assistant avatar painted into every chat assistant row via its stable
data-chat-flow-kindattribute (the host's CSS Modules class names are hashed and not addressable cross-package). - Brand marks (non-
officialbuilds only) — the yunoseek logo in the sidebar brand row, the gradient "Yunoseek" wordmark, and the welcome artwork in the conversation Hero seat. Official DeepSeek Harness compositions already own those single-occupant slots with the built-in brand, so the skin yields them by default (see "Build profile" below). - Yunoseek identity prompt — the node half registers the yunoseek system prompt (
assets/system-prompt.js) as the first system-prompt section, so every assembled system prompt starts with the Yunoseek persona.
extra system prompt takes ~1200 tokens and can be banned/started though the method written in release 0.2.0
Yunoseek identity prompt
Beyond the visuals, the plugin injects the yunoseek identity prompt into the model. Its node half registers a systemPrompt section named yunoseek:identity with order -200, which renders before the harness identity (-100) and the deployment persona (0) — the very first text the model reads for every turn. The default text is the yunoseek system prompt from assets/system-prompt.js, embedded at build time.
The injection is on by default and applies globally to every agent in the profile (the section lives in the prompt registry's global layer). To disable it or replace the text, override the row from your profile patch ($DSH_HOME/profiles/web/cordis.patch.yml) — a later layer that replaces the row's config value:
- update:
- id: yunoseek-skin
config:
enabled: false # skin only, no prompt injection
- update:
- id: yunoseek-skin
config:
prompt: |
# My own identity
... # custom prompt text
Config is read at boot, so restart dsh web after changing it. The section text is static: it carries no {{variable}} references — a custom prompt containing {{…}} fails prompt assembly on purpose (fail loud keeps a malformed prompt out of the model request).
modified prompt takes about 1200 extra tokens
Install
Requirements: a dsh installation (the dsh CLI) and a web profile — the default GUI profile is named web.
From GitHub
dsh plugin --profile web add github:<owner>/dsh-yunoseek-skin
A git install fetches sources, not built artifacts, so pnpm runs the package's prepare script to build lib/. pnpm ≥ 10 refuses to run a git dependency's prepare until explicitly allowed — the first add fails and dsh prints the exact package key; copy it into the profile's pnpm-workspace.yaml:
allowBuilds:
dsh-yunoseek-skin: true
then re-run the add. (That allowance is permission to execute the package's code at install time; only allow packages whose source you trust, and pin a commit: github:<owner>/dsh-yunoseek-skin#<sha>.) Then (re)start your dsh web once so the new roster row composes; later code changes to the skin hot-reload through the web HMR chain.
From npm or a tarball
Prebuilt options need no build allowance:
dsh plugin --profile web add dsh-yunoseek-skin # npm, lib/ built at publish time
dsh plugin --profile web add ./dsh-yunoseek-skin-0.2.0.tgz # pnpm pack
Uninstall
dsh plugin --profile web remove dsh-yunoseek-skin
Build profile and the brand seats
The tsdown config pins DSH_CLIENT_BUILD_PROFILE (default official). In an official build the skin applies the token layer, avatar sheet, and Hero glow only — official web compositions contain the built-in deepseek brand, which owns the sidebar.brand.mark / sidebar.brand.name / conversation.hero.brand.mark seats and must not collide. To show the yunoseek marks instead (e.g. a dev/self-built web, or after disabling the built-in brand row), build with:
DSH_CLIENT_BUILD_PROFILE=dev pnpm install # rebuilds lib/ with brand marks on
and, when your composition still carries the built-in brand row, disable it in the profile patch ($DSH_HOME/profiles/web/cordis.patch.yml):
- update:
- id: ui-brand-official
disabled: true
Build
pnpm install # installs tsdown and runs prepare, emitting lib/
The prepare script is self-contained (docs/user/develop/basic/publish.md): it builds from src/ with a dedicated tsdown config — no monorepo context, no project references, no typechecking. Outputs: lib/index.js (ESM node half) and lib/client.js (CJS browser half).
Distribution
This is a standard dsh bundle: package.json declares dsh.bundle (patch cordis.patch.yml, which inserts the yunoseek-skin row) and dsh.client (platform: "web", informational inject edges). To publish: create a repository under your GitHub account, push this directory, and users install with dsh plugin --profile web add github:<owner>/dsh-yunoseek-skin; or npm publish with lib/ built, or ship pnpm pack tarballs.
Known limitations
- The identity prompt is global and forward-most: a later layer that registers a
complete: truesystem-prompt section replaces the whole prompt for an agent, and the injected text disappears there (the registry's documented complete-section behavior). - Custom prompt text must not contain
{{…}}— prompt variables render strictly and an unknown reference fails assembly. - The assistant avatar is painted into chat rows by selector:
[data-chat-flow-kind="assistant-step"]::beforewith a fixed 34px geometry. If ui-conversation changes that attribute or row geometry, the rule (insrc/client/styles.ts) needs a revisit. - The sidebar and Hero marks are skipped in
officialbuilds by design (single-occupant brand slots); see above for the dev-profile path. - The Hero glow rule targets
[data-phase="hero"] svg ellipse; a future Hero redesign may move the glow out of an SVG ellipse.
License
MIT
nexu-io/open-design
ruvnet/ruflo
amruthpillai/reactive-resume
esengine/DeepSeek-Reasonix
volcengine/OpenViking
Molunerfinn/PicGo
titanwings/distilly
titanwings/colleague-skill