keman-ai/dsh-skin-pack
A full set of skins for DeepSeek Harness — one repository, each theme installable on its own
Project Overview项目介绍
DSH Skin Pack is a collection of 30 independently distributed dark and light themes for DeepSeek Harness, each with its own color scheme, new-session cover, and preview. Use it when you want to restyle the DSH interface or switch between visual styles; install via the skin-market plugin or individual Release .tgz packages. Note that github:keman-ai/dsh-skin-pack does not work, because pnpm cannot install from a git repository subdirectory.
DSH Skin Pack 是 DeepSeek Harness 的皮肤合集仓库,内含 30 套独立发布的暗色/浅色主题,每套含配色、新会话封面与预览。想更换 DSH 界面外观、在多套风格间切换时使用;可经皮肤市场插件安装,也可按 Release 的 .tgz 单装。注意不能用 github:keman-ai/dsh-skin-pack 直接装,pnpm 不支持从 git 子目录安装。
请帮我了解并安装插件:【dsh-skin-pack】【https://github.com/keman-ai/dsh-skin-pack】
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.把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add -w github:keman-ai/dsh-skin-market
把 keman-ai/dsh-skin-pack 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
DSH Skin Pack
A whole shelf of skins for DeepSeek Harness.
One repository, many themes, each installed on its own.
dsh.a2hmarket.ai — see them in action, read the notes, install in one click, no login required
English · 简体中文
If this is useful to you, a Star goes a long way
Install
Start by browsing the DSH skin market — every skin has a full-screen preview and its design notes, and no login is required.
The easiest route is to install the skin market plugin once; after that every skin is searched, installed and switched from inside dsh:
dsh plugin --profile web add -w github:keman-ai/dsh-skin-market
Restart dsh once, open Settings → Skin Market, and search, install and switch without going back to the terminal.
You can also install a single skin directly — find the version in Releases and copy that .tgz URL:
dsh plugin --profile web add -w https://github.com/keman-ai/dsh-skin-pack/releases/download/<tag>/<package>-<version>.tgz
-wis not optional. The profile directory ships apnpm-workspace.yaml, so pnpm reads it as a workspace root and refuses to install withERR_PNPM_ADDING_TO_ROOT. The flag is the "yes, install into the root" declaration.
Why not github:keman-ai/dsh-skin-pack: pnpm has no notion of installing from a subdirectory of a git repository, so a git spec pointing at this repo would pull the whole thing into your profile as a single package. Hence a separate tarball per skin.
The skins
31 skins. This section is generated by scripts/readme.mjs — do not edit by hand.
Development
pnpm install
pnpm verify # consistency gates: three ids aligned, files covers the entry, no theme-id collisions
pnpm check # type check
pnpm build # full build (about 0.1s per package, a few seconds for the repo)
The skins have no dependencies on each other, so there is no incremental build — a full one is fast enough that the complexity would buy nothing.
To publish a change to one skin, bump the version in its package.json: CI decides what to publish by whether a version already has a matching Release tag, and skips every package whose version was not bumped.
pnpm release --dry # show what would be published without touching the remote
Directory layout
packages/<name>/ ← the package is always dsh-<name>; the scripts and the market data both rely on that mapping
├── skin.json ← the skin's self-description; its id must match cordis.patch.yml and THEME_ID
├── cordis.patch.yml ← inserts the skin into the Loader tree; without it the plugin is never loaded
├── package.json ← dsh.bundle.patch points at the patch; files decides what goes into the tarball
├── src/ ← the host half (src/index.ts) and the client half (src/client/)
├── preview/ ← preview images, used by the market and by the wall above
└── lib/ ← build output; kept out of git, built by CI and packed into the tarball
Not committing lib/ is the biggest difference from the standalone-repository era: back then skins installed via github:owner/repo and what you installed was the output in the repository, so leaving it out shipped an empty shell. Now that distribution goes through Release tarballs, npm pack packs the built lib/ according to files, and committing it would only bloat the repository.
Want to build your own?
The fastest route is to copy any skin under packages/ — they all share one structure, and skin.json, cordis.patch.yml and src/client/tokens.ts are the whole entry point.
When it is ready, you are welcome to publish it on the DSH skin market, where anyone can browse and install without logging in.
License
MIT © Science Roam Limited
If this is useful to you, a Star goes a long way































Small-tailqwq/dsh-deep-whale
d-dev0101/open-sea-skin
kingOfSoySauce/dsh-liang-skin
RevolutionLA/dsh-dream-skin
Fishquito7/dsh-skill-mcp-panel
SLin-code/dsh-custom-skin
XieRW/dsh-beauty-skins