zzyyyds88/dsh-solo-leveling--plugins-skin-center ↗★ 1

dsh-plugin-skin-center

提供皮肤列表、试穿与热切换功能 适合需要管理和快速切换DSH界面主题皮肤的用户。

包名
dsh-plugin-skin-center
兼容性
待验证
Harness 依赖范围
workspace:^
Cordis 依赖范围
workspace:^
版本
0.1.0
许可证
MIT
最近更新
2026年9月15日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zzyyyds88/dsh-solo-leveling#e9b423a6edb54375cce99c30741d5561ab2b141c&path:plugins/skin-center

DSH 纯插件集(Solo Leveling Plugins)

官方 DeepSeek Harness 的插件集 —— 不再 fork,不改任何官方源码。 基线:官方 npm 包 @deepseek-ai/dsh@0.1.5-rc.2。

形态变更(2026-09):本仓库曾是「大宝贝定制版」——把 harness 源码平铺仓库根、自维护基线的 fork 整合包。 该形态已废弃,现改为纯插件集。原因与迁移过程见 docs/工作区/纯插件迁移方案.md。

这是什么

一套跑在官方原版 DSH 上的插件。官方宣称「一切皆插件」,实测也确认:当年为了访问门禁、设置命名空间暴露、LLM 重试兜底而不得不改官方包的那批需求,官方 0.1.5 已自己实现或换成了别的方式,剩下的差异化能力全都能以插件形态做出来。

所以本仓库现在只做一件事:给官方 DSH 加插件,让它更好用。

插件清单

插件半作用
dsh-plugin-git-graph-host + -uihost + clientGit 图谱:分支选择器、提交历史、分支泳道;host 侧 /git/* 路由做工作区圈根校验
dsh-plugin-task-board-host + -uihost + client任务看板:五列看板;台账与 cron 调度在 host 进程(关掉网页照跑),数据落 $DSH_HOME/task-board/ledger.json;/api/task-board/* 供看板与外部复用
dsh-plugin-mobile-adapthost + client手机端适配:窄屏下侧栏/右侧栏变抽屉、虚拟键盘避让、输入区 16px 防 iOS 缩放、设置弹层触控优化;断点与抽屉宽度进设置卡
dsh-plugin-pethost + client网页桌宠:随任务/工具/上下文切换表情的 Live2D 女仆,状态气泡、音效语音、账房 token 统计
dsh-plugin-skin-centerhost + client皮肤中心:列表 / 试穿 / 一键应用(host /api/skin-center/* 热切换);skin-background 背景命名空间
dsh-plugin-skin-maid-atelierhost + client皮肤资产:Abyssal Maid Atelier(深渊女仆工坊),侧栏立绘、蕾丝装饰、标题栏品牌字

所有插件共用一个约定:可调参数一律进「设置 → 插件 → 插件配置」卡片,保存即生效,不硬编码。

安装与运行

1. 装官方 DSH

npm i -g --allow-scripts=@deepseek-ai/dsh-subprocess-local,koffi,node-pty,@google/genai,protobufjs \
  @deepseek-ai/dsh@0.1.5-rc.2

--allow-scripts 不能省:npm 11 默认拦截 native 依赖的安装脚本,不补跑会缺文件系统与终端能力 (koffi / node-pty 的原生绑定不会编译)。

2. 装插件

dsh plugin --profile web add /path/to/dsh-plugin--0.1.0.tgz

装完会自动追加进 $DSH_HOME/profiles/web/package.json 的 dsh.profile.bundles 层栈, 无需手动改任何配置。

3. 起实例

dsh web

启动行会打印带 token 的 URL(并带一个 LAN 地址,见下)。

作为 systemd 常驻服务

[Unit]
Description=DeepSeek Harness Web
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
Environment=HOME=/root
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ExecStart=/usr/bin/dsh web --no-open
Restart=always
RestartSec=3
KillMode=control-group

[Install]
WantedBy=multi-user.target

Environment=HOME= 必须显式给——systemd 不保证为 root 注入 HOME,缺了会解析不到 $DSH_HOME。 取启动 token:journalctl -u dsh-web | grep 'dsh web:' | tail -1。

局域网访问

官方 CLI 故意拒绝 --host 0.0.0.0(避免误敲一个 flag 就把 RCE 暴露到网络), 但 host 配置字段本身支持它——官方 README 也明确描述了这个部署形态。写 $DSH_HOME/cordis.patch.yml:

- id: webserver
  config:
    host: '0.0.0.0'
    port: 3080

注意 config 是整段替换,必须重述 port。生效后启动行会自动带上 LAN 地址, 且该地址自动进 trustedHosts,不需要 --trusted-host。

已知限制(官方设计如此,非本仓库缺陷)

限制说明
局域网页面改不了设置官方 ui-settings 明确限制:非 loopback 页面拿不到可写 settings("every row it backs is inert even though Connection authentication covers the API")。要在界面上配置,走 SSH 端口转发 ssh -N -L 3080:127.0.0.1:3080 后开 http://127.0.0.1:3080/
无 TLS官方 webserver 不带 TLS,token/Cookie 在局域网明文传输
token 每次启动都换但会话 Cookie 是持久的(默认 30 天、跨重启有效)。用一次 token 换到 Cookie 后,直接访问 http://:3080/ 即可
没有登出/吊销接口官方无 logout/revoke/rotate。想踢设备只能删 $DSH_HOME/.credentials.yaml 里的签名密钥(全体失效)
Cookie 按 authority 绑定127.0.0.1 与局域网 IP 的 Cookie 不通用,固定用一个地址

完整痛点清单见 docs/工作区/纯插件形态-痛点清单.md。

目录结构

plugins/           8 个插件包源码(构建前提见 plugins/README.md)
docs/工作区/       工作区文档:迁移方案 / 退役审查 / 痛点清单

本仓库不含 harness 源码(旧 fork 形态的遗留已清理)。 构建插件需要一份外部的 harness 源码检出——官方未发布客户端打包 preset, 仓外插件必须自行复现那套 lazy-CJS factory 产物;步骤见 plugins/README.md。

相关文档

文档内容
纯插件迁移方案处置决策、迁移配方、rc.2→0.1.5 完整 API 映射表、逐项验收证据
插件退役审查逐个插件的退役判据、官方能力对照表、0.1.5 DOM 钩子清单
纯插件形态-痛点清单使用痛点、已放弃的能力、等官方正式版后的动作

已退役的能力(不要再问「为什么没有 X」)

退役项原因
访问门禁 + TLS改用官方 token 门禁;官方无 TLS,一并放弃
live-stats 实时统计官方 ui-chat 的 StatsPills 已覆盖(TPS/TTFT/token/缓存命中)
describe-image 图像理解官方 DeepSeek 提供方现在只有多模态模型(deepseek-flash 等),原生识图;且官方对文本模型传图是硬拒绝
defaults 默认值零消费方(其消费方在退役的 fork 里),是空壳
aionui-panel 右侧面板文件树/预览被官方右侧栏四件套全覆盖
mobile-remote 手机遥控手机端操纵整体移出范围,只做 web 端

许可

MIT。收录的皮肤资产(Abyssal Maid Atelier)遵循 CC BY-NC-SA 4.0。