Skip to main content

touhou-hakurei

18Stars0Forks1Issues0Watchers

A Touhou Project themed skin featuring Reimu, shrine day/night backgrounds, character art, and paper-white interface elements.

Evidence4/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
TypeScript
License
NOASSERTION
Branch
master
animedeepseek-harnessdshdsh-plugindsh-skinskintouhou

Install

cmdweb profile
$ dsh plugin --profile web add github:xiake595/touhou-hakurei

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin xiake595/touhou-hakurei for me: review the repository at https://github.com/xiake595/touhou-hakurei first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

一句话定位

这是一套面向 DeepSeek Harness Web GUI 的「东方 Project 博丽神社」主题皮肤。它把对话背景换成博丽神社的昼/夜实景画面,把博丽灵梦的立绘挂在画面两侧,并把侧边栏、对话头部、输入框统一改成朱红/纸白/金色的半透明风格,全程只动外观、不动任何 Host 端能力。

核心能力

  • 替换整页对话背景为博丽神社昼/夜实景图,并跟随系统的亮/暗主题自动切换(src/client/index.ts:310-320)
  • 在画面左右两侧叠加灵梦站姿/飞行立绘,作为独立图层不参与对话流(src/client/index.ts:67-83)
  • 把侧边栏、对话头部、输入框统一改成半透明渐变面板,文字按主题自动分色(src/client/hakurei.module.css:5-86)
  • 给侧边栏四角的竖幅画框、输入框横版画框、工作区缎带/盾形装饰,让控件融入统一面板(src/client/index.ts:87-98、553-569、README.md:25-35)
  • 接管浏览器 tab 的 favicon(换成灵梦头像)、页面标题("博丽神社 · Touhou Project")、theme-color meta(朱红色 #8a2318),让浏览器外观也跟着切换(src/client/index.ts:572-582、278-294)
  • 跟随侧栏宽度的拉伸/折叠自动调整背景定位、对接 WCO 标题栏高度,并避开灵梦立绘的位置(src/client/index.ts:325-411)

技术实现

  • 语言: TypeScript(client 用浏览器 ESM/CJS 混合,host 端是 ESM Node 入口)
  • 关键依赖: @deepseek-ai/cordis ^4.0.1(用 ctx.effect() 注册可逆卸载)、tsdown 0.22.14(构建工具)、lightningcss ^1.32.0(CSS Modules 编译)
  • 架构模式: 客户端注入式皮肤 — cordis.patch.yml 在 web profile 的 plugin roster 里插入 id: ui-skin-hakurei;Client bundle 的 apply(ctx) 在 data-dsh-hakurei body 作用域下挂 MutationObserver + ResizeObserver,监听侧栏、对话页、深浅主题切换后增量重绘;卸载时通过 ctx.effect 的销毁器一次性还原(cordis.patch.yml:5-7、src/client/index.ts:246-276、502-552)
  • 入口文件: src/client/index.ts(浏览器端主入口,导出 apply(ctx)),src/index.ts(Host 端空操作);构建产物 lib/index.js + lib/client.js

适用场景

想让默认的 DeepSeek Harness Web GUI 看上去更有「东方 Project 神社」氛围、避免每天面对同质化白色界面、并且能跟随系统深色模式自动切换的用户。皮肤是纯展示层、不发任何 Cordis 事件、不改模型请求与会话,所以也适合给一台多人共用的 DSH 安装做个性化外观切换。

前置依赖与兼容性

依赖最低版本说明
DSH web profile未声明通过 cordis.patch.yml 把 ui-skin-hakurei 插入 web 端 plugin roster;只对 platform: web 生效(package.json:18-24)
Node.js未声明构建脚本用 tsdown,源码未声明 engines.node;按 pnpm 10+ 默认建议使用 Node 20+(package.json:25-30)
平台macOS / Windows / Linux浏览器端皮肤,运行平台即用户访问 DSH Web 的平台;需要现代浏览器(用到 ResizeObserver / MutationObserver / Window Controls Overlay)(src/client/index.ts:371-373、407-411)
原生模块无全部图片 data URI 内联,无 node-gyp 依赖(README.md:57-60)

安装方式

dsh plugin --profile web add github:xiake595/touhou-hakurei

配置项

配置类型说明默认值
本插件无需额外配置—apply(ctx) 不读 ctx.config、不读环境变量、不读 Schema;所有视觉行为通过 data-dsh-hakurei body 标记和 CSS 变量自动确定(src/client/index.ts:224-582)—

常见问题

Q: 这个插件是做什么的?

A: 它是 DeepSeek Harness Web GUI 的「博丽神社」主题皮肤:用博丽神社昼/夜实景当对话背景、把博丽灵梦的立绘挂在画面两侧、并把所有面板统一改成朱红/纸白/金色半透明风格,皮肤工程结构继承自 dsh-deep-whale 的 maid-atelier(skin.json:1-29、README.md:1-7)。

Q: 装上以后 DSH 的会话、模型、工具会受影响吗?

A: 不会。Host 端的 apply() 是空操作(src/index.ts:1-3),Client 端只通过 ctx.effect() 注册 DOM/CSS 写入和一个统一的销毁器,卸载时把所有皮肤写入过的属性、注入的节点、document.title、theme-color meta 全部还原(src/client/index.ts:246-276)。

Q: 需要单独下载背景、立绘、画框这些素材吗?

A: 不需要。所有图(神社背景、灵梦立绘、侧栏画框、设置画框、缎带、icon 等)都通过 tools/generate-assets.cjs 转成 data URI 内联到 lib/client.js,激活完全离线、不依赖任何临时文件或远程 URL(README.md:57-75)。

Q: 可以同时装两套皮肤互相切换吗?

A: 该皮肤包自己不做切换。皮肤互斥由 dsh-skin 切换工具或 profile 的 bundles 配置管理;本皮肤只通过 wiring.id = ui-skin-hakurei 标识自己(cordis.patch.yml:5-7、skin.json:20-23)。

Q: 卸载后会留下垃圾吗?

A: 不会。Cordis 销毁器会移除所有 [data-skin-owner='hakurei-shrine'] 节点、删除所有写入的 data-* 标记与 body 上的 dataset 标记,并把 body 的 background-、--hakurei- 等 CSS 变量还原到加载前的值(src/client/index.ts:246-271)。

Q: 浅色模式看起来太亮怎么办?

A: 皮肤在浅色主题下会切到浅色背景图 HAKUREI_PALACE_LIGHT,并使用一套纸白配色(--hakurei-porcelain #faf5ea)和减弱的阴影;整体比深色模式亮度低、对比度更适合长时间阅读(src/client/hakurei.module.css:5-50、src/client/index.ts:310-315)。

Q: 能用这套皮肤的素材做商业产品吗?

A: 不能。整包以 CC BY-NC-SA 4.0 发布,明确禁止任何商业性使用(package.json:31、README.md:89-96)。

上手难度

入门 — 安装一行命令即可生效,没有需要填写的配置项,切换和卸载都交给 DSH 自身的皮肤管理机制。

已知问题与限制

  • 仓库未声明 engines.node 与最低 DSH 版本要求;如果 DSH 后续修改了侧栏选择器 [data-pane='sidebar']、标题栏 [class*='titlebar']、工作区 [role='tree'] 等内部 className,绑定点会失效(src/client/index.ts:41-43、106-107、158-218、492-494)
  • 在无 Window Controls Overlay 的普通标签页(headless / 平板模式)下,标题栏高度 fallback 固定为 40px,注释明确写「保持 headless/纯 tab mock 的可用性」,可能与真实标题栏高度不一致(src/client/index.ts:332-369)
  • 整套素材(神社背景、灵梦立绘、装饰画框)以 CC BY-NC-SA 4.0 授权,商业使用前需另行取得书面授权(package.json:31、README.md:89-96)
  • 仅对 platform: web 的 DSH profile 生效,桌面壳/移动端等其他 platform 不会加载这套皮肤(package.json:18-24、cordis.patch.yml:5-7)

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/xiake595/touhou-hakurei)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory