@alexpeng/dsh-custom-plugin
DSH Web GUI 便利套件,提供外观控制、时间线导航、项目文件夹、提示词、会话导出、Mermaid 渲染、引用回复,以及 DeepSeek 余额和每日 token 用量。
安装
dsh plugin --profile web add @alexpeng/dsh-custom-plugin
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
dsh-custom-plugin






<p align="center">
<img src="https://www.npm.bet/svg?q=%40alexpeng%2Fdsh-custom-plugin&timeRange=last-month&grouping=day&metric=downloads&zeroMode=estimated" alt="npm 下载趋势(近一个月)" width="560">
</p>
[English](README.md) | 中文
DeepSeek Harness(DSH)Web GUI 的 Custom 便利套件:个性化外观、天气特效、玻璃效果、项目文件夹、增强提示词库、会话导出与会话搜索、Mermaid 渲染、引用回复、7/30/90 天用量分析、预算与无密钥本地备份,以及 Ctrl/Cmd+K 快捷面板。
插件为双半区架构:宿主半区(src/)持有状态文档、注册 /api/custom-plugin 路由与 custom_plugin_status 智能体工具;浏览器半区(src/client/)通过 7 个官方 slot 的 8 处注入挂载 UI,以同源 fetch 与宿主通信。经官方 profile 机制挂载,不改 DSH 源码。
<p align="center">
<img src="https://github.com/AlexPeng07/dsh-custom-plugin/raw/main/docs/overview.png" alt="dsh-custom-plugin 总览" width="100%">
</p>
部分界面展示
<table>
<tr>
<td width="50%" valign="top"><b>「设置 → 个性化」整页外观配置</b><br><img src="https://github.com/AlexPeng07/dsh-custom-plugin/raw/main/docs/settings-appearance.png" alt="设置 → 个性化 整页外观配置" width="100%"></td>
<td width="50%" valign="top"><b>会话头部弹出的同一套面板(浅色主题)</b><br><img src="https://github.com/AlexPeng07/dsh-custom-plugin/raw/main/docs/personalization-panel.png" alt="个性化弹窗面板" width="100%"></td>
</tr>
<tr>
<td width="50%" valign="top"><b>液态玻璃(Custom 面板位移折射)</b><br><img src="https://github.com/AlexPeng07/dsh-custom-plugin/raw/main/docs/liquid-glass.png" alt="液态玻璃" width="100%"></td>
<td width="50%" valign="top"><b>多级项目文件夹</b><br><img src="https://github.com/AlexPeng07/dsh-custom-plugin/raw/main/docs/project-folders.png" alt="项目文件夹" width="100%"></td>
</tr>
<tr>
<td width="50%" valign="top"><b>Mermaid 思维导图就地渲染</b><br><img src="https://github.com/AlexPeng07/dsh-custom-plugin/raw/main/docs/mermaid-mindmap.png" alt="Mermaid 思维导图" width="100%"></td>
<td width="50%" valign="top" align="center"><b>余额与今日分模型用量</b><br><img src="https://github.com/AlexPeng07/dsh-custom-plugin/raw/main/docs/balance-usage.png" alt="余额与用量面板" width="100%"></td>
</tr>
<tr>
<td width="50%" valign="top" align="center"><b>雨(三层景深)</b><br><img src="https://github.com/AlexPeng07/dsh-custom-plugin/raw/main/docs/weather-rain.gif" alt="下雨特效" width="100%"></td>
<td width="50%" valign="top" align="center"><b>樱花</b><br><img src="https://github.com/AlexPeng07/dsh-custom-plugin/raw/main/docs/weather-sakura.gif" alt="樱花特效" width="100%"></td>
</tr>
<tr>
<td width="50%" valign="top" align="center"><b>飘雪</b><br><img src="https://github.com/AlexPeng07/dsh-custom-plugin/raw/main/docs/weather-snow.gif" alt="飘雪特效" width="100%"></td>
</tr>
</table>
天气特效截自深色模式。额度历史、备份导入预览、会话搜索与快捷面板属于同一套动态面板,需在 DSH 内打开对应页查看;仓库未另附固定截图。
功能
外观个性化
- 背景颜色:20 组低饱和典雅色(每组合配 tab 栏色,默认「天青灰」),另有「无颜色」(跟随 GUI 默认主题)。深浅色模式均可选用;深色模式自动派生同色系的深色变体(保留色相与低饱和,落到深色明度档),色板预览即当前模式的实际效果。
- 天气特效:画布渲染、不挡交互,一键切换——飘雪、电影感雨滴(三层景深 + 地面溅起)、樱花飘落;关闭时自动清空画布。
- 玻璃效果:所有 Custom 面板默认毛玻璃;可切换液态玻璃(边缘位移折射 + 轻微模糊提饱和,大面积面板中部文字仍清晰;不支持 SVG 位移滤镜的引擎自动回退毛玻璃)。「全局浮层玻璃」对弹窗、菜单、提示框、下拉框与系统设置窗统一加玻璃质感,液态模式下浮层同样位移折射。
项目文件夹
多级文件夹树,保存在 $DSH_HOME 状态文件中,跨工作区共享。任意工作区与会话都可收纳进文件夹;支持拖拽排序(插入前 / 内部 / 插入后)、重命名、删除与「添加当前会话」。
提示词库
提示词支持新增、编辑、复制、删除、搜索、收藏、标签和拖拽排序,并记录最近使用与使用次数。正文可使用 {{变量名}};插入前会弹出变量表单。提示词库可用版本化 JSON 或以二级标题分段的 Markdown 导入导出。
会话导出
导出当前会话为三种格式(文件名带日期戳):
- JSON:标准
messages结构(user / assistant / tool),meta 携带会话标题、创建时间、工作目录与导出时间,可导入其他工具; - Markdown:按角色分块的纯文本;
- PDF:A4 打印版式 HTML,浏览器打开后打印另存为 PDF;图片以 base64 内嵌(最多 30 张、总量 12 MB、单张 ≤ 4 MB)。
工具调用行携带工具名与参数摘要(从配对的 tool/call 事件解析)。
插件状态可导出为版本化 JSON 备份,包含外观、文件夹、提示词、星标、用量和预算,不包含 API Key 或凭据元数据。导入前显示冲突预览,支持合并或覆盖非敏感状态,并自动保留恢复副本。
Mermaid 渲染
聊天中的 ``mermaid 代码块(含助手回复,思维导图 / 流程图 / 时序图等)自动就地渲染为图表:代码块上方出现「图表 / 代码」切换工具条与 mermaid.live 兜底链接,流式输出期间内容完整后即预览,跟随 GUI 明暗主题重绘,渲染失败时保留原代码。检测依据代码块语言标签;无标签(流式中)时按内容启发式判断(关键字前缀 + 完整度检查,语言明确的代码块不会误触)。引擎优先读取随插件安装的本地 Mermaid 11 依赖(离线可用),缺失时回退 jsdelivr / fastly / unpkg 三镜像拉取并在宿主进程内缓存;用户消息下方的渲染按钮与模态窗口(多图切换)保持不变,mermaid.live 链接为 DEFLATE 压缩的 #pako:` 格式,打开即还原图表。
效率工具
- 引用回复:选中对话文本后出现「引用回复」按钮,以引用块插入输入框;
- 防自动跳转:强制
scroll-behavior: auto,发送消息不再把视图拽到底部(默认关闭); - 公式复制:含公式的消息下方显示 LaTeX / MathML 复制按钮(MathML 可直接粘贴进 Word);
- 批量归档:勾选多个会话批量归档,运行中会话默认不可选,并分别报告成功与失败数量;DSH 尚未公开恢复接口,插件不提供恢复入口。
- 会话搜索:搜索当前会话的用户、助手和工具内容,点击结果跳转到所属轮次;部署开启了 dsh 事件索引时走索引,否则直接扫描同一份会话日志,面板会说明本次用的是哪条路径。
- 快捷面板:在非编辑状态按
Ctrl+K/Cmd+K,统一搜索会话、工作区、提示词和常用功能;跨会话全文搜索使用 dsh 官方接口,不可用时如实提示原因。 - 可靠归档:运行中的会话默认不可选,批量操作分别报告成功与失败数量。
额度与用量
会话头部常驻用量徽标(可点击固定):配置了 API Key 时显示官方余额,未配置时显示本机费用估算(如 ≈¥0.42)与今日调用次数。面板提供:
- 用量与费用(默认区,无 Key 可用):今日/历史用量、预算与费用估算全部来自本机会话记录,不需要任何密钥。
- 余额查询(可折叠可选项,需要 API Key):调用官方
https://api.deepseek.com/user/balance接口,优先显示 CNY,赠送与充值余额分列,并显示账户可用状态;未配置 Key 时该区收起、不显示任何报错。宿主外呼走本机直连(不读系统代理);若本机代理/安全软件间歇性对 HTTPS 做 TLS 解密,查询会以「TLS 证书校验失败」等可读原因失败并自动重试(8s/30s/30s,60 秒轮询兜底),顶栏悬停可见原因。 - Key 解析顺序:系统凭据存储(可用时)→ 插件旧状态文件中的 Key → 环境变量
DEEPSEEK_API_KEY/DEEPSEEK_KEY/DEEPSEEK_TOKEN(取值需以sk-开头)→ DSH 凭据文件$DSH_HOME/.credentials.yaml(自动复用 DSH 已配置的 DeepSeek key,无需重复填写)。桌面版账号登录没有 sk- 密钥,属正常状态。 - 今日用量:按模型统计输入 / 输出 / 缓存 token 与调用次数,实时折叠自
session/event事件。 - 费用估算:按 DeepSeek 当前官方峰谷价目估算(2026-09-30 核对)——高峰为北京时间周一至周五 9–12、14–18 时;其余时间(含周末)均为空闲时段,按半价计:
deepseek-flash(旧名deepseek-v4-flash/ `deepseek-v4-flash-vision
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:19,最后更新 2026-10-27