前言¶
用 DeepSeek Harness(DSH)做智能体开发时,常见需求是「边对话边盯一组指标」:本机 CPU、API 余额、某个仓库的最新 Release。自己写独立前端或反复让模型在对话里贴表格,要么维护成本高,要么占上下文、耗 token。
dsh-pad 是 DSH 的客户端插件:在 Web 界面或鲸屿桌面端右侧挂一个可拖动的面板坞,面板由模型在对话里通过 pad_* 工具生成与修改;数据可走本机命令、HTTP 轮询,也可以按间隔跑后台 agent 刷新,面板脚本里还能调用 dsh.run 做一次纯文本模型推理。下面介绍它是什么、怎么装、怎么用,以及安装时要注意的权限与配置。
这是什么¶
- 名称:dsh-pad(npm 包名
dsh-pad) - 维护者:ChisaAlter
- 分类:客户端(注入 Web 端 UI)
- 许可证:MIT
- 当前版本(package.json):0.2.2
- 目录页:SkillHub - dsh-pad
- 源码:GitHub - ChisaAlter/dsh-pad
一句话定位:DSH 右侧悬浮面板坞;AI 在对话里生成沙箱 HTML 面板,支持并排平铺、本机/HTTP 数据源、AI 定时刷新、面板内 dsh.run 模型调用。面板设计思路参考了维护者 ChisaBot 中的自定义面板与定时刷新面板。
核心功能¶
悬浮坞与布局¶
右侧有一个可拖动的胶囊,点开是面板列表。宽屏展开时会给对话区让出位置,尽量不挡输入框;可拖左边缘调宽度,拖标题栏上下移动,拖上下边缘调整体高度,位置与尺寸记在浏览器 localStorage。
卡片支持平铺:把一张拖到另一张上会并排、默认各占一半,一行最多 3 张;中间分隔条可调比例。拖到空白处可拆回单独一行。卡片可折叠,折叠后不再轮询数据源。
AI 生成与修改¶
模型通过 pad_create、pad_update 等工具维护面板定义。面板在 sandbox="allow-scripts" 的 iframe 中渲染 HTML/CSS/JS,配色跟随 dsh 亮/暗主题。对话里直接描述需求即可,例如观察服务器性能或显示 DeepSeek API 余额。
坞顶 + 会向输入框插入「用 pad_create 创建自定义面板」的提示词(不自动发送),补全需求后发送;新面板出现时坞会自动展开并高亮。
两种取数方式¶
- 直接数据源:在宿主侧执行 shell 命令,或请求 HTTP 接口,按秒级间隔刷新,不消耗对话 token。适合性能指标、余额接口等结构化数据。仅在面板坞展开且卡片未折叠时轮询;命令输出上限 512KB,默认超时 10 秒。
- AI 刷新:按
agent.everyMinutes在后台跑一轮 agent,用pad_submit_data/pad_report_failure提交结果。适合需要搜索、读网页、多步推理的数据。后台 agent 无人审批,需审批的工具调用会被拒绝;本机命令应优先用直接数据源。
密钥在数据源配置里用 {{env:NAME}} 引用,只在宿主侧解析,不会发到浏览器 iframe。
面板内模型¶
面板可配置顶层 model(provider / model / 可选 reasoningEffort)。面板脚本里 dsh.run(prompt) 用该模型做一次纯文本生成(无工具、无网络,默认 120 秒超时、2048 输出 token)。AI 刷新与 dsh.run 共用这张面板的模型配置,也可在卡片 ⋯ 菜单里切换「面板模型」。
安全与审批¶
新建或修改数据源时,默认弹出 dsh 自带审批(允许一次 / 拒绝)。拒绝后卡片上保留「允许运行」按钮。配置项 autoApprove: true 可关闭询问(需自行承担风险)。
自动检查更新¶
启动后约 7 秒首次检查 GitHub Release,默认每 6 小时再查;仅有新版本时坞顶才显示下载图标,点更新会从 Release 拉取构建好的 lib/,备份到 .dsh-pad-update-backup/ 后需重启 dsh 生效。开发目录链接安装(含 .git/)只提示新版本,不覆盖源码。
安装与启用¶
环境要求:dsh ≥ 0.2.1-rc.2,使用 dsh web 或鲸屿桌面端。
插件以 bundle 方式登记(写入 profile 的 dsh.profile.bundles)。不要手抄本仓库 cordis.patch.yml 进 profile 的 cordis.patch.yml,否则模块无法解析、应用可能起不来。
安装前建议在插件目录自检:
node scripts/doctor.mjs
从 GitHub 安装(仓库已提交构建好的 lib/,无需本地 build):
dsh plugin --profile web add github:ChisaAlter/dsh-pad#7fc110b02fe34ea4dd518f79229f6477165d54da
本地开发目录安装:
dsh plugin --profile web add /path/to/dsh-pad
改源码后需在插件目录执行 npm install && npm run build 再安装。装好后重启 dsh web 或鲸屿。卸载:
dsh plugin --profile web remove dsh-pad
若安装后无法启动,可从 $DSH_HOME/profiles/web/package.json 的 dsh.profile.bundles 与 dependencies 中移除 dsh-pad,清理错误的 cordis.patch.yml 条目与 node_modules/dsh-pad 链接后重启;再装前再次运行 doctor.mjs。
典型用法¶
在对话里用自然语言描述面板,例如:
做一个观察这台服务器性能的面板:CPU、内存、磁盘、负载,每 3 秒刷新
做一个面板显示我的 DeepSeek API 余额,key 在环境变量 DEEPSEEK_API_KEY 里
做一个面板盯着 deepseek-ai/deepseek-harness 的最新 release,每 6 小时让 AI 更新一次
面板定义是 JSON 结构,包含 title、html / css / script、sources(command 或 http)、可选 model 与 agent。仓库 examples/ 下有服务器性能、DeepSeek 余额、GitHub release 三份完整示例,可作模型输出参考。
iframe 内通过 window.dsh 接数据:dsh.onData 订阅更新,dsh.history 看趋势,dsh.refresh / dsh.ask / dsh.openUrl 交互,dsh.fmt.* 与 dsh.chart.* 做展示。需要即时推理时再用 dsh.run,联网取数仍应靠直接数据源或 AI 刷新。
模型侧可用工具包括:pad_list / pad_get、pad_test_source(试跑数据源,需审批)、pad_create / pad_update、pad_models、pad_refresh、pad_delete。
配置(可选)¶
在 $DSH_HOME/profiles/web/cordis.patch.yml 中 patch dsh-pad 的 config(注意 patch 会替换整个 config,需写全需要的键)。常用项示例:
- id: dsh-pad
name: dsh-pad
config:
autoApprove: false
minIntervalSec: 2
其他键包括:dataFile(默认 $DSH_HOME/dsh-pad/panels.json)、agentRefresh、minAgentMinutes、agentTimeoutSec、interactiveModel、runTimeoutSec、updateCheck / updateCheckHours 等,详见仓库 README 配置表。
适用场景与注意¶
适合:已在用 DSH Web/鲸屿、希望把监控/看板贴在对话旁边、又愿意让模型生成和维护面板 HTML 的开发者。
权限:直接数据源在 dsh 宿主进程权限 下执行命令与 HTTP 请求;安装前应阅读源码与 MIT 许可证,确认命令与 URL 范围可接受。插件以当前 profile 运行,不是独立降权服务。
限制:AI 刷新会在 $DSH_HOME/dsh-pad/refresh 下产生独立会话日志(约每轮十几 KB),需自行清理 $DSH_HOME/sessions/ 中对应目录。面板布局与坞尺寸在浏览器 localStorage,换浏览器需重新调整。dsh 插件 API 仍在快速变化,悬浮坞依赖 shell.overlay 等宿主细节,宿主大改时可能退化为纯悬浮布局。
社区插件目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,dsh-pad 是其中面向客户端看板的一类实现。
结尾¶
dsh-pad 把「对话里说一句要什么面板」和「本机/HTTP 轮询 + 可选 AI 刷新 + 面板内 dsh.run」串在同一条工作流里,并用平铺布局避免自由定位带来的重叠与空隙。若你需要在 DSH 里长期盯一组指标,可从目录页或 GitHub 按官方命令安装,用 doctor.mjs 与数据源审批把风险压在可接受范围内。
- 目录页:https://www.skillhub.cn/plugins/ChisaAlter/dsh-pad
- GitHub:https://github.com/ChisaAlter/dsh-pad