前言¶
DeepSeek Harness(DSH)的 Web 界面默认是纯色底,长时间盯会话时背景缺少层次。社区里「趣味换装」类插件会在不改动对话逻辑的前提下,给客户端加一层视觉装饰。下面介绍 dsh-ascii-sharks:由维护者 Timelk 发布,在整页透明 canvas 上跑 boid 鱼群与追猎鲨鱼,主内容区叠一层可调的羽化毛玻璃,文字照常阅读,水面在玻璃后面缓慢运动。
这是什么¶
dsh-ascii-sharks 是 DSH 的 Client 插件(npm 包名同插件 id)。它把视口大小的 ASCII 海洋挂在 body 最底层,应用框架浮在其上;模拟与字符渲染核心来自上游项目 ascii-sharks(MIT),本仓库负责 dsh 集成:主题换墨、页面半透明 token、主栏 backdrop-filter 与设置页参数。许可证为 MIT;当前 package 版本为 1.0.3(README 中 GitHub Release 安装示例指向 v1.0.2 tar 包,以你实际安装来源为准)。
目录页:skillhub.cn/plugins/Timelk/dsh-ascii-sharks
源码:github.com/Timelk/dsh-ascii-sharks
核心功能¶
已核实的能力如下,均来自项目 README。
- 整页背景:透明 canvas 固定在视口(
z-index: 0、pointer-events: none),不是小面板 widget。 - 跟随主题换墨:浅色用深墨、深色用浅墨,监听
theme/change实时切换。 - 主栏毛玻璃:对话主栏
backdrop-filter+ 半透明底衬,四边羽化遮罩,鲨鱼在玻璃后呈柔光斑块。 - 环面海洋:鲨鱼与鱼群越界从对侧进入;鱼群在接缝前两格淡出。
- 交互:可选鼠标惊扰鱼群、点击页面炸水花;鱼群转向限速,字符随航向变为
-\|/。 - 可调参数:字符尺寸 4–14px、8 种鲨鱼多选、数量与密度、游动速度、背景浓度、玻璃模糊等,设置项即时生效。
- 省电:
prefers-reduced-motion下静帧;页面不可见时浏览器暂停requestAnimationFrame。
安装与启用¶
DSH 生态里插件通常通过 plugin_manager 的 install_bundle 安装;README 未给出 dsh plugin add github:... 形式,下面只用文档原文命令。
1. npm(推荐)¶
在 dsh 里让 agent 调用 plugin_manager,或直接执行等价 JSON:
{ "action": "install_bundle", "target": "dsh-ascii-sharks" }
2. GitHub Release¶
{
"action": "install_bundle",
"target": "https://codeload.github.com/Timelk/dsh-ascii-sharks/tar.gz/refs/tags/v1.0.2"
}
安装后刷新页面;在 设置 → ASCII 鲨鱼 中调整参数。
环境要求¶
- dsh
>=0.1.5-rc.1(Web profile) - Node
^22.19.0 || >=24.0.0(包元数据中的 engines) - 浏览器需支持
backdrop-filter与mask-composite(README 写明 Chrome/Edge 120+、Safari 17.4+)
典型用法¶
- 按上一节安装并刷新。
- 打开 设置 → ASCII 鲨鱼,按需开关「显示海洋」、拖动背景浓度、主内容毛玻璃、字符尺寸、鲨鱼种类与数量、鱼群密度、游动速度、鼠标惊扰、点击水花等。
- 配置持久化在浏览器
localStorage键dsh.ascii-sharks.v2;改动滑杆会直接进入模拟引擎,无需重启 dsh。
默认项摘要(完整表格见 README):
| 设置 | 默认 | 说明 |
|---|---|---|
| 显示海洋 | 开 | 关闭则恢复不透明页面 |
| 背景浓度 | 90% | 整层水面不透明度 8–100% |
| 主内容毛玻璃 | 8px | 0 关闭,最大 32px |
| 字符尺寸 | 6px | 4–14px |
| 鲨鱼数量 | 2 | 1–6,种类至少保留一种 |
| 鱼群密度 / 游动速度 | 100% | 相对窗口与基准速率 |
在空白会话中可看到整页 ASCII 海洋预览效果;项目 docs/ 下有静态图与动图说明。
工作原理(简述)¶
插件在 Host 层通过 cordis.patch.yml 注册 bundle,在浏览器层以 immediately: true 的 web Client 注入对话与设置 UI 模块。渲染层:body 首位 fixed canvas;ctx.theme.overrideTokens 把页面背景 token 调成半透明;从 [data-composer-dock] 向上定位对话列并内联玻璃样式,面板切换时用防抖 MutationObserver 补回。模拟在 World(boids、鲨鱼追猎、环面)与 AsciiRenderer 中完成,参数经 localStorage store 订阅到 engine.setOptions()。
适用场景与注意¶
适合谁:希望在 DSH Web 端保留可读性的前提下,给会话界面加动态 ASCII 背景、并愿意在设置里微调性能与密度的用户。
应注意:
- 插件 Client 代码在浏览器侧运行,会改 DOM、canvas 与 localStorage;安装前建议阅读 源码与 LICENSE,并知悉模拟部分归属见 THIRD_PARTY_NOTICES.md。
- 社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 本身遵循「一切皆插件」,本包仅为社区贡献之一。
- 低性能设备或不需要动效时,可关闭「显示海洋」或依赖系统的 reduced-motion;毛玻璃与大面积 canvas 仍可能增加 GPU 负担。
结尾¶
dsh-ascii-sharks 把 ascii-sharks 的 boid 与鲨鱼渲染搬进 DSH:整页透明海洋、主题感知墨色、主栏羽化毛玻璃,参数集中在设置页。若需要安装入口与 issue,见 GitHub 仓库 与 SkillHub 目录页。视觉模拟的上游功劳在 stackedlol/ascii-sharks,README 也建议为原项目点 star。