Agent skill

Skin Developer

by ningbainb in ningbainb/deepseek-harness-desktop

Build a new skin for the dsh-web-ui skin collection (DSH Web GUI) and publish it into the skin-center plugin — scaffold with scripts/dsh-skin-new, author skin.json plus the apply/dispose +…

BSD-3-ClauseAuto-check passedFrontend & Design

Install Skin Developer

skills CLI
$ npx skills add ningbainb/deepseek-harness-desktop --skill skin-developer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ningbainb/deepseek-harness-desktop skin-developer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ningbainb/deepseek-harness-desktop.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.dsh/skills/skin-developer .claude/skills/skin-developer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
skin-developer
GitHub stars
776
Token cost
~1.4k tokens
SKILL.md length
285 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Build a new skin for the dsh-web-ui skin collection (DSH Web GUI) and publish it into the skin-center plugin — scaffold with scripts/dsh-skin-new, author skin.json plus the apply/dispose +…

  • Works in 7 steps: 前置 → 脚手架 → 皮肤契约(硬性约束,违反会挂评审) → …
  • The user asks to create
  • SKILL.md covers 仓库与标准速览, 0. 前置, 1. 脚手架 and 2. 皮肤契约(硬性约束,违反会挂评审), plus 5 more sections
  • Calls pnpm and node

What it does

Skin Developer is an agent skill from ningbainb/deepseek-harness-desktop. Build a new skin for the dsh-web-ui skin collection (DSH Web GUI) and publish it into the skin-center plugin — scaffold with scripts/dsh-skin-new, author skin.json plus the apply/dispose + scoped-CSS contract, build and test with the official standalone bundle standard (turtle-ui shape), regenerate the skin-center registry and gallery, and submit the PR. Use when the user asks to create, add, develop, scaffold, or publish a new skin for the dsh web GUI skin collection.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Frontend development. It works with DeepSeek, Electron, npm and pnpm. The repository describes itself as: Open-source Windows desktop client and GUI for DeepSeek Harness — zero-setup installer with Codex, plugins, skills, SSH, mobile remote access, and 11 skins. The licence is BSD-3-Clause.

When your agent uses it

  • The user asks to create
  • Publish a new skin for the dsh web GUI skin collection

Example prompts

  • “/skin-developer”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. 前置
  2. 脚手架
  3. 皮肤契约(硬性约束,违反会挂评审)
  4. 构建与测试
  5. 试穿与截图
  6. 发布到皮肤中心与 gallery
  7. 验收清单(全部满足才算完成)

What it can do on your machine

Read from SKILL.md and the folder at commit 1dbd6d7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Skin Developer loads about 1.4k tokens when it runs. Until then it costs about 122 tokens; SKILL.md has 285 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~122
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ningbainb/deepseek-harness-desktop at commit 1dbd6d7, republished under its BSD-3-Clause licence (© ningbainb). 285 words, ~1,357 tokens.

Download SKILL.mdSave it as .claude/skills/skin-developer/SKILL.md (or your agent's skills folder).
name
skin-developer
description
Build a new skin for the dsh-web-ui skin collection (DSH Web GUI) and publish it into the skin-center plugin — scaffold with scripts/dsh-skin-new, author skin.json plus the apply/dispose + scoped-CSS contract, build and test with the official standalone bundle standard (turtle-ui shape), regenerate the skin-center registry and gallery, and submit the PR. Use when the user asks to create, add, develop, scaffold, or publish a new skin for the dsh web GUI skin collection.
whenToUse
The user wants a new skin (新建/新增/开发一个皮肤), or wants to publish/发 skin-center, or asks how skins are built and shipped in the dsh-web-ui repo. Not for switching…

皮肤开发者(dsh-web-ui 皮肤集合)

本技能指导在 /Users/zcl/code/dsh-web-ui(或任何 dsh-web-ui 克隆)里从零构建一个新皮肤, 并把它发布进 skin-center 插件(GUI 设置页 Skins 分区)与 gallery。每个皮肤是符合 DSH 官方插件标准(turtle-ui 式 setup)的自包含包,可被 dsh plugin add 安装。

仓库与标准速览

  • packages/skins/<name>/ — 一个皮肤 = 一个自包含插件包;packages/skins/qq98/ 是成熟样例,遇到疑问先读它。
  • 官方标准四件套(对照 DSH docs/user/develop/basic/publish.md,turtle-ui 为范例):
    1. package.json 声明 dsh.bundle.patch → cordis.patch.yml(安装时自动插入 ui-skin-* dshClient 行);
    2. cordis.patch.yml — bundle patch 层;
    3. prepare 脚本 = tsdown(pnpm 在 git 安装后自动运行,自包含构建 lib/,无项目引用、无类型检查);
    4. devDependencies 只用真实发布版本(tsdown / lightningcss / cordis / vitest / jsdom)—— @deepseek-ai/dsh-* 未发布到 npm,运行时由宿主 shell 的 module table 提供,构建时作 external。
  • 构建预设:packages/skins/tsdown.client.ts(官方 packages/client/tsdown.client.ts 的 standalone 移植)。
  • 仓库是 pnpm workspace:根目录 pnpm install 一次即可构建/测试全部皮肤。

0. 前置

sh
cd <dsh-web-ui 克隆根>
pnpm install        # 首次;顺带跑每个皮肤的 prepare

先读 packages/skins/qq98/ 的 src/client/index.ts 与 skin.json,理解 apply 契约与元数据契约。

1. 脚手架

sh
node scripts/dsh-skin-new <kebab-case-name>   # 如 matrix、coffee-break

生成 packages/skins/<name>/:package.json(官方标准)、cordis.patch.yml、tsdown.config.ts、 tsconfig.json、skin.json(order 自动取最大值+1)、src/index.ts(无操作 host 入口)、 src/client/index.ts(最小 apply 模板)、<name>.module.css(作用域样式)、tests/apply.spec.ts (契约测试)、README.md。随后按脚本打印的 next steps 填写。

2. 皮肤契约(硬性约束,违反会挂评审)

  • 纯呈现层:不注入服务、不发 cordis 事件、不触及模型请求(与既有皮肤一致)。
  • apply(ctx) 只写自己会收回的东西:body 属性、注入的 chrome DOM、favicon、document.title; 所有写面在 ctx.effect(() => () => {...}, 'ui-skin-<name>: …') 的 disposer 里全部收回 (包括 body 属性、每个注入元素、favicon;标题仅在仍是皮肤自己的标题时才还原,不覆盖会话标题)。
  • 样式全部挂在自己的 body 属性下:body[data-dsh-<name>];暗色变体 body[data-dsh-<name>][data-ds-dark-theme]。不得用裸类名/全局选择器污染其它皮肤与官方 UI。
  • CSS Modules:import css from './<name>.module.css',类名经 css[name] 取值; CSS 文本由 bundle 的 CSS-modules 自动注入(<style data-plugin-css>,loader 卸载时移除), 皮肤不自己管理 style 标签。
  • 不携带静态资源文件:内联 SVG / data URI(参考 qq98 的企鹅 favicon 写法)。
  • skin.json 字段(gallery 与 dsh-skin 的契约):id(=目录名)、name/nameEn、author、 tagline、description、tags、accent、bodyAttr、package、wiring、preview 路径、order。

3. 构建与测试

sh
pnpm --filter @deepseek-ai/dsh-client-ui-skin-<name> build   # 或根目录 pnpm build
pnpm --filter @deepseek-ai/dsh-client-ui-skin-<name> test    # 或根目录 pnpm test
  • 产物:lib/index.js(node half)+ lib/client.js(bundle,window.__ModuleLoader__.load({id, factory}), 导出 apply)。
  • 测试:tests/apply.spec.ts(vitest + jsdom)至少断言 body 属性设置/收回、chrome 注入/收回、 标题固定/还原。可按 qq98 的 apply.spec 扩展。
  • 冒烟:bundle 结构可用 node 脚本核对(__ModuleLoader__.load 一次、exports.apply 为函数)。

4. 试穿与截图

sh
open gallery/preview.html?skin=<name>&theme=light   # 真实执行 bundle 的模拟器
open gallery/preview.html?skin=<name>&theme=dark
  • 模拟器真实执行 lib/client.js(shim __ModuleLoader__ + 最小 ctx),chrome/样式真实渲染。
  • 重拍并提交预览图(脚本需要 playwright chromium,已装则直接跑):
sh
node scripts/capture-previews    # 重写 packages/skins/<name>/preview/{light,dark}.png(提交入库)
sh
node scripts/skin-center-bundles   # 扫描 packages/skins/*/skin.json + lib/client.js,重新生成
                                   # packages/skins/skin-center/src/client/generated/skins.ts(内嵌注册表)
pnpm --filter @linxin666/dsh-client-ui-skin-center build   # skin-center 重新构建以嵌入新注册表
node scripts/gallery-build         # 重新生成 gallery/manifest.js + gallery/bundles.js
  • 若皮肤要出现在仓库 README「结构」表/「优质推荐」里,同步更新 README.md(中文)与 README.en.md(英文)。
  • dsh-skin 的 SKINS 注册表在 scripts/dsh-skin 顶部——新皮肤需由维护者添加(或用 dsh-skin install <name> 直接官方安装)。
  • 提交全部生成产物(lib/、preview/、generated/skins.ts、gallery 产物、README),推送到 dsh-external/dsh-web-ui(private)并开 PR。PR 描述附 gallery 试穿截图(亮/暗)。

6. 验收清单(全部满足才算完成)

  • pnpm build 通过,lib/client.js 结构正确(__ModuleLoader__.load + exports.apply)
  • pnpm test 通过(body 属性与 chrome 的 apply/dispose 契约)
  • gallery 模拟器试穿真实渲染,亮/暗两态正常(preview.html?skin=<name>&theme=light|dark)
  • preview/{light,dark}.png 已用 capture-previews 重拍并提交
  • scripts/skin-center-bundles 已重跑、skin-center 已重建(新皮肤会出现在 GUI 设置页 Skins 分区)
  • scripts/gallery-build 已重跑,gallery 产物已提交
  • 纯呈现层约束未违反(无服务注入/事件/模型请求)
  • 提交信息清晰,PR 附试穿截图

常见坑

  • 别删 dsh.bundle/cordis.patch.yml/prepare:这是官方安装(dsh plugin add)的契约。
  • 别把 @deepseek-ai/dsh-* 写进 devDependencies:未发布到 npm,workspace:^ 在独立环境必炸。
  • 作用域外漏样式:检查 CSS 每个规则都以 body[data-dsh-<name>] 开头(含暗色变体)。
  • dispose 没收干净:对照 qq98 逐项核对——body 属性、每个 append 的节点、favicon、标题。
  • 预览图过期:改完外观必须重跑 capture-previews,否则 gallery/皮肤中心显示旧图。
  • 皮肤中心不显示新皮肤:先确认 skin-center-bundles 已重跑 + skin-center 已重建(注册表内嵌在 bundle 里)。

© ningbainb, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .dsh/skills/skin-developer of ningbainb/deepseek-harness-desktop.

Open the folder on GitHubat commit 1dbd6d7

Compare with similar skills

Skin Developer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Skin Developer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Skin Developer this skillningbainb/deepseek-harness-desktop776—~1.4kAutomated safety check: PassBSD-3-Clause
AO Desktop App LauncherOrchestratorInc/agent-orchestrator13k—~2.4kAutomated safety check: PassApache-2.0
OpenGUI Installer for DSHCore-Mate/OpenGUI1.8k—~1.1kAutomated safety check: PassCustom licence
Plugin ReleaseNanmiCoder/dsh-auto-mode1651 repos~1.6kAutomated safety check: WarnMIT
Repo Healthcheck Nodecommercetools/ui-kit154—~1.6kAutomated safety check: NotesMIT
@pierre/diffs Code Renderingpierrecomputer/pierre6.2k2 repos~803Automated safety check: PassApache-2.0

Similar skills

  • AO Desktop App Launcher

    OrchestratorInc/agent-orchestrator

    Launches, restarts and troubleshoots the real AO Electron desktop app from a checkout, with isolated or real local data and checks for stale processes.

    13k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • OpenGUI Installer for DSH

    Core-Mate/OpenGUI

    Installs and verifies the latest stable OpenGUI release in a DeepSeek Harness web profile on macOS without disturbing existing plugins or settings.

    1.8k GitHub stars~1.1k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Plugin Release

    NanmiCoder/dsh-auto-mode

    Package, publish, and distribute DeepSeek Harness (DSH) plugins — npm pack artifact validation, GitHub/npm/hub release-track selection, tarball overrides installs for the unpublished cohort…

    165 GitHub starsUsed in 1 repo~1.6k tokens
    DevOps & CloudAuto-check: warnings
  • Repo Healthcheck Node

    commercetools/ui-kit

    Verify a Node.js/TypeScript repo's development environment is correctly set up.

    154 GitHub stars~1.6k tokensUpdated 4 days ago
    Frontend & DesignAuto-check: notes
  • @pierre/diffs Code Rendering

    pierrecomputer/pierre

    Guides an agent through using @pierre/diffs to render syntax-highlighted files and diffs, and to build editing and review surfaces in React or plain JavaScript.

    6.2k GitHub starsUsed in 2 repos~803 tokens
    DevelopmentAuto-check passed
  • Vuetify Playground

    vuetifyjs/vuetify

    Maintains the Vuetify repo's local Playground.vue so contributors get a realistic reproduction and a short demo they can paste into a pull request description.

    41k GitHub stars~730 tokensUpdated today
    Frontend & DesignAuto-check passed

More from ningbainb/deepseek-harness-desktop

  • Dsh Web UI Release

    ningbainb/deepseek-harness-desktop

    Release and publish the dsh-web-ui monorepo (DSH Web GUI plugin family + skin collection) — bump all packages to one unified version, commit and tag, push the vX.Y.Z tag that triggers the GitHub…

    776 GitHub stars~1.4k tokensUpdated today
    Auto-check: warnings

Questions about Skin Developer

What does Skin Developer do?

Build a new skin for the dsh-web-ui skin collection (DSH Web GUI) and publish it into the skin-center plugin — scaffold with scripts/dsh-skin-new, author skin.json plus the apply/dispose +…. Skin Developer is an agent skill from ningbainb/deepseek-harness-desktop.json plus the apply/dispose + scoped-CSS contract, build and test with the official standalone bundle standard (turtle-ui shape), regenerate the skin-center registry and gallery, and submit the PR.

When should I use Skin Developer?

Skin Developer fits situations like: the user asks to create; publish a new skin for the dsh web GUI skin collection.

How do I install Skin Developer in Claude Code?

Run `npx skills add ningbainb/deepseek-harness-desktop --skill skin-developer -a claude-code`. Or copy the skill folder (.dsh/skills/skin-developer in ningbainb/deepseek-harness-desktop) into .claude/skills/skin-developer in your project. Claude Code loads it when a task matches its description.

How do I install Skin Developer in Codex?

Run `npx skills add ningbainb/deepseek-harness-desktop --skill skin-developer -a codex`. Or copy the skill folder (.dsh/skills/skin-developer in ningbainb/deepseek-harness-desktop) into .agents/skills/skin-developer in your project. Codex loads it when a task matches its description.

Can I use Skin Developer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ningbainb/deepseek-harness-desktop --skill skin-developer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skin-developer, .gemini/skills/skin-developer, .github/skills/skin-developer and .opencode/skills/skin-developer in your project.

What does Skin Developer need to run?

Going by SKILL.md and its folder, Skin Developer needs the command-line tools its instructions call (pnpm and node).

Does Skin Developer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Skin Developer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Skin Developer use?

Skin Developer is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Skin Developer use?

About 1.4k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Skin Developer?

Skills that share tags, products or a category with Skin Developer: AO Desktop App Launcher (OrchestratorInc/agent-orchestrator, 13k stars), OpenGUI Installer for DSH (Core-Mate/OpenGUI, 1.8k stars), Plugin Release (NanmiCoder/dsh-auto-mode, 165 stars) and Repo Healthcheck Node (commercetools/ui-kit, 154 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Skin Developer?

ningbainb (a GitHub user) maintains it in ningbainb/deepseek-harness-desktop, which has 776 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 6, 2026.

Source: ningbainb/deepseek-harness-desktop on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.