前言¶
在用 DeepSeek Harness(DSH)做日常对话或智能体开发时,Web 界面里两处视觉锚点很常见:侧栏左上角的品牌标记,以及输入框上沿随会话状态切换的吉祥物。默认是通用品牌图与 Deepy 鲸鱼;若希望界面带上自己的角色身份,又不想直接改皮肤仓库、怕升级被覆盖,就需要一种「叠在皮肤机制之上、可随时关掉」的做法。dsh-linus-brand 由维护者 AChengLinus 发布,归类为趣味换装,目标是把 Linus 插画角色写入上述两个位置:品牌图换头像标记,宠物换成同一角色的 18 种手绘连续动作(约 19 fps,带像素粒子)。插件以当前 DSH 进程权限运行,安装前建议自行审阅源码与 MIT 许可证说明。
这是什么¶
dsh-linus-brand 是 DSH 的 Web 端客户端插件(platform: web,immediately: true),通过 Cordis patch 接入,不替换 dsh-claude-style 皮肤文件。关掉或卸载后界面会回到皮肤默认外观。当前包版本为 1.0.0,要求 DSH ≥ 0.2.2-rc.1(在 0.2.2-rc.1 上开发与验证),并依赖皮肤插件 dsh-claude-style,且皮肤设置里吉祥物必须为 Deepy(mascot: deepy)。
核心功能¶
下面分两块说明插件实际改动的位置与机制(与 README 中的表格一致)。
侧栏与账号区的品牌图¶
插件把包内的 mark.png 写入皮肤的图片品牌存储路径 ~/.dsh/dsh-claude-style/brand/mark.png(若已存在则不会覆盖)。皮肤会自动把该文件用作侧栏、新会话页、账号头像等区域的品牌标记。品牌文字由皮肤配置项 brandName 控制,本包不强制修改;若要显示角色名,需在皮肤配置里自行设置。
输入框上沿的宠物动画¶
Client 端根据 DOM 上的 data-animation,为每个状态注入一条带 !important 的 CSS 规则,把 --dsh-claude-mascot-sheet 指向本包生成的 SVG 精灵条;尺寸、位置与换帧仍由 dsh-claude-style 驱动。18 个会话相关状态映射到 8 种姿势(打字、思考、作画、游戏、idle、手冲、喝茶钓鱼等),各状态 24–72 帧,皮肤每 52 ms 换一格,约 19 fps;人物不缩放,仅有上下浮动与左右摆动,并按状态使用四类粒子主题色(calm / work / play / alert)。精灵条资源合计约 5.75 MB,安装后位于 profile 的 node_modules 中。
环境要求与皮肤配置¶
- 安装并启用 dsh-claude-style。
- 在 profile 配置里将吉祥物设为 Deepy。
配置路径:~/.dsh/profiles/<profile>/cordis.patch.yml,找到 - id: ui-skin-claude-style 下的 config::
brandName: Linus # 品牌文字(可选)
mascot: deepy # 必须是 deepy;Clawd / 鲸娘 下宠物替换不会生效
安装与启用¶
先在 DSH 侧栏打开 插件 页,在安装框(「包名或地址」)中粘贴下列任意一种(与 README 一致):
| 形式 | 粘贴内容 |
|---|---|
| GitHub 简写 | github:AChengLinus/dsh-linus-brand |
| GitHub 地址 | https://github.com/AChengLinus/dsh-linus-brand |
| Release 压缩包 | https://github.com/AChengLinus/dsh-linus-brand/releases/download/v1.0.0/dsh-linus-brand-1.0.0.tgz |
| 本地目录 | 绝对路径,例如 /Users/you/plugins/dsh-linus-brand |
| npm 包名 | dsh-linus-brand(需已发布到 npm) |
命令行等价写法:
dsh plugin add github:AChengLinus/dsh-linus-brand --profile desktop
安装完成后重启一次应用(无 HMR 时插件管理器会提示 restart-required)。再打开 设置 → Claude Style,确认品牌图与吉祥物已变为本包角色。
若要从 插件 → Discover 安装,可添加本仓库的 format-1 索引(DSH 0.2.1+):
https://cdn.jsdelivr.net/gh/AChengLinus/dsh-linus-brand@main/index.json
备用:https://raw.githubusercontent.com/AChengLinus/dsh-linus-brand/main/index.json
典型用法与自定义素材¶
仅使用默认 Linus 资源¶
完成安装、重启并确认 mascot: deepy 后,正常与会话交互即可;皮肤会按活动切换 18 个 data-animation 状态,插件自动切换对应精灵条与样式。
换成自己的插画角色¶
维护者提供的构建流程如下:
# 1) 把姿势 PNG(透明背景)放进 tools/poses/,文件名对应 build-sheets.py 里的 POSE 表
# 2) 重新生成精灵条(覆盖 assets/)
python3 tools/build-sheets.py
# 3) 修改 client.js 里的 REV,避免浏览器缓存旧资源
# const REV = "anim4"; -> const REV = "anim5";
# 4) 重启应用
tools/build-sheets.py 中的 DIMS、MOTION、THEMES 分别控制条带几何(须与皮肤格子一致)、浮动/摆动与粒子主题。几何须遵守 README 中的换算:皮肤 1 逻辑像素 = 5 个 SVG 单位,CSS 尺寸 = 逻辑像素 × 2。
卸载与已知限制¶
卸载:在插件页删除,或执行:
dsh plugin remove dsh-linus-brand --profile desktop
品牌图不会随卸载自动删除,需手动删除 ~/.dsh/dsh-claude-style/brand/mark.png(若不再需要自定义标记)。宠物相关样式随卸载恢复,无需额外步骤。
适用与注意:
- 适合已使用 Claude Style 且希望 Deepy 槽位 上展示自定义连续动画、侧栏展示同一角色品牌的用户。
- 依赖皮肤 DOM 与 CSS 变量(如
.dsh-claude-deepy、--dsh-claude-mascot-*);皮肤大改结构时插件可能需要同步更新。 - 动画节奏由皮肤的 52 ms/格决定;本包不修改皮肤步进。
- 插画作品(poses、mark、icon)为作者个人角色;代码与构建脚本为 MIT,可复用。
结尾¶
dsh-linus-brand 用非侵入方式把品牌标记与输入框宠物换成同一套手绘角色,并覆盖 DSH 会话的常见动画状态;前提是 DSH 0.2.2-rc.1 与 dsh-claude-style + mascot: deepy。更多动图与姿势对照见仓库 docs/,安装与索引细节以 README 为准。