npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@autumnpizazz/dsh-tool-manager

v1.2.12

Published

Manage DSH agent tools per preset and open on-demand tool groups for the rest of a session

Readme

DSH 工具管理插件

这是一份个人 fork。 上游项目:pan17/dsh-tool-manager(MIT)。 本 fork 由 AutumnPizazz 维护,以 @autumnpizazz/dsh-tool-manager 发布, 用于在两台机器之间同步自己使用的版本;功能与上游一致,差异见 CHANGELOG。

一个简单好用的 DeepSeek Harness(DSH)工具管理插件。

适配 DSH >=0.2.0-rc.2。 旧版本请继续使用 1.2.8。

它可以帮你:

  • 按 Agent Preset 开启或关闭工具;
  • 把相关工具整理成分组;
  • 一键批量启用或弃用整组工具;
  • 减少模型平时看到的工具数量,让工具列表更清晰、更省上下文。

DSH 工具管理页面

主要功能

开启或关闭工具

在 WebUI 中可以直接控制每个工具是否可用。

弃用后,该工具会同时从模型的工具 schema、lookup 和调用中消失。

不同 Agent Preset 可以使用不同的工具配置。

插件会记住你上次选择的 Agent Preset(存在浏览器 localStorage 的 dsh-tool-manager.active-preset),下次打开设置页时直接回到该 Preset。

工具分组

你可以把用途相近的工具放进同一个分组,例如:

  • GitHub 工具
  • 文件处理
  • 网页搜索
  • 图片生成
  • 数据分析

分组支持手动选择工具,也可以使用当前默认模型自动生成分组、名称和描述。调用模型前可以预览、编辑或重置提示词。

每个分组行左侧有整组开关:打开=组内工具一起启用,关闭=组内工具一起弃用,不需要再逐个勾选成员。分组只有「整组启用」和「整组弃用」两种状态,不会出现一半启用一半弃用的成员。

直接拖动分组行或成员行整行即可调整分组顺序和组内工具顺序(鼠标移上去会变成抓手,没有单独的把手图标);组内顺序写进该组的选择列表,保存后按此顺序展示。

分组只是批量开关

分组是给人用的一键批量启停,不参与模型侧的“先看目录、再按需打开”:

  • 整组启用 / 整组弃用只是对组内成员逐个写入 disabled,效果与逐个操作完全一致;
  • 插件不注册任何模型工具(模型看不到 tool_list 之类的目录工具),也不会向会话写入工具目录消息;
  • 只有「弃用」才会让工具从模型 schema、lookup 和调用同时消失;
  • 一个工具只能属于一个分组;已分组或已弃用的工具不能再加入其他组;
  • 每个分组必须匹配到至少一个可用工具,匹配不到的分组不能保存;
  • 分组与组内顺序都会被保存,直接拖动整行即可调整,调整后仍需点「保存」;
  • 工具仍以原来的名称和参数运行。

安装

要求 DeepSeek Harness 0.2.0-rc.2 或更新。本插件按该版本的 Agent Preset 与工具 registry 行为适配并测试;更早的 DSH 请使用 1.2.8。

方式一:设置页内直接安装(推荐)

打开 设置 → 插件 → 添加插件,在输入框填包名:

dsh-tool-manager

点「安装」即可。插件声明了 dsh.bundle,安装时会被自动注册成 bundle 层。 国内网络下载慢时,把「安装源」切到 中国大陆镜像源。

安装完成后若提示「已安装,下次启动后加载」,重启 DSH 即可;若出现 「立即启用」按钮,也可以直接点它免重启。

然后打开 WebUI:

http://127.0.0.1:3080

进入:

设置 → 工具管理

方式二:命令行

桌面版(Electron)用户请直接用应用自带的 dsh 命令(安装桌面版时会加入 PATH), 它支持 --profile desktop:

dsh plugin --profile desktop add dsh-tool-manager
dsh plugin --profile desktop list --depth 0

安装完成后,重启对应的 DSH Profile。

非桌面版(web / tui / headless 等自建 profile):

npx @deepseek-ai/dsh plugin --profile web add dsh-tool-manager

然后打开 WebUI:

http://127.0.0.1:3080

进入:

设置 → 工具管理

升级 / 卸载:

dsh plugin --profile desktop update dsh-tool-manager
dsh plugin --profile desktop remove dsh-tool-manager

--dump-config 在 desktop profile 上会被拒绝(该 profile 由 Electron 应用 独占管理),要验证组合配置请改用 dsh plugin --profile desktop list, 或直接在设置页查看。

使用方法

1. 选择 Agent Preset

在页面顶部选择需要配置的 Agent Preset。

每个 Preset 的工具策略相互独立。

2. 开启或关闭工具

在工具目录中勾选或取消勾选工具:

  • 勾选:工具启用;
  • 取消勾选:工具弃用。

可以通过搜索和状态筛选快速查找工具。

3. 创建分组

点击“手动分组”,然后:

  1. 填写分组名称;
  2. 填写可选的分组描述;
  3. 搜索并勾选要加入的工具;
  4. 点击“确定”。

确认分组后,页面会保留当前筛选位置,不会自动跳转到“启用”页面。

你也可以点击“自动生成名称和描述”,让当前默认模型根据所选工具生成建议。执行前可以展开并编辑本次请求的提示词,也可以一键重置为根据当前选中工具生成的默认提示词。

4. 自动分组

点击“自动分组”后,可以先搜索、勾选本次需要整理的工具;插件只会把选中的尚未分组且未弃用工具交给当前默认模型。

执行前可以预览并编辑提示词;默认提示词会随工具勾选实时更新,自定义后也可以一键重置。自动生成的结果会先显示预览。确认后只会加入页面草稿,不会立即写入配置。

5. 保存修改

工具开关或分组发生变化后,页面会显示“有未保存的修改”。

点击“保存”后配置才会生效。运行中的 Agent 会从下一个模型步骤开始使用新策略。

如果在未保存时刷新页面或离开站点,插件会进行提醒,避免误丢草稿。

工具状态说明

页面把工具分为两种状态,筛选器同样是这两个(外加“全部”):

| 状态 | 含义 | | --- | --- | | 启用 | 出现在模型的工具列表中,可以直接调用 | | 弃用 | 不显示给模型,也不能调用 |

属于某个分组的工具按整组状态显示:整组启用时成员都是“启用”,整组弃用时成员都是“弃用”。页面还会显示工具总量、分组数量、未分组工具、分组工具和已弃用工具等统计信息。

配置文件

配置默认保存在:

$DSH_HOME/tool-manager.json

如果没有设置 DSH_HOME,默认位置为:

~/.dsh/tool-manager.json

也可以通过环境变量指定其他路径:

DSH_TOOL_MANAGER_CONFIG

示例配置:

{
  "presets": {
    "standard": {
      "disabled": [
        "codex_image_generate"
      ],
      "groups": [
        {
          "name": "GitHub 工具",
          "description": "处理 GitHub Issue 和仓库内容",
          "patterns": [
            "mcp__github__create_issue",
            "mcp__github__list_issues"
          ]
        }
      ]
    }
  }
}

通常不需要手动编辑这个文件,直接在 WebUI 中操作即可。

需要注意

  • 插件管理的是模型能否看到和调用工具;
  • 它不会停止工具所属的 Cordis 插件或 MCP 服务进程;
  • 修改配置不会改写 DSH 自带的 Agent Preset 文件;
  • 分组只是批量操作入口,不改变模型可见面,也不会注册额外的模型工具;
  • 自动命名和自动分组会调用当前默认模型,因此会产生一次模型请求;执行前的确认框可预览和编辑提示词,并可分别设置 5–600 秒超时,默认分别为 60 秒和 120 秒;插件不限制提示词/请求体大小、工具或分组数量、名称/描述长度、模型返回文本长度及输出 Token,实际可用范围仍由当前模型、供应商和运行环境决定。

开发

npm install
npm run build
npm test

许可证

MIT