dsh-nebula-theme:为 DeepSeek Harness Web 客户端换上星尘夜空与动态余烬

前言

长时间盯着 Harness 默认界面写智能体对话时,背景往往是静态色块,Agent 是否在跑也主要靠侧边栏或状态文案判断。若你希望 Web 客户端有一层不打扰阅读的夜景动效,并且用画面高度暗示「有没有会话在跑」,社区维护者 gioguarin 的 dsh-nebula-theme(包名 @local/nebula-theme)走的就是这条路:靛紫星尘天空常驻漂移,底部火焰在空闲时维持低矮余烬线,在任意 Agent 思考时升格为更明显的焰锋。下面介绍它是什么、能做什么,以及如何按官方 README 安装与移除。

这是什么

dsh-nebula-theme 是面向 DeepSeek Harness Web 客户端的主题 bundle,分类上属于社区目录中的「趣味换装」。它不读聊天正文,只向 Session 服务查询当前是否有会话在运行,并把结果映射到 body 上的 data-ds-nebula-think 属性,用来驱动火焰动画档位。天空层本身不随 Agent 状态变亮,视觉重心落在底部火场与阅读区对比度上。

仓库:https://github.com/gioguarin/dsh-nebula-theme
社区目录:https://www.skillhub.cn/plugins/gioguarin/dsh-nebula-theme

核心能力(与 README 一致)

天空与景深

  • 天空:一次生成域扭曲 fBm 纹理,含暗尘带与暗红底光,经抖动减轻色带后静止绘制,之后仅缓慢漂移,不随 Agent 状态改变亮度。
  • 景深:更大的一份天空纹理反向漂移并轻微「呼吸」,云层结构相对错位,避免整张图同向平移的廉价感。

火焰与读性

  • 火焰:256×112 元胞火场,带逐格冷却、随高度偏移的风场与双线性平流。空闲约 12 fps,呈现短余烬线;思考时约 30 fps 并抬高火源。同一火场 48×20 下采样后模糊进天空,作火光。
  • 可读性:火焰与 UI 之间有一层深色阅读幕,保证 transcript 对比度;输入区(composer)为玻璃质感,让底部余烬光能透出来。
  • 色板:通过 token 层在浅色 / 深色模式下覆盖活动色板,保持夜空主题身份。

无障碍与隐私

  • prefers-reduced-motion:漂移与视差停止;火焰改为静态暖色场而非动画。
  • 隐私边界:主题不读取会话内容,只关心「是否有 session 正在运行」。

安装与启用

前提:本机 DeepSeek Harness 构建需包含 Web 客户端(@deepseek-ai/dsh-web-app)。该 bundle 未发布到 npm,README 要求从本地目录以 @local/nebula-theme 形式加入 profile。在已拥有插件源码目录(例如解压或下载后的 dsh-nebula-theme 文件夹)的前提下,执行:

dsh plugin --profile web add ./dsh-nebula-theme
dsh --profile web

将 web 换成你实际启动 Harness 使用的 profile 名。

移除:

dsh plugin --profile web remove @local/nebula-theme

典型用法与本地预览

日常使用时无需额外配置项:启用插件后打开 Web 客户端即可。空闲时底部为低余烬线;当任意 Agent 会话处于运行(thinking)状态时,焰锋抬高,且若同时安装 @local/active-chats,浮动会话卡片可套上太空玻璃框与余烬思考光晕(未装该插件时,相关样式规则不会生效)。

开发者可用仓库内 demo 做快速肉眼检查:demo/index.html 在最小 module-loader 与 mock shell 上运行真实 client.js;URL 加 ?thinking=1 可查看思考态。重新生成 README 预览图可运行:

node scripts/capture-previews.mjs

工作原理简述

包结构是常规 DSH bundle:package.json 声明 dsh.bundle 与 dsh.client;cordis.patch.yml 插入 nebula-theme 行;index.js 主机侧为空;client.js 承载 token、CSS、天空生成、火场与状态桥接。

客户端应用在 apply 时依次:注册色板覆盖、注入 scoped 样式、idle 回调生成天空纹理并发布为 CSS 变量、向 body 追加视差层与火场 canvas、设置 data-ds-nebula-theme、在 shell.overlay 挂载桥接以设置 data-ds-nebula-think。各效果提供 disposer,禁用插件时可回收样式、canvas 与属性而不改动应用本体。

兼容性与接口(README):针对 DeepSeek Harness 0.2.x 构建与测试;依赖公开接缝 ctx.theme.overrideTokens、ctx.slots 与 shell.overlay,不 patch 主机文件。运行时除 React(由宿主提供)外无额外依赖,无构建步骤。许可证:MIT。

适用场景与注意

  • 适合:长期在 Harness Web 端调试智能体、希望界面有夜景氛围且用动效区分空闲 / 思考的用户。
  • 不适合:需要零动画或极简界面的环境(可依赖系统 prefers-reduced-motion,或不用主题类插件)。
  • 安全习惯:DSH 插件随当前 dsh 进程权限运行;安装前建议阅读 client.js 与 cordis.patch.yml,并确认许可证与来源(本仓库 MIT,作者 gioguarin)。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,安装来源以你自检的仓库为准。

结尾

dsh-nebula-theme 把 Web Harness 收成一条不抢眼的星尘夜空,并用底部火场把「有没有 Agent 在跑」写进画面,同时用阅读幕和 reduced-motion 兜底可读性与可访问性。需要进一步核对实现细节时,以 GitHub README 与仓库源码为准;入口链接见上文目录页与仓库地址。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜