Skills Plugins MCP Prompt Model 导航 博客 资讯 我的中心
工具与能力 #deepseek-harness#dsh#dsh-plugin#git#package-manager#plugin

dsh-engineer-tools

面向软件工程师的 DeepSeek Harness 插件:注册两个模型可直接调用的 Host Tool——受工作区约束的 `git` 运行器,以及按 lockfile 自动识别 npm/pnpm/yarn/bun 并选择正确动词的包管理器运行器(`dev`)。两者都经 dsh 沙箱 shell 执行,返回规整的 stdout/stderr/exitCode,让 agent 拿到聚焦、可复核的结果而不是裸 bash;再加一个工具只需复制一个 register 块。

bycall @bycall ⬇ 2 ★ 0 main

安装

dsh plugin --profile web add github:bycall/dsh-engineer-tools
下载安装清单

需要可复现安装时,可在仓库后追加 #commit 固定提交。

面向软件工程师的 DeepSeek Harness 插件:注册两个模型可直接调用的 Host Tool——受工作区约束的 `git` 运行器,以及按 lockfile 自动识别 npm/pnpm/yarn/bun 并选择正确动词的包管理器运行器(`dev`)。两者都经 dsh 沙箱 shell 执行,返回规整的 stdout/stderr/exitCode,让 agent 拿到聚焦、可复核的结果而不是裸 bash;再加一个工具只需复制一个 register 块。

该插件未提供要点说明,请参考仓库 README。

deepseek-harnessdshdsh-plugingitpackage-managerplugin
  1. 安装并启动 DeepSeek Harness:npx @deepseek-ai/dsh web
  2. 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
  3. 用 dsh plugins list 确认已安装,必要时重启 Harness 生效

插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。

代码仓库github.com/bycall/dsh-engineer-tools
许可证MIT
主要语言main
下载量2
GitHub 星标0
最近推送2026-09-15
收录日期2026-09-19
分类工具与能力

事实信息来自公开插件目录快照(2026-10-03),介绍文案由本站再加工。

以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。

# dsh-engineer-tools

面向软件工程师的 DeepSeek Harness(dsh)插件:把常用工程命令封装成结构化的 Host Tool,让 Agent 直接调用、返回规整结果,比裸 `bash` 更聚焦、更安全。

## 提供的工具

| 工具 | 作用 |
| --- | --- |
| `git` | 在会话工作区执行 git 子命令(status / diff / log / branch / show …),返回 stdout/stderr/exitCode。 |
| `dev` | 运行包管理器命令(npm / pnpm / yarn / bun)。支持 `test` `build` `lint` 等脚本与 `install` `outdated` `audit` 等生命周期命令;`manager: auto` 时按 lockfile 自动识别。 |

两个工具都走 dsh 自带的沙箱 shell(`ctx.shell`),受工作区权限与审批策略约束。

## 安装

```bash
# npm 源(推荐,市场内一键安装体验一致)
dsh plugin --profile web add dsh-engineer-tools

# 或本地目录源
dsh plugin --profile web add /path/to/dsh-engineer-tools
```

安装后**重启 DSH.app**,Agent 即可在下一步调用 `git` / `dev`。卸载:`dsh plugin --profile web remove dsh-engineer-tools`。

## 依赖约定

`@deepseek-ai/dsh-tools` 与 `@deepseek-ai/cordis` 声明在 **`peerDependencies`**,不要放进 `dependencies`。

这不是风格偏好,而是功能正确性的前提:dsh 会把宿主自带的 `@deepseek-ai/*` 包以软链接方式注入到每个插件的 `node_modules` 下,让所有消费者共享**同一份模块实例**。而 `@deepseek-ai/dsh-tools` 用模块级 `Symbol`(`TOOL_RUNTIME_SCHEDULER`)做跨调用身份标记——一旦插件自带一份嵌套拷贝,它就会盖住宿主的软链接,于是两份模块各持有各自的 Symbol,跨拷贝读取得到 `undefined`,`await scheduler.prepare(...)` 抛 `Cannot read properties of undefined (reading 'prepare')`。

声明为 peer 后不会装入嵌套拷贝,宿主注入的软链接正常生效,无需任何额外兜底脚本。

`peerDependencies` 的版本范围需要**逐条列出**已支持的主机线(如 `^0.1.5-rc.1 || ^0.1.6-alpha.1`),不能靠放宽成 `>=` 覆盖:npm 的预发布规则按 comparator set 求值,预发布版本只有在同一条 set 内存在**共享 `[major, minor, patch]` 三元组**且自身带预发布标记的比较符时才可能满足。`0.1.6-alpha.1` 与更早的比较符不共享三元组,因此新线必须显式点名。

## 测试与校验

```bash
npm install     # 安装 devDependencies(测试用)
npm run verify  # = node --check lib/index.js && node test/smoke.mjs
```

`npm run verify` 会在 `prepublishOnly` 自动执行,发布前必然跑过。`test/smoke.mjs` 用假的 cordis ctx 驱动真实的 `apply()`,覆盖注册表、编译后的 JSON Schema、`git` 子命令透传、lockfile 管理器识别与 `run` 动词选择、`render()` 输出,以及参数校验拒绝。

## 扩展:再加一个工具

打开 `lib/index.js`,在 `apply()` 内复制一个 `ctx.tools.register(defineTool({ ... }))` 块:

```js
ctx.tools.register(defineTool({
  name: "tool-name",
  description: "一句话说明",
  parameters: {
    arg: { type: "string", required: true, description: "参数说明" },
  },
  // render 必须嵌在 output 里:defineTool 读的是 options.output.render,
  // 放到顶层不会报错,但每次结果渲染时都会抛 userRender is not a function。
  output: { schema: OUTPUT_SCHEMA, render: renderResult },
  async execute(args, exec) {
    return runShell(ctx, exec, `your-command ${args.arg}`, args.timeoutMs);
  },
}));
```

保存后重启 DSH.app 即可生效。新工具记得在 `test/smoke.mjs` 里补一段断言。

## 说明

- 纯 ESM,无需构建步骤;`main` 直接指向 `lib/index.js`。
- 严格遵循 `@deepseek-ai/dsh-tool-bash` 的注册范式(`defineTool` + `ctx.shell`)。
- 工具以 agent 权限运行命令,受 dsh 沙箱与审批策略限制。

数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。