dsh-tools

toolstested: passnpmMIT

Personal toolbox for the dsh web profile with per-feature toggles: task-done desktop notifications, one-click restart, session deletion, plugin enable/disable, update checks, and UI utilities.

下载量 / Downloads
1,356
依赖体积 / node_modules
2.66 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-tools

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-tools

DSH web 插件:个人通用工具箱。一个插件收纳多个功能/工具想法,设置页

(设置 → dsh 工具箱)采用页签式导航:「功能开关」页签顶部为 DeepSeek Harness 版本检查、一键重启

(常驻,强制开启无开关)与「任务完成提示」卡片(授权与开关合一:未授权时显示授权按钮,授权完成后在卡片内展示启用/停用开关),

下方为可选功能的开关列表;每个已启用的可选功能一个页签入口(页签超出

宽度时可按住左右拖动查看);开关即时生效并持久化(重启后保留)。

⚠️ 使用提示:本插件纯 AI 制作,无人工含量,可能后续不会对其进行维护,请谨慎使用。

当前功能

key · 功能 · 说明 · 默认

notify.task-done · 任务完成提示 · 当前对话任务完成且网页未聚焦时,在 Windows 桌面右下角弹出系统提示框(置顶),点击跳回会话;开关关闭时不监听、不弹提示 · 开

harness.check · DeepSeek Harness 版本检查 · 「功能开关」页签顶部卡片:检查 DeepSeek Harness 当前版本与 GitHub 最新 Release/tag,仅检查不升级;每次 dsh web 启动后仅首次打开时自动检查,之后手动点「重新检查」 · 强制开启(无开关)

restart.web · 一键重启 dsh web · 「功能开关」页签顶部按钮:重启服务并自动打开新窗口,旧页面自动关闭(开发测试快循环) · 强制开启(无开关)

delete-chat · 会话管理 · 归档会话查看、单条/批量删除会话;列表显示每个会话与工作区占用的磁盘空间;v1.0.0 起先快速返回列表再后台补齐大小,并对目录大小做磁盘缓存,打开更快;删除会话页点击工作区路径可打开对应文件夹 · 开

plugin-toggle · 插件开关 · profile 已安装插件的启用/停用开关;点击插件名可跳转其 GitHub 页(有则显示),行内展示插件功能描述 · 开

update-plugin · 更新检查 · 检查/更新/卸载 profile 已安装插件;支持 npm 注册表与 GitHub(github: / git+https://github.com/... / URL spec,Releases/tags API 探测)安装来源;点击插件名可跳转其 GitHub 页(有则显示);每次 dsh web 启动后仅首次打开该页签时自动检查,之后需手动点「重新检查」 · 开

plugin-catalog · 插件分类视图 · 「设置 → 插件」新增「插件分类」页签:官方(安装 Harness 自带)/ 已安装(插件市场 / GitHub / npm)/ 本地(link:/file: 开发)三个分类筛选浏览;开关关闭时页签自动消失 · 开

ui.usage · 应用用量 · 「应用用量」页签:按时间跨度(今年 / 本月 / 近 7 天 / 近 3 天 / 自定义日期)与模型过滤聚合各会话用量(Token、缓存命中、时长、会话 / 步数);趋势柱图优先读取会话日志按自然日统计真实 usage(磁盘缓存 + 增量扫描),悬停显示具体数据,会话用量列表展示 Token / 命中率 / 估算费用;支持价格配置,v1.0.0 起费用卡片可直接切换峰 / 谷价格(默认谷价) · 关

wechat.openclaw · 微信接入(OpenClaw) · 扫码绑定个人微信,通过腾讯 openclaw-weixin / iLink 协议与 DSH Agent 文字聊天;支持白名单、room / per-user 会话模式、网关启停;v1.0.0 起页签内“使用说明”可展开 / 折叠 · 关

融合功能与参考来源

融合了开源插件的功能(均 MIT 许可,源码文件头与下方条目标注来源;融合版

默认关闭,开启后行为与上游一致,但配置存 dsh-tools 自身的 featureConfig,

设置入口统一在「dsh 工具箱」内):

功能 · 来源 · 许可

ui.usage · yoli-mi/dsh-client-ui-custom · MIT(Copyright (c) 2026 Yoli-mi)

说明:ui-custom 的 appearance(外观)、shortcuts(快捷键)、
marketplace(插件市场)模块未融合;ui.enhance(Markdown 渲染 +
浮动历史条)自 v1.1.0 起移除,与 Harness 自带功能定位重复。

v1.1.0 更新

  • 更新兼容 DeepSeek Harness 0.1.2-alpha.2(devDependencies 对齐到 0.1.2-alpha.2)。
  • 删除「界面增强」(ui.enhance)功能:用户消息 Markdown 渲染 + 浮动历史条,与 Harness 自带功能定位重复。

v1.1.1 更新

  • 更新兼容 DeepSeek Harness 0.1.2-rc.1(devDependencies 对齐到 0.1.2-rc.1)。
  • 微信接入的 AgentBridge 适配宿主会话读取 API:宿主已移除 Session.events,改为 session.snapshotEvents() 读取事件流(lib/wechat/vendor/bridge.js)。微信 AI 回复要求宿主提供该 API(DSH 0.1.2-alpha.4 及以上);更老宿主上该功能不可用。
  • 应用用量口径实证(rc.1 会话日志多代采样):inputTokens + outputTokens + cacheReadTokens ≡ totalTokens,宿主不单列 cache-write 用量,现有聚合数值精确,无需改动。

v1.1.2 更新

  • 更新兼容 DeepSeek Harness 0.1.3-alpha.2(devDependencies 对齐到 0.1.3-alpha.2)。
  • 修复微信接入在 0.1.3-alpha.1 及以上宿主上回复为空:宿主取消了顶层 assistant/chunk 会话事件(Session format v2,流改嵌入 assistant/message.data.stream),实时增量改由 agent 作用域事件 agent/assistant-stream 的 start / chunk / end 帧发布。AgentBridge 改为订阅该帧通道,并保留旧宿主(≤ 0.1.2)的 assistant/chunk 兼容订阅(两通道互斥,双订阅不重叠)。
  • 新增增量兜底:宿主一个文本增量都没发布时,把 assistant/message 聚合出的回复整体交给发送器 —— 调用方只从 onDelta 取文本,缺这条兜底会「静默空回复」。
  • test/wechat-openclaw-smoke.mjs 新增 bridge 流式通道回归(v2 帧 / 旧信封 / 无增量兜底 / 订阅注销);该套件此前对流式路径零覆盖,正是破坏能通过自检的原因。

v1.1.5 更新

  • 更新兼容 DeepSeek Harness 0.2.0-rc.2(devDependencies 对齐到 0.2.0-rc.2;宿主 0.1.7-rc.2 → 0.2.0-rc.2 为跨 minor 升级,逐触点核对后确认无破坏性变更命中本插件)。
  • 修复文生图工具 generate_image 静默注册失败:宿主 tools.register() 强制要求 output{schema,render},且 parameters 必须是「紧凑参数表」而非已编译的 JSON Schema;旧写法两项都不符,register() 抛 TypeError 后被本插件自己的 try/catch 吞掉,表现为「配置了文生图但 Agent 永远调不到工具、界面无任何提示」。现改用宿主导出的 defineTool() 统一生成定义(与 lib/wechat/vendor/weixin/gateway.js 写法一致),并把该 catch 的日志从 api.log 提升为 console.error 且写明后果,不再静默。
  • test/wechat-openclaw-smoke.mjs 新增 generate_image 定义形状回归:走真实 register() 路径截获定义,断言 output{schema,render} 存在、parameters 为编译后的 JSON Schema、render 输出内容块,并用宿主导出的 validateArgs / validateJsonSchemaValue 做正反双向校验(旧形状必须被宿主拒绝,否则用例失去意义)。
  • 依赖声明补全:运行时消费的宿主包(dsh-agent / dsh-llm / dsh-session / dsh-tools)加入 peerDependencies(* + peerDependenciesMeta.optional,可选以免在非宿主环境安装时报错);@deepseek-ai/dsh-cmdline 补入 devDependencies,消除 lib/wechat/vendor/weixin/ 下两个不可达文件对未声明依赖的裸引用。
  • 修复应用用量数据停止更新(2026-09-10 实测):宿主把会话日志升级为「格式世代」命名 session[.vN].jsonl[.zstd],旧口径只认字面量 session.jsonl.zstd,导致带版本号的日志(实测 37 个)全部扫不到,磁盘缓存与实际用量冻结在升级当天。判定口径收敛到 lib/features/session-log.js,usage-daily 扫描与 delete-chat 删除共用同一条规则。
  • 0.2.0-rc.2 实测 SESSION_FORMAT_VERSION 仍为 4(与 0.1.7-rc.2 相同,未产生新世代),该正则继续覆盖,无需再改。
  • 修复会话管理无法删除新格式会话:sessionDirOf() 同款字面量口径会让带版本号的日志直接返回 bad-location。
  • test/smoke.mjs 补回归:世代命名日志的目录大小、删除路径,以及文件名判定表的正反用例(含迁移临时文件 session.migration.*.tmp 必须被拒)。
  • client-smoke 的 React 解析新增本包 devDependencies 兜底(profile 里没有 React 时不再整份失败);React / react-dom 因此进入 devDependencies。
依赖解析提示:@deepseek-ai/dsh-agent 等包把 dsh-llm / dsh-session / dsh-scope 等声明为精确版本 peer,因此升级 devDependencies 后必须删除 package-lock.json 与 node_modules 重装;沿用旧锁文件会因旧树的 peer 范围(^0.1.5-rc.1)无法接受新版本而报 ERESOLVE。
已知边界:lib/wechat/vendor/weixin/ 下 15 个文件(含 entry.js、gateway.js、driver.js、login-qr.js 等)不在任何运行路径上(对 lib/index.js 做完整 ESM 可达性遍历确认),属迁移遗留的参考代码。本版只保证 gateway.js 可正常 import;entry.js 仍需额外安装其传递依赖 commander 才能加载,因不可达故未处理。

v1.0.0 更新

  • 一键重启 dsh web 后不再刷新旧页面,改为自动打开新窗口并关闭旧页面。
  • 会话管理加载优化:先快速返回列表再后台补齐磁盘占用,并对目录大小做磁盘缓存。
  • 界面增强中 Markdown 渲染新增独立开关;修复 @文件引用 后紧跟中文时后续文字被一起高亮的问题。
  • 应用用量底部提示文案更新;费用卡片新增峰 / 谷价格一键切换,默认按谷价计算。
  • 微信接入页签的“使用说明”改为可展开 / 折叠。
  • 修复 client-smoke 因 React 与 react-dom/server 版本不一致导致的 server-render 失败。

安装

dsh-tools 是 DSH web profile 的常驻插件(bundle 插件)。傻瓜式安装,一条命令:

dsh plugin --profile web add dsh-tools

该命令自动完成:依赖安装(npm 官方源分发)+ 激活层写入(dsh.profile.bundles)。

执行后重启 dsh web,从 设置 →「dsh 工具箱」管理各功能开关。

提示:裸 pnpm add / npm i 只安装依赖、不会激活插件(依赖 ≠ 激活);
激活靠 `dsh.p

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::11,最后更新 2026-09-30

Links

GitHub · Homepage · npm

Same category