npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-kaze-tachinu-theme

v1.0.0

Published

Kaze Tachinu (The Wind Rises) theme for DeepSeek Harness Web GUI — dynamic Cordis plugin source (host + client halves) plus an installable dsh bundle, with wallpaper/logo assets

Readme

dsh-kaze-tachinu-theme · 風立ちぬ Theme

中文 | English

是什么 · 主题细节 · 抗哈希漂移设计 · 快速开始 · 自定义 · 常见问题 · 已知限制 · 许可证

是什么

dsh-kaze-tachinu-theme 把 DSH Web GUI 变成宫崎骏《起风了》的模样:一张菜穗子在山坡上写生的电影壁纸垫底,全部界面表面换成半透明毛玻璃,交互色统一为天蓝(#1C96B5),侧边栏品牌与首页 hero 标题替换为自绘矢量徽标(红翼飞机 + The Wind Rises 字标),输入卡重绘为云海蓝玻璃胶囊,占位文案换成「風立ちぬ——让想法随风飘去」。

它是一个标准的 dsh 插件包:一条 dsh plugin 命令装进 profile,随 DSH 启动常驻,不修改任何 DSH 源码;卸载后页面完全还原。

| 维度 | 原生 dsh web | dsh-kaze-tachinu-theme | | --- | --- | --- | | 背景 | 纯色 / 纯色渐变 | 晴空电影壁纸 + 全局模糊遮罩 | | 界面表面 | 不透明分层 | 半透明毛玻璃(backdrop-filter) | | 品牌标识 | DSH 默认 | 自绘红翼飞机徽标(展开态 + 折叠态纸飞机) | | 交互色 | DSH 默认 | 天蓝 #1C96B5(按钮/选中/高亮/描边/滚动条) | | 输入卡 | 默认样式 | 云海蓝玻璃胶囊,占位文案主题化 | | 会话统计栏 | 默认样式 | 居中轻玻璃胶囊 + 分隔符配色 | | 消息列底部 | 直切 | 40px 渐变淡出蒙版(输入框零裁切) | | 安装 | — | dsh plugin --profile web add ... 一条命令 | | 还原 | — | 卸载即完全还原 |

主题细节

天蓝玻璃拟态

主题通过官方 theme.overrideTokens API 叠加一层约 60 项的 design token 覆盖:背景层全部半透明化(露出壁纸)、边框换成低饱和天蓝描边、交互态(悬停/激活/选中)统一为天蓝系、状态色(错误/成功/警告)微调至与深色玻璃协调。亮色与暗色模式共用同一套视觉。完整 token 清单见 docs/theme-tokens.md。

壁纸与徽标

  • 壁纸由插件宿主半区以 /kaze-tachinu/current.jpg 路由提供(包内 assets/current.jpg),叠加一层轻微的深色渐变保证文字可读性;
  • 侧边栏展开态显示横向徽标(红翼飞机 + The Wind Rises 字标),折叠态显示纸飞机字母标记(两个 SVG 均为本仓库自绘原创矢量,由插件路由提供);
  • 首页(hero)标题替换为居中大尺寸徽标。

输入卡与占位文案

输入卡重绘为云海蓝玻璃胶囊,占位文案按界面语言自动替换(含 CJK 检测:中文界面统一为「風立ちぬ——让想法随风飘去」)。当前 DSH 的输入框是基于 Lexical 的富文本编辑器:占位同时存在于 data-placeholder / aria-label 属性与可见占位层(绝对定位、类名以 _placeholder 结尾的节点)——引擎会同步这三处(旧版 <textarea placeholder> 同样支持),宿主重渲染后由 MutationObserver 自动补写。当前 DSH 为单一输入框,只显示「输入框」一列;仅当宿主版本另提供独立的“描述/新会话”输入框时,「新会话」列的文案才会出现。

| 界面语言 | 输入框(统一入口) | 新会话描述(仅独立描述框的版本) | | --- | --- | --- | | 中文 | 風立ちぬ——让想法随风飘去 | 風立ちぬ——让想法随风飘去 | | 英文 | 風立ちぬ。いざ生きめやも。 | Kaze Tachinu — let your thoughts ride the wind |

消息滚动下沉 + 底部渐隐蒙版

DSH 原生把输入框与消息列放在同一个可滚动容器里,直接给容器加蒙版会裁到输入框。本主题把滚动视口下沉到纯消息列:外层滚动容器退化为布局(固定输入框),消息列表成为有界滚动视口并承载 40px 底部渐隐;滚到最底时消息文本完整停在渐变区上方。

会话统计栏胶囊

输入卡上方(composer 区)的会话统计行(「20 轮 · 185 步 | LLM …」)重绘为居中轻玻璃胶囊:内容自动撑宽、暗色半透明底 + 毛玻璃,把文字从壁纸中托出,分隔符弱化为天蓝细点。

统一滚动条

全局滚动条统一为天蓝玻璃风格,适配主流 Chromium 内核浏览器(含 Firefox 的 scrollbar-color 兜底)。

抗哈希漂移设计

DSH 前端的组件类名是构建期哈希(形如 .Md3f7G_*、._7mWUNa_*、.wSkVaW_*),前端升级后必然漂移——历史上这类漂移曾导致「滚动下沉」直接失效、外层容器被禁滚而内层没人接棒,表现为对话滚不动。

本主题自 v2 起采用运行时定位 + 安全回退:

  • CSS 不再引用任何消息滚动/统计栏相关的哈希类名;凡是可能影响可用性的布局都由 hooks.mjs / bundle 浏览器半区的运行时引擎处理:
    • 用稳定属性([data-conversation-scroll]、[data-slot="conversation.session"]、[data-chat-flow])与类名后缀(…_scroll,后缀来自组件作者命名,跨构建稳定)定位消息滚动器;
    • 定位成功后以内联样式 + 自定义标记落地:data-kaze-scroll(会话根)、data-kaze-scroll-inner(内层滚动器)、data-kaze-stats / data-kaze-stats-sep(统计栏胶囊及其分隔符);
    • 统计栏通过文本特征在 [data-composer-seat] 内定位后打标记,样式选择器只挂在这些 data-kaze-* 属性上。
  • 安全回退:任何一步定位失败,运行时引擎直接不动手——原生滚动与默认外观完好(最坏只丢装饰,绝不冻结对话);引擎内部还有 try/catch 兜底,异常只写 console.warn。

标记探测(打开任一会话的「对话」页签后在 Console 运行,预期 1 / 1 / 1 / 2):

console.log('kaze-scroll根=', document.querySelectorAll('[data-kaze-scroll]').length,
  '| 内层=', document.querySelectorAll('[data-kaze-scroll-inner]').length,
  '| 统计栏=', document.querySelectorAll('[data-kaze-stats]').length,
  '| conv-scroll=', document.querySelectorAll('[data-conversation-scroll]').length);

仍在依赖少量哈希类名的只剩纯装饰区域(首页 hero 徽标、侧边栏品牌、输入卡内的高亮/hint),漂移只会造成局部视觉降级,不会影响可用性(见「已知限制」)。

快速开始

浏览器建议:主题大量使用 backdrop-filter 毛玻璃、滚动条定制与 CSS 蒙版,推荐使用 Microsoft Edge 或 Google Chrome;Firefox 下部分显示效果不兼容(滚动条、渐变蒙版等可能打折)。

系统要求

  • 已安装 DeepSeek Harness,dsh web 可正常启动;
  • 机器上有 pnpm(dsh plugin 内部使用;Node.js 自带的 corepack 可提供)。
  • DSH Desktop 用户:dsh 的 profile 位于 %APPDATA%/dsh-desktop/harness/profiles/(命令行环境需先设置 DSH_HOME 指向对应 harness 目录)。

安装(发布版)

dsh plugin --profile web add dsh-kaze-tachinu-theme
dsh web   # 重启 DSH 生效

也可以直接从 GitHub 安装:

dsh plugin --profile web add github:suuuuunamei/dsh-kaze-tachinu-theme

壁纸出现、侧边栏徽标替换生效,即安装成功。安装后随 DSH 启动常驻,无需每次重装。

安装(本地开发 / 未发布版本)

仓库本地包未发布到 npm 时,可先以本地目录安装(file: 为快照拷贝;想「改代码即生效」可改用 link:):

dsh plugin --profile web add file:/绝对路径/dsh-kaze-tachinu-theme
# 或
dsh plugin --profile web add link:/绝对路径/dsh-kaze-tachinu-theme

Windows 提示:跨盘 file:E:/... 会被 pnpm 解析异常。稳妥做法是在 profile 目录内建 junction 指向仓库,再用相对路径安装,例如在 profiles/web 下执行 mklink /J kaze-local E:\绝对路径\dsh-kaze-tachinu-theme 然后 dsh plugin --profile web add file:./kaze-local。 每次改完仓库代码需重跑一次该 add 刷新快照。

更新

dsh plugin --profile web update dsh-kaze-tachinu-theme
dsh web   # 重启生效

暂时关闭(不卸载)

编辑 profile 的 package.json,删掉 dsh.profile.bundles 数组中的 "dsh-kaze-tachinu-theme" 一行,重启生效;加回该行再重启即恢复。长期不用请直接卸载。

卸载

dsh plugin --profile web remove dsh-kaze-tachinu-theme
dsh web   # 重启后页面完全还原

皮肤中心方式(可选)

若使用 dsh-web-ui 的皮肤中心(skin-center),可改以皮肤包形式安装:把仓库 skin/kaze-tachinu/ 整个目录拷到 ~/.dsh/skins/kaze-tachinu/(DSH Desktop 为 %APPDATA%/dsh-desktop/harness/skins/kaze-tachinu/),刷新页面即出现在「设置 → 皮肤中心」,支持试穿 / 一键切换 / 互斥管理。

说明:手工投放的皮肤因皮肤中心的溯源安全门不带 hooks.mjs 行为增强(运行时滚动下沉、占位文案、统计栏标记)——壁纸、配色、徽标、玻璃样式等视觉完整;经 dsh-market 安装则功能全量。皮肤与插件两条通道共享同一份 v2 抗漂移引擎代码。与插件安装方式二选一。

自定义

需本地克隆并改用 link: 安装(见上文“本地开发”)。

换壁纸

替换克隆目录中的 assets/current.jpg(保持文件名不变),浏览器强刷(Ctrl+F5)即可。

换徽标

替换 assets/logo/ 下的两个 SVG,强刷生效。

换占位文案

占位文案由运行时引擎的 themeCopyFor(text) 按界面语言选择(三处同源:bundle/client.js、plugin/client.js、skin/kaze-tachinu/hooks.mjs):中文统一为 風立ちぬ——让想法随风飘去,英文输入框为 風立ちぬ。いざ生きめやも。,独立的“描述/新会话”输入框为 Kaze Tachinu — let your thoughts ride the wind。修改后重启生效。

调色

颜色集中在 token 覆盖表(bundle/client.js 与 skin/kaze-tachinu/skin.css)与组件装饰样式中,改完重启并强刷。速查表见 docs/theme-tokens.md。

架构

主题是一个标准的 dsh 插件包(bundle):package.json 声明 dsh.bundle 与 dsh.client,dsh plugin add 装进 profile 并挂上插件行——不修改 DSH 源码。

bundle/host.js       # 插件宿主半区(Node):壁纸/徽标资产路由 /kaze-tachinu/*(路径相对包内解析,装哪都能用)
bundle/client.js     # 插件浏览器半区(./client 导出):token 覆盖 + 装饰样式 + 运行时滚动/统计栏引擎 + 占位文案
plugin/client.js     # Cordis 动态注入同源源码(与 bundle 逻辑一致,一般无需关心)
cordis.patch.yml     # 插件行清单:dsh plugin add 挂载的入口
assets/              # 壁纸与徽标(Logo 为自绘矢量)
skin/kaze-tachinu/   # 皮肤中心(skin-center)皮肤包:skin.json + skin.css + patches.css + hooks.mjs(hooks 与插件同源)

所有副作用(token 层、样式标签、事件监听、DOM 属性、路由、运行时标记)都注册在插件生命周期上,禁用/卸载即完全还原。

常见问题

A: 确认命令里带 --profile web(装进了正确的 profile);浏览器 Ctrl+F5 强刷一次;仍不行时看 dsh web 启动日志有没有 [kaze-tachinu-theme] host half active 与安装时的警告信息。

A: 静态安装的资产路径相对包内解析,正常不会发生。多为 profile 的 node_modules 被手动清理或链接损坏所致:重新执行一次安装命令即可修复。

A: 先跑「抗哈希漂移设计」一节的标记探测:若 kaze-scroll根 / 内层 / 统计栏 全为 0 而 conv-scroll=2,说明页面加载的仍是旧版 client(styleEl 时代或更早),或运行时引擎未生效——确认已安装的是本仓库当前版本并彻底重启;若三标记为 1/1/1 仍滚不动,把 Console 的 [kaze] … 警告发到 issue。

A: 自 v2 起,消息滚动、底部渐隐与统计栏胶囊不再依赖哈希类名(运行时定位 + 安全回退,升级后最坏仅装饰缺失、不会滚不动)。仍依赖哈希类名的仅剩纯装饰区(首页 hero 徽标、侧边栏品牌、输入卡高亮/hint)——升级后这些可能需对照新版类名小修,token 层与稳定 data 属性样式不受影响。欢迎提 issue 附截图。

A: 主题按「壁纸上的深色玻璃」设计,亮/暗模式共用同一套视觉。若在亮色模式下觉得整体偏暗,属预期行为;可自行调亮 token 中的玻璃底色(见「自定义 - 调色」)。

A: token 层是叠加式的,但视觉上会互相覆盖。建议同一时间只启用一个主题类插件。

已知限制

  • 主题的毛玻璃、滚动条与渐变蒙版按 Chromium 内核(Edge / Chrome)打磨,Firefox 下部分显示效果不兼容,推荐使用 Edge 或 Chrome。
  • 首页 hero 徽标、侧边栏品牌、输入卡高亮/hint 等纯装饰选择器仍依赖 DSH 构建期哈希类名,DSH 大版本升级后可能需跟随小修;消息滚动/统计栏等可用性相关部分已哈希无关(见「抗哈希漂移设计」)。
  • 主题强制深色玻璃视觉,亮色模式不做单独适配(见常见问题)。
  • 壁纸与徽标路由缓存 1 小时,替换素材后需强刷浏览器。
  • 个别 DSH Desktop 发行版不执行插件浏览器半区(只加载宿主半区),此类环境下品牌替换、占位文案与运行时滚动下沉等 DOM 级效果受限——与 dsh-kimino-theme 在同类发行版的限制一致;标准 DSH Web 客户端可完整生效。

许可证与素材版权

代码以 MIT 授权。

assets/ 中的壁纸素材源自电影《起风了》(風立ちぬ, Kaze Tachinu, 2013)的宣传物料,版权归 Studio Ghibli、Nibariki、KDDI、Toho 等原权利方所有。assets/logo/ 下的徽标为本仓库自绘原创矢量作品。本仓库仅作个人桌面美化之用,不主张任何素材版权,也不从中获利;如权利方提出异议,将立即移除相关素材。

参与贡献

  • 提交信息遵循 Conventional Commits(如 feat(client): fix xxx),代码、文档与提交信息不使用 emoji;
  • 用户可见的变更请在 PR 中附截图或验证证据;
  • 改动主题 token 时同步更新 docs/theme-tokens.md。

喜欢这个主题?点个 Star。

报告问题 · 功能建议