🎨 凡人修仙传系列皮肤为 AI 生成的同人创作,基于《凡人修仙传》(作者:忘语)角色形象,仅供个人欣赏与学习交流。
🎨 DSH Skin Studio · English
The skin studio for DeepSeek Harness — curated built-in skins · a community skin gallery · give every agent its own face.
⚠️ DSH itself is at the v0.1 developer-preview stage and its plugin API is still unstable. This project tracks upstream releases; cross-version compatibility is not guaranteed yet.
📖 What is this project
DeepSeek Harness (DSH) takes "everything is a plugin" to the extreme — models, tools, sessions, and even the UI are replaceable plugins. A Skin is a kind of UI plugin, defined by skin.json + lib/client.js, implementing try-before-apply with zero residue on exit via the ThemePresenter interface.
dsh-web-ui already ships 8 hand-picked skins by its author, proving the road works. We want to go one step further:
Let users build their own skins and upload them — an open Skin Gallery.
Not "N curated picks by the author", but a marketplace where anyone can contribute and anyone can install.
✨ Key Features
Feature
Description
🎨 Curated built-in skins
Ships with several high-quality skins, ready out of the box
📥 User-uploaded skins
Drag & drop skin.json + assets into the gallery — no rebuild required
skin.json fields align with dsh-web-ui; existing skins migrate as-is
🧩 Plugin interop
Skins can consume data from other DSH plugins (tickers, pets, token stats, …)
🛠️ Skin dev tooling
dsh-skin init scaffolder + type definitions + validator to lower the barrier
🚀 Quick Start
Prerequisites
Node.js ≥ 20
DeepSeek Harness installed (npx @deepseek-ai/dsh web runs successfully)
Installation
# Add the skin gallery package to the web profile
dsh plugin --profile web add @dsh-skin-studio/gallery
# Or the full bundle (skins + gallery + dev tools)
dsh plugin --profile web add @dsh-skin-studio/studio
Verify
dsh --profile web --dump-config # confirm the plugin is mounted
{
"id": "my-skin", // unique skin ID (kebab-case)
"name": "My Skin", // display name
"version": "1.0.0", // semver
"author": "You ",
"description": "One line about this skin",
"homepage": "https://github.com/...", // optional
"license": "MIT",
// visual variants (at least one; supports light/dark)
"variants": ["light", "dark"],
// client entry (relative to the skin root)
"client": "lib/client.js",
// capability declarations (what the skin can do)
"capabilities": {
"customTitleBar": true, // custom title bar
"customBackground": true, // custom background
"customScrollbars": true, // custom scrollbars
"consumePlugins": ["dsh-fun-ticker"] // consume data from other plugins
},
// palette (optional, used for gallery color previews)
"palette": {
"primary": "#3b82f6",
"background": "#0f172a",
"surface": "#1e293b",
"text": "#f1f5f9"
}
}
See docs/SKIN_SPEC.md for the full field definitions and the ThemePresenter interface signature.
🛠️ Develop your own skin
# Scaffold a skin template
npx @dsh-skin-studio/create my-skin
cd my-skin
pnpm install
pnpm dev # dev server with hot-reload preview
pnpm build # build lib/client.js
DeepSeek Harness — thanks to the DeepSeek team for the "everything is a plugin" runtime this skin ecosystem is built upon
dsh-web-ui — pioneer of the skin format and the ThemePresenter abstraction; this project borrows heavily from its design
Everyone who contributes skins
🎨 The A Record of a Mortal's Journey skins are AI-generated fan art based on characters from the novel by Wang Yu (忘语), for personal enjoyment and learning only.