Chobits-Chii-DSH
anime2real/chobits-chii-dsh
Neutral warm Chobits Chii picture-book skin for the DSH web UI, with light and dark token sets, a polaroid photo wall, and a built-in Live2D Chii mascot with gaze following.
설치
dsh plugin --profile web add github:anime2real/chobits-chii-dshREADME
Chobits-Chii-DSH
叽~ 把 DeepSeek Harness 换成小叽的绘本风皮肤
A Chii-themed skin plugin for the DeepSeek Harness web UI.
⚠️ 代码 MIT,资产另计。 Chobits 及其角色的版权归 CLAMP 及相关权利方所有;本项目代码以 MIT 许可证 发布,插画与 Live2D 模型 © Anime2Real,只允许作为本插件的一部分、原样、非商业使用——详见 ASSETS.md。
✨ 功能特性
- 中性暖调配色:暖奶油底 + 暖墨文字 + 低饱和玫瑰点缀,浅色 / 深色两套 token(色板取自 Chobits-Chii-Mascot-Release 落地页,并按中性化取向收敛)
- 拍立得照片墙:落地页同款 5 张插画做成横 / 竖拍立得贴片,沿界面四周散布、向中心渐隐;左侧 300px 侧边栏区与正文区永不遮挡,窄窗口自动隐藏边缘照片
- 轻微动态:鼠标移动时照片按各自深度做反向视差,照片本身有极慢的漂浮;
prefers-reduced-motion下自动关闭,触屏不启用视差 - 细节装饰:圆体字族、玫瑰色选中态、绘本噪点纹理、暖调背景光斑
- Live2D 小叽桌宠:右下角常驻的小叽(可在 Plugins → chobits-chii-dsh 的配置页里开关,记住选择),视线跟随鼠标;会话开始跑时切到
Look、空闲回到Idle;模型是 1024 贴图 WebP 的精简版(约 2.5 MB),随包内置、离线可用,无 WebGL 或加载失败时安静退回照片墙(点击穿透,不做点击触发动作) - 纯客户端、免构建安装:
lib/client.js已随仓库提交,dsh plugin add后即可用;配图构建期内联为 data URI,Live2D 运行时与模型由 host 半的只读路由伺服 - 可热卸载:一切样式与 DOM 注入都走
ctx.effect,禁用 / 卸载插件即完全还原
🚀 安装
要求已安装 DeepSeek Harness(dsh --version 有输出),并至少启动过一次 dsh web:
# npm(推荐)
dsh plugin --profile web add chobits-chii-dsh
# GitHub 源(备用)
dsh plugin --profile web add github:Anime2Real/Chobits-Chii-DSH
安装后重启 dsh web(或刷新页面)。卸载:
dsh plugin --profile web remove chobits-chii-dsh
在 Discover 中发现
DSH 的 Plugins → Discover 只显示用户自己添加的索引源。打开 Plugins → Experimental plugins → Custom plugin indexes,在 Discover → Add index source 里加入:
https://anime2real.github.io/Chobits-Chii-DSH/market/index.json
然后搜索 "Chii" 即可一键安装。索引文件是 market/index.json,格式为 DSH 的 format 1;生成脚本优先使用 npm 源,未发布时回退到 Git commit。
本地开发安装(在仓库目录下,以 link 方式挂进 profile):
dsh plugin --profile web add ./
🧩 兼容性
| 项 | 值 |
|---|---|
engines.dsh | >=0.2.1-rc.5 <0.3.0 |
| 暗色选择器 | body[data-ds-dark-theme] |
| token 名来源 | @deepseek-ai/dsh-client-ui-theme@0.2.1-rc.5 内置设计平台样式 |
DSH 处于 developer preview,升级后若 token 名或客户端插件契约变化,皮肤可能失效——此时更新 src/tokens.js 与 package.json 的 engines.dsh 即可。样式层另有 body 级 token 兜底规则,即使 theme 服务不可用也能保持大部分观感。
🔧 工作原理
纯客户端(client-only)插件,返回对象上声明 inject: ['theme'],由运行时在 theme 服务就绪后应用:
- theme 服务通道(主通道):
theme.overrideTokens('chobits-chii', aliases)注册 66 个--dsw-*token 的明暗两套覆盖(src/tokens.js),随 DSH 外观切换即时生效、可热清理。DSH 的主题渲染器把 token 写在<body>的 inline style 上,这是唯一能压过内置默认值的通道 - 样式层:向
<head>注入带data-plugin-css去重标记的样式,承载字体、选中态、噪点、光斑与照片墙(src/skin.css);token 变量规则同时挂在body上,作为渲染器缺位时的次级保护 - 照片墙:
src/client.template.js的WALL数组驱动,5 张 520px jpg(assets/wall-*.jpg,共约 250KB)构建期内联为 data URI;竖向图 4:5、横向图 5:4,双层 mask(中心径向渐隐 + 左侧条带)保证可读性 - Live2D 桌宠:
src/live2d.js(构建期内联进lib/client.js)在首屏之后空闲时加载assets/live2d/下的 pixi / Cubism Core / 模型,在右下角挂一个点击穿透的 canvas;host 半(lib/index.js)用ctx.webServer.register把该目录挂成只读路由/chii-live2d/assets,所以模型不进 client bundle、也不依赖外部 CDN
🎨 自定义
- 调色:改
src/tokens.js的 token 值(明暗成对),重建即可 - 照片墙:改
src/client.template.js的WALL数组(left/right+y/bottom控制锚点、depth控制视差深度、portrait控制横竖、wide/tallOnly控制窄窗口显隐、r旋转、s缩放);换图把文件放进assets/即可 - 渐隐范围与透明度:
src/skin.css的.chobits-chii-wall - 桌宠开关:侧边栏 Plugins → chobits-chii-dsh 的配置页里有 小叽桌宠 开关(注册在
plugins.bundle.config),开关即时生效、不用刷新;桌宠身上没有关闭按钮,关掉后随时能在那里开回来(偏好存在localStorage的chobits-chii-dsh:live2d);桌宠在场时右下角那张wall-chii-headpat照片会直接隐藏,关掉后再回到原位(src/skin.css里body[data-chii-mascot]那条规则)
改完执行 node scripts/build.mjs,重启 dsh web 并刷新页面。
🛠 开发
node scripts/build.mjs # src/ + assets/ → lib/client.js(纯 JS,提交进仓库,安装免构建)
node scripts/smoke.mjs # 无浏览器冒烟:ModuleLoader 契约 / 有无 theme 服务两种环境
node scripts/market-index.mjs # 发布新版本后重新生成 market/index.json(优先 npm 源,未发布时回退到当前 commit)
目录结构:
package.json # dsh.client 清单 + dsh.bundle.patch + engines.dsh
cordis.patch.yml # 向 web profile roster 插入 ui-chobits-chii 行
lib/index.js # host 半:把 assets/live2d/ 挂成只读路由 /chii-live2d/assets
lib/client.js # 浏览器半(构建产物,已提交)
src/client.template.js # lib/client.js 的模板(占位符由 build 替换)
src/live2d.js # Live2D 桌宠控制器(构建期内联)
src/tokens.js # 明暗两套 --dsw-* token 集
src/skin.css # 装饰层(字体/噪点/照片墙/桌宠),支持 asset("name") 引用配图
assets/ # 5 张 jpg 配图(构建期内联)
assets/live2d/ # web 精简模型(2.5 MB)+ 运行时库 + Core(路由伺服,不进 bundle)
docs/ # README 预览截图、Live2D 方案文档
market/index.json # Discover 索引(format 1)
market/awesome/ # awesome-dsh-plugin 投稿条目
scripts/build.mjs # 构建脚本(仅 Node 原生 API,零依赖)
scripts/smoke.mjs # 冒烟测试
scripts/market-index.mjs # 生成 Discover 索引
🗺 路线图
- v0.1:皮肤 MVP —— token 双主题 + 字体/噪点
- v0.2:拍立得照片墙背景(中心渐隐)
- v0.3:中性配色 + 横竖拍立得 + 侧边栏/正文避让(仅用落地页 5 张图)
- v1.0:Live2D 小叽桌宠 —— 内置 web 精简模型、右下角常驻、视线跟随、
running → Look/ 空闲 →Idle、Plugins 页开关 - v1.0.1:Live2D 贴图切到 1024×1024(模型体积 2.5 MB),随运行时源模型重导出
- v1.0.2(当前):README 补英文 / 日文两版与语言切换,包描述三语
- v1.1:更多状态联动(审批 → 警觉、完成 / 失败 → 表情)、桌宠可拖动、缩放设置项
- v1.2:无障碍与性能巡检(1024 贴图变体已落地)
🏠 关于 Anime2Real
Anime2Real 是一群把「二次元角色」做成能真正跑起来的东西的开发者:桌宠、语音、Live2D、3D、对话模型,一路从素材生产做到能安装的成品,全部开源。小叽(Chii)是我们的第一个角色,这个皮肤只是她在 DeepSeek Harness 里的一个落脚点。
- 组织主页:github.com/Anime2Real
- 想看小叽在桌面上活起来:Chobits-Chii-Mascot / 发布页
- 想给她一副嗓子:Chobits-Chii-TTS · Chobits-Chii-ASR
- 想看模型怎么做出来的:Chobits-Chii-Live2D
- 想参与:每个仓库的 issue 都开着,欢迎提想法、报问题、交 PR;点个 Star 也能让更多人找到我们
🔗 小叽家族
| 项目 | 说明 |
|---|---|
| Chobits-Chii-Mascot | 桌面精灵客户端(Electron + Live2D,本插件第二阶段的模型来源) |
| Chobits-Chii-Mascot-Release | 桌面精灵公开发布渠道与产品主页(皮肤配色与配图来源) |
| Chobits-Chii-TTS | 小叽语音合成模型 |
| Chobits-Chii-ASR | 小叽语音识别服务 |
| Chobits-Chii-LLM | 小叽日语对话 LLM |
| Chobits-Chii-Live2D | 小叽 Live2D 模型与动作资产 |
📄 许可证
代码以 MIT 发布;资产不适用 MIT。 代码开源不等于素材开源——
- 代码(
src/、lib/client.js、lib/index.js、scripts/、cordis.patch.yml):MIT - 资产(
assets/里的 5 张插画、assets/live2d/里的模型与运行时库、docs/里的预览图):© Anime2Real,保留所有权利;只允许作为本插件的一部分、原样、非商业使用,不得单独提取或再分发。完整条款见 ASSETS.md - 角色形象(小叽 / Chii、《人形电脑天使心》)的著作权归 CLAMP 及相关权利方所有;Anime2Real 不主张、也无法授予这些权利
- 第三方组件:
live2dcubismcore.min.js(Live2D Cubism Core)按 Live2D Proprietary Software License 随包分发(官方RedistributableFiles.txt清单允许再分发),许可文本见同目录LICENSE-Live2D-Core.md;pixi.min.js/live2d.min.js/pixi-live2d-display.min.js为 MIT——汇总见 NOTICE - 模型来源:
assets/live2d/chii.model3.json等由 Chobits-Chii-Live2D 的pipeline/export-web.mjs从现役运行时模型导出的 web 精简版(1024 贴图 WebP),来源与体积记录在同目录SOURCE.md
说明:GitHub 的许可识别只看
LICENSE,仓库页面上仍会显示 MIT——资产条款以 README 与 ASSETS.md 为准。