better-er/dsh-tool-autoexpand 预览 preview

better-er/dsh-tool-autoexpand

「DSH·工具结果自动展开」:在 DSH Web 界面自动展开工具调用卡片,支持侧边栏开关。标准可安装的 dsh 客户端插件。

Project Overview项目介绍

This is a client plugin built exclusively for the web version of DeepSeek Harness. It automatically expands newly rendered tool call cards that DSH collapses by default, letting users see all tool outputs at a glance instead of clicking each one open manually. It adds a toggle switch at the bottom of the DSH sidebar that cycles between three UI modes: expand all new and existing cards, do not interfere with DSH’s default collapsed behavior, and collapse all existing open cards. It can be installed via two command line methods: installing directly from the source GitHub repository or installing the pre-built package from npm.

After installation, the plugin automatically mounts and is ready to use after a quick restart of the current DSH web client, no manual file editing is required. The toggle state is saved to the browser’s local storage, so your personal preferred setting persists after page refreshes. The plugin automatically adapts to DSH’s light and dark theme, no restart required after toggling theme or switch state. It only expands or collapses top-level tool cards, so it will not accidentally open existing nested internal blocks like popular diffs or common terminal outputs.

This plugin follows DSH’s official standard client plugin format, declaring dsh.client and exporting the built client-side code. It also declares dsh.bundle, so it is automatically recognized as a valid profile layer plugin after direct installation via the dsh plugin command, no manual configuration needed. It is entirely browser-side with no extra host-side behavior, and it is released under the official open source MIT license. One-click uninstalling is straightforward via the official dsh plugin remove command, and it will stop loading completely after a simple clean restart of DSH web.

这是专为网页版 DeepSeek Harness 开发的原生 DSH 客户端插件,核心功能是自动展开 DSH 浏览器界面中新到达的工具调用卡片。它在侧边栏底部添加了一个切换开关,可在「展开 / 不干预 / 折叠」三种 UI 状态间循环切换,默认状态为展开。插件纯运行在浏览器端,不会替换任何原生工具卡片渲染器,符合 DSH 插件开发标准形态。

插件默认让新生成的工具调用结果全部展开,方便开发者查看 DeepSeek Harness 每一步的操作。为了避免无意义刷屏,它只执行一级展开,不会展开内部嵌套的修改块等二级内容。用户可随时切换状态,切换到折叠模式会立刻收起所有已展开卡片,不干预模式则保持原有默认行为。

插件支持通过 npm 或 GitHub 命令行安装,两种方式安装后都会自动挂载,重启 DSH web 即可启用,无需手动编辑文件。切换状态会自动持久化到浏览器 localStorage,刷新页面后保持设置,还自适应 DSH 的明暗主题,切换立即生效。项目采用 MIT 许可证开源,支持一键卸载,开发使用 TypeScript 严格类型检查。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 warning1 项注意
  • 12 stars - an early-stage project星标 12,属于早期项目
  • Desktop client: installation downloads an executable - verify the publisher and checksums桌面客户端:安装会下载可执行文件,请核对发布者与校验和
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add dsh-tool-autoexpand

把 better-er/dsh-tool-autoexpand 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

DSH·工具结果自动展开

自动展开 DSH 浏览器界面里随后新到达的工具调用卡片,并在侧栏底部提供四态逻辑 + 三态 UI 的开关:在「展开 / 不干预 / 折叠」三态间循环切换,默认展开。

纯浏览器端 client 插件,不替换任何原生工具卡片渲染器。

状态 示意图
展开 展开
不干预 不干预
折叠 折叠

引言

DeepSeek Harness 的工具调用,默认和 CloseAI 一样是收着的——结果全都藏在折叠里不给你看。可这哪符合开源精神?Open!所有的工具调用结果,就该统统打开。

于是祥云做了这个插件,专门帮你把 DeepSeek Harness 自动开源掉——新到达的工具调用结果全部自动展开。不想看了?把开关切到「折叠」,已经摊开的卡片立刻全部收回去,清爽如初;想回到默认,再点一下回到「不干预」就好。

当然,为了避免无意义的刷屏,这个「打开」是短打开模式:只执行一级展开,而不会把那些修改行统统二级展开。既能看到结论,又不糊一脸改动细节。

这样,你就能爽爽监工 DeepSeek Harness——它每一步在背后做了什么,都摊开在你眼皮子底下,清清楚楚。

却没想到,这狡猾的蓝色大肥鱼,就在你眼皮子底下偷偷啃着你的 Token——拿着你的钱上网玩儿去了。

DSH 偷吃图

功能

  • 侧栏底部开关卡,采用四态逻辑 + 三态 UI:逻辑上在「0 不干预 → 1 展开 → 2 不干预 → 3 折叠」四档间循环,界面上只呈现「不干预 / 展开 / 折叠」三种外观,其中两个「不干预」档显示为同一种样子,点击一次切换一档。
    • 展开:自动展开新渲染的工具调用卡片,并立刻展开页面上已存在的工具卡片。
    • 不干预:停止自动处理,新到达的卡片保持默认收着,不主动动已有卡片。
    • 折叠:立刻折叠页面上所有已展开的工具卡片,并让新到达的卡片保持收着。
  • 只展开或折叠卡片顶层折叠行,不会误开内部 ReadBlock / TerminalBlock / DiffBlock / SearchBlock 的行数折叠。
  • 开关档位持久化到 localStorage,刷新后保持;兼容旧版「开/关」的存储数据,旧「开」→ 展开,旧「关」→ 不干预。
  • 开关卡随 DSH 明/暗主题自适应,切换即生效,无需重启。

效果

新到达的工具调用卡片自动展开后的实际效果:

dsh-tool-autoexpand

演示视频

光看静态截图不过瘾?两位同好分别给这个插件拍了演示视频,还在标题上互相点名对方,欢迎点开对比观看:

祥云版 · 34 秒 dpsk 版 · 23 秒
祥云版演示视频 dpsk 版演示视频

安装

从 GitHub 安装:源码在 src/,lib/ 不入仓库,安装时 npm 会触发 prepare 脚本现场构建。

dsh plugin --profile web add github:better-er/dsh-tool-autoexpand

从 npm 安装:包内已含构建产物 lib/index.js 与 lib/client.js,安装时不再构建。

dsh plugin --profile web add dsh-tool-autoexpand

两种方式装完都会自动挂载,重启 DSH web 后启用,无需手工编辑任何文件。

卸载

dsh plugin --profile web remove dsh-tool-autoexpand

彻底移除,重启 DSH web 后不再加载。

要求与开发

  • 是标准形态的 dsh client 插件,声明 dsh.client,导出 ./client。
  • 同时声明了 dsh.bundle,因此也是一个自挂载的 bundle 层插件:用 dsh plugin --profile <name> add 从 GitHub 安装后,会被自动识别为 profile layer 并挂载,无需手工写组合 entry。
  • 纯浏览器半身,无 host 行为。
  • 构建型插件:src/ 是 TypeScript 源码,lib/ 是构建产物且不入库,安装或发布前由 prepare 构建。

开发

pnpm install
pnpm typecheck   # tsc -b 严格类型检查
pnpm build       # tsc -b && tsdown,产出 lib/index.js 与 lib/client.js
  • src/index.ts:node 半身,空操作的 Cordis 插件。
  • src/client/index.tsx:浏览器半身,自动展开逻辑与侧栏开关。
  • 开关卡片的样式全部内联,不注入 <style>、不依赖自定义 class;侧栏收起态由槽位注入的 wide 判断。
  • 构建用 tsdown,client 产物仍是 window.__ModuleLoader__.load({ id, factory }) 的注册式模块,react 等平台模块保持外部依赖。
  • prepare 只跑 tsdown、不做类型检查,因此从 GitHub 安装时能自包含构建出 lib/。

License

MIT

← 上一个 Prev dsh-official-homepage-theme 下一个 Next yinchao-ai-music-skill →