为 DSH 设置页提供 Web UI 全家桶的聚合卡片、可编辑的常驻人格(猫娘小咪预设)以及关于版权页;保存人格后 DSH 技能系统自动热加载。
- 语言
- TypeScript
- License
- Apache-2.0
- 分支
- main
安装
$ dsh plugin --profile web add github:CAPTAIN1275/dsh-ui-web/packages/dsh-web-ui-settings在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
一句话定位
DSH 设置页的「Web UI 全家桶」容器插件:把整个 dsh-web-ui 家族的功能插件折叠成设置页里的一张聚合卡片,并自带一个可编辑的「常驻人格」编辑器(默认提供猫娘小咪)和一个版权说明页。
核心能力
- 在设置页「插件配置」区插入一张「Web UI 插件」组卡,所有家族功能插件的启用开关与配置表单都收纳在这张卡里
- 提供设置页「人格设定」分区:开关、名称、描述、Markdown 正文四件套,一键填充「小咪」猫娘预设,保存即生效
- 提供设置页「关于」分区:展示当前插件版本、基于的上游项目、第三方资源版权与商标声明
- 后台 HTTP 路由:读取/写入人格配置、列出内置人格预设、查询聚合包版本(用于「检查更新」)
- 启用人格时自动在用户级技能目录生成对应的 SKILL.md,DSH 技能系统热加载,无需重启
技术实现
- 语言: TypeScript(ESM,target web)
- 关键依赖: @deepseek-ai/cordis、@deepseek-ai/dsh-host-webserver、@deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-ui-settings
- 架构模式: 双端插件——host 端(Node)注册
/api/persona/*与/api/web-ui/version路由,client 端(浏览器 React)注册settings.plugin.item组卡与settings.section中的两个分区 - 入口文件:
src/index.ts(host apply)+src/client/index.ts(client apply)
适用场景
用 dsh-web-ui 全家桶(含看板、皮肤、SSH、看板娘等)但希望设置页不要被十几张独立卡片刷屏的用户。它把家族插件收纳为一张可折叠的「Web UI 插件」卡,并提供一个常驻人格编辑器(猫娘、虚拟伴侣、助手语气定制都能写)。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH(host + client) | 0.1.0-rc.6+ | peerDependencies 锁定的官方包均为 ^0.1.0-rc.6 |
| Node.js | 未声明 | 源码未在 engines 中声明,遵循宿主要求 |
| 平台 | 仅 Web | package.json#dsh.client.platform = web |
| 原生模块 | 无 | 不引入 node-gyp 模块 |
安装方式
dsh plugin --profile web add github:CAPTAIN1275/dsh-ui-web/packages/dsh-web-ui-settings
配置项
本插件无需额外配置。它是设置页的容器,本身不暴露 ctx.config.* 字段。用户可编辑的内容是「人格设定」分区的表单(开关、技能名、描述、正文),保存后写到 ~/.dsh/persona.json 与 ~/.dsh/skills/catgirl-rp/SKILL.md,与插件配置无关。
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 启用人格 | 开关 | 是否常驻生效(关闭时 SKILL.md 被改名暂存) | 开 |
| 技能名 | 文本 | 必须是「小写字母/数字/短横线」,会作为 SKILL.md 所在目录名 | catgirl-rp |
| 描述 | 多行文本 | 写入 SKILL.md 的 frontmatter description,建议包含「Use when」 | 内置猫娘描述 |
| 人格设定正文 | Markdown | 写入 SKILL.md 主体,每次对话的回复依据 | 内置猫娘正文 |
常见问题
Q: 装上后没有可见效果,是不是没生效?
A: 这个插件是「设置页容器」型插件:装上后本身不会改变对话体验。它只会在 DSH 设置页多出「Web UI 插件」「人格设定」「关于」三个分区。要看到它承载的其他插件(如看板、皮肤)需要同时安装 dsh-web-ui-all 聚合包或其它家族包。
Q: 装上后人设就启用了吗?怎么关掉或改写?
A: 默认会启用「小咪」猫娘人格(每次对话都以小咪身份回应)。打开 DSH 设置页「人格设定」分区,关掉顶部开关即可停用,或编辑正文后点「保存」立即覆盖,无需重启。
Q: 人格保存后写到哪里?为什么对话立即生效?
A: 保存时写入 ~/.dsh/persona.json,同时在 ~/.dsh/skills/catgirl-rp/SKILL.md 生成一份技能文件,DSH 技能系统(dsh-skill-filesystem)热加载该技能,所有新对话自动套用。禁用时 SKILL.md 会被改名成 SKILL.md.disabled 而不是删除,再启用就恢复。
Q: 「关于」里显示的版本号是怎么来的?为什么有时显示「未知」?
A: 插件启动时读自身 package.json 拿到 current 版本,并在每次请求时去 npm registry 拉 @captain1275/dsh-web-ui-all 的最新版本做对比,8 秒内没拿到就当作查不到(latest 为 null),前端就会显示「未知」。这不影响使用,只影响更新提示。
Q: 这个插件能在桌面版/CLI 版用吗?
A: 不能。它在 package.json#dsh.client.platform 里声明 platform: web,只注入到 Web 设置页。DSH 桌面客户端走的是另一套 UI,需要装对应分支的 dsh-web-ui-settings 包。
Q: 我想完全卸载,连同猫娘人格一起清除,该怎么操作?
A: 先在设置页「人格设定」分区关掉开关(或点保存覆盖为空内容),让 ~/.dsh/skills/catgirl-rp/ 被改名暂存;然后用 dsh plugin --profile web remove 卸载插件包;最后手动删除 ~/.dsh/persona.json 与 ~/.dsh/skills/catgirl-rp/ 残留目录即可彻底清除。
上手难度
入门 — 装上即生效;不需要写代码,普通用户在设置页点几下就能编辑人格、查看版本、收拢家族插件卡片。
已知问题与限制
- 「检查更新」功能强依赖 npm registry 可达性;离线或网络受限时永远显示「未知」,没有重试也没有降级提示
- 默认行为激进:装上后人格就处于「常驻启用」状态且内容是一只猫娘人格,不熟悉的用户第一次进对话可能会被猫娘语气吓到,需要到设置页主动关掉
- 默认写入
~/.dsh/skills/catgirl-rp/SKILL.md的目录名是硬编码的「catgirl-rp」,跟「小咪」人格内容强绑定;改成严肃人格后目录名还叫 catgirl-rp,需要一并改技能名 - 插件本身没有
engines.node声明,Node 版本兼容性完全由宿主 DSH 决定
基于 zhu1090093659/dsh-web-ui(Apache-2.0)开发的 DeepSeek Harness(DSH)Web UI 插件套件。全套 22 个包已发布到 npm(
@captain1275/*)。
DSH Web UI 全家桶为 DeepSeek Harness 的 Web 界面提供一系列插件与皮肤:极光毛玻璃皮肤、任务看板、 SSH 运维、右侧文件/变更面板、Git 图谱、移动端远程控制、DeepSeek 娘看板娘(养成系)、实时令牌统计, 以及皮肤中心。所有插件既可独立安装,也可通过聚合包一次装齐。
极光 Aurora 皮肤效果(沉浸光感 / 深色 / 浅色)



特性
极光(Aurora)皮肤(支持动态背景)
- 毛玻璃输入框:高斯模糊(backdrop-filter 30px)+ 半透明玻璃底 + 细边框 + 内高光
- 自定义背景:URL / 本地图片 / 动图(GIF/WebP)/ 视频(mp4/webm) / 透明度 / 模糊调节,
深浅两套极光渐变;视频背景支持静音开关、本地文件持久化(存
~/.dsh/skin-aurora-media/,刷新不丢) - 仿Claude Code推理等级滑块:点击模型菜单的「推理等级」弹出 Effort 滑块面板——无极拖动、松手吸附、 WebGL 火焰跟随、OFF/MAX 刻度、Low/Medium/High/Ultracode 状态

- 用户消息气泡毛玻璃:与输入框统一的玻璃质感
DeepSeek 看板娘(养成系)
- 图片资源(社区同人资源,codex-pet-DeepSeek-girl)
- 养成系统:亲密度 4 级成长(幼鲸 / 伙伴 / 挚友 / 深海羁绊)、升级庆祝气泡、进度条、 Token 零食经济、使用时长成长(每 30 分钟 +1)
- 待机随机气泡:空闲时随机说话(live2d 风格文案)
- 摸头 / 喂食 / 改名 / 拖动,召唤按钮(live2d 同款贴边滑出)
Skill 人格设定
- 设置「人格设定」:开关启用/禁用常驻人格,编辑技能名、描述与人格正文
- 一键生效:保存后写入用户级技能
~/.dsh/skills/catgirl-rp/SKILL.md,DSH 技能系统实时加载, 所有新对话自动以该人格回应(含语气、动作表达、互动规则) - 内置猫娘人格:默认提供「小咪」猫娘人格(常驻生效、好感度系统、模式切换指令),可自由改写
- 可临时退出:对话中说「退出角色扮演模式」即切回普通助手,说「进入角色扮演模式」恢复

用量看板
- 彩色统计卡:累计 token、调用次数、缓存命中、估算费用(按 DeepSeek 官方定价)
- 近 14 天趋势:每日 token 消耗柱状图
- 模型分布:各 provider/model 用量环形图 + 图例
- 会话排行:Top 20 会话(标题 / 模型 / 调用数 / token / 费用)
- 自动记录:对话时自动采集 token 用量(会话快照替换语义,不双计),存
~/.dsh/usage.json - 侧边栏入口:彩色柱状按钮打开全屏看板
功能插件
| 插件 | 功能 |
|---|---|
| dsh-task-board | 侧边栏任务看板:多列 kanban、真实执行(驱动 agent 会话)、定时执行(cron) |
| dsh-ssh | SSH 运维:主机管理、远程执行、SFTP 传输、隧道、集群并发、Web 终端 |
| dsh-aionui-panel | 右侧「预览 / 文件 / 变更」面板:文件树、多格式预览、git 操作、文件拖拽 |
| dsh-git-graph | 会话头部 git 分支选择器 + 提交图 |
| dsh-live-stats | 实时 token 估算与生成速度 |
| dsh-full-stats | 完整统计行:覆盖官方统计(不省略)+ 运行状态指示 + 自定义状态文本(含替换官方 Deep diving...) |
| dsh-usage-dashboard | 用量看板:彩色统计卡 / 近 14 天趋势 / 模型分布 / 会话排行 / 费用估算 |
| dsh-web-ui-settings | 设置页「Web UI 插件」配置组 + 「人格设定」+「关于」版权页 |
| dsh-web-ui-all | 聚合包:一键安装全部插件 |
皮肤中心
10 套皮肤(ths / xp / blue-fantasy / dragon-heir / minecraft / miku / trading / whale-song / aurora / skin-center),支持皮肤启用互斥管理与一键切换。
其余皮肤(ths / xp / blue-fantasy / dragon-heir / minecraft / miku / trading / whale-song) 为上游 dsh-web-ui 自带皮肤。
安装
方式一:npm(推荐,已发布)
# 在 DSH profile 目录(~/.dsh/profiles/web)安装聚合包
npm install @captain1275/dsh-web-ui-all@0.2.8
然后在 profile 的 package.json 里把 @captain1275/dsh-web-ui-all 加入
dsh.profile.bundles:
{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"@captain1275/dsh-client-ui-skin-aurora",
"@captain1275/dsh-full-stats",
"@captain1275/dsh-web-ui-all"
]
}
}
}
重启 DSH 即生效。
方式二:从源码(开发)
git clone <your-repo-url> dsh-web-ui
cd dsh-web-ui
pnpm install
pnpm -r build
# 把本地包链接进 profile(junction)
node scripts/link-profile.mjs
开发
- 构建:
pnpm -r build(或pnpm --filter <package> build) - 新增皮肤:参考
packages/skins/aurora(skin.json+src/client+cordis.patch.yml), 然后用node scripts/skin-center-bundles重新生成注册表 - 聚合包 patch:编辑
packages/dsh-web-ui-all/aggregate.yml后node scripts/aggregate.mjs - 皮肤资产同步:
node packages/dsh-skins/build.mjs
目录结构
packages/
├─ dsh-task-board / dsh-ssh / dsh-aionui-panel / dsh-git-graph
├─ dsh-pet / dsh-live-stats / dsh-full-stats
├─ dsh-web-ui-settings / dsh-web-ui-all / dsh-skins
└─ skins/ # 皮肤源码(aurora、miku、ths 等)
scripts/ # 构建 / 注册表 / 链接工具
shared/ # 共享构建预设(tsdown.client.ts)
版权与许可
- 主体代码:zhu1090093659/dsh-web-ui,Apache-2.0
- 增强优化:@captain1275
- DeepSeek 娘精灵图:xpy12367/codex-pet-DeepSeek-girl, 社区同人资源,版权归原作者
- 人形图标:Font Awesome 6.7.2,CC BY 4.0
- 样式参考:live2d-widget(GPL-3.0,仅参考视觉风格,未搬用代码)
- 商标:DeepSeek 及其相关标识均为 DeepSeek 官方资产;本插件为社区开发者独立维护的非官方同人项目, 不代表 DeepSeek 官方立场。