🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

多智能体桥接 zp2921060653/dsh-plugins

DeepSeek Harnessv0.2.0
zp292106065354 天前有提交已提供中文文档扫描:含敏感能力

让 DSH 调用本机 Claude Code、Codex 等编码 agent

35/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库 package.json 标记 private,未发布到 npm,需从源码安装;安装清单取自 dsh-vpn/package.json。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zp2921060653/dsh-plugins
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · dev
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 54 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装;安装清单取自 dsh-vpn/package.json

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-vpn @ 0.2.0
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/3 17:55:42

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 66 处,展示前 63 条)
  • 执行外部命令来自配置/变量
    agent-bridge/lib/agent-run.js:27
    child = spawn(command, cargs, { cwd, windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'], env: process.env, ...options })
  • 执行外部命令来自配置/变量
    agent-bridge/lib/detect.js:10
    r = spawnSync(cmd, [name], { encoding: 'utf8', windowsHide: true })
  • 执行外部命令来自配置/变量
    agent-bridge/lib/detect.js:27
    r = spawnSync(line, { encoding: 'utf8', timeout: 15000, windowsHide: true, shell: true })
  • 执行外部命令来自配置/变量
    agent-bridge/lib/detect.js:29
    r = spawnSync(bin, args, { encoding: 'utf8', timeout: 15000, windowsHide: true })
  • 读取本地文件
    agent-bridge/lib/detect.js:53
    try { if (existsSync(c)) return { path: c, source: 'scan' } } catch { }
  • 执行外部命令来自配置/变量
    agent-bridge/lib/detect.js:57
    const r = spawnSync(process.platform === 'win32' ? 'npm.cmd' : 'npm', ['prefix', '-g'], { encoding: 'utf8', timeout: 15000, windowsHide: true })
  • 读取本地文件
    agent-bridge/lib/detect.js:62
    try { if (existsSync(c)) return { path: c, source: 'npm-prefix' } } catch { }
  • 读取本地文件
    agent-bridge/lib/detect.js:86
    if (!existsSync(agentRoot)) continue
  • 读取本地文件
    agent-bridge/lib/detect.js:88
    try { entries = readdirSync(agentRoot) } catch { continue }
  • 读取本地文件
    agent-bridge/lib/detect.js:91
    if (!existsSync(exe)) continue
  • 读取本地文件
    agent-bridge/lib/robust.js:36
    if (!existsSync(p)) continue
  • 读取本地文件
    agent-bridge/lib/robust.js:37
    const j = JSON.parse(readFileSync(p, 'utf8'))
  • 发起网络请求
    agent-bridge/lib/robust.js:51
    const resp = await fetch(url, {
  • 执行外部命令固定命令
    agent-bridge/lib/robust.js:68
    const r = spawnSync('git', ['config', '--global', '--get', 'http.proxy'], {
  • 执行外部命令固定命令
    agent-bridge/lib/run.js:8
    try { spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' }) } catch { }
  • 执行外部命令来自配置/变量
    agent-bridge/lib/run.js:32
    child = spawn(command, cargs, { cwd, windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'], env: env || process.env, ...options })
  • 发起网络请求
    browser-bridge/lib/browser.js:112
    const res = await fetch(url, { signal: AbortSignal.timeout(timeoutMs) })
  • 执行外部命令来自配置/变量
    browser-bridge/lib/browser.js:554
    this.child = spawn(this.exe, args, {
  • 发起网络请求
    dsh-vpn/client.js:308
    response = await fetch(API_BASE + path, init);
  • 执行外部命令来自配置/变量
    dumper7-bridge/index.js:38
    child = spawn(cmd, args, { windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'] })
  • 读取本地文件
    forensics-bridge/lib/detect.js:14
    try { if (existsSync(p)) return p } catch { }
  • 执行外部命令来自配置/变量
    forensics-bridge/lib/detect.js:22
    const r = spawnSync(cmd, args || ['-v'], { windowsHide: true, stdio: 'ignore' })
  • 读取本地文件
    forensics-bridge/lib/detect.js:31
    for (const ver of readdirSync(root)) {
  • 读取本地文件
    forensics-bridge/lib/detect.js:33
    if (existsSync(exe)) return exe
  • 执行外部命令固定命令
    forensics-bridge/lib/detect.js:47
    ]) || (() => { try { const r = spawnSync('tshark', ['--version'], { windowsHide: true, stdio: 'ignore' }); return r.status === 0 ? 'tshark' : null } c
  • 执行外部命令固定命令
    forensics-bridge/lib/run.js:8
    try { spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' }) } catch { }
  • 执行外部命令来自配置/变量
    forensics-bridge/lib/run.js:30
    child = spawn(command, cargs, { cwd, windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'], env: env || process.env, ...options })
  • 读取本地文件
    ghidra-bridge/lib/ghidra.js:47
    for (const name of readdirSync(root)) {
  • 读取本地文件
    ghidra-bridge/lib/ghidra.js:52
    const ok = (c) => existsSync(join(c, 'support', 'analyzeHeadless.bat'))
  • 读取本地文件
    ghidra-bridge/lib/ghidra.js:61
    const text = readFileSync(join(home, 'Ghidra', 'application.properties'), 'utf8')
  • 执行外部命令固定命令
    ghidra-bridge/lib/ghidra.js:72
    const r = spawnSync('py', ['-' + pythonVer, '-c', 'import pyghidra'], { encoding: 'utf8', timeout: 20000, windowsHide: true })
  • 写入本地文件
    ghidra-bridge/lib/ghidra.js:83
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    ghidra-bridge/lib/ghidra.js:84
    writeFileSync(join(dir, 'log4j2.xml'), LOG4J_CONFIG)
  • 删除本地文件
    ghidra-bridge/lib/ghidra.js:95
    try { rmSync(join(projectDir, f), { force: true }) } catch { }
  • 写入本地文件
    ghidra-bridge/lib/ghidra.js:101
    mkdirSync(projectDir, { recursive: true })
  • 读取本地文件
    ghidra-bridge/lib/ghidra.js:111
    const st = statSync(p)
  • 读取本地文件
    ghidra-bridge/lib/ghidra.js:120
    const m = JSON.parse(readFileSync(markerFile(projectDir), 'utf8'))
  • 写入本地文件
    ghidra-bridge/lib/ghidra.js:152
    try { writeFileSync(markerFile(projectDir), JSON.stringify({ binary: binaryPath, size: st.size, mtimeMs: st.mtimeMs })) } catch { }
  • 写入本地文件
    ghidra-bridge/lib/ghidra.js:163
    mkdirSync(settingsDir, { recursive: true })
  • 写入本地文件
    ghidra-bridge/lib/ghidra.js:164
    writeFileSync(join(settingsDir, 'python_command.save'), 'py\n-' + pythonVer + '\n')
  • 读取本地文件
    ghidra-bridge/lib/ghidra.js:174
    const scriptSrc = await readFile(fileURLToPath(new URL('../scripts/DecompileBridge.py', import.meta.url)), 'utf8')
  • 删除本地文件
    ghidra-bridge/lib/ghidra.js:179
    try { rmSync(portFile, { force: true }) } catch { }
  • 执行外部命令固定命令
    ghidra-bridge/lib/ghidra.js:190
    const child = spawn('py', ['-' + config.pythonVer, ...args], { cwd: projectDir, windowsHide: true, stdio: ['ignore', 'ignore', 'ignore'], env })
  • 执行外部命令固定命令
    ghidra-bridge/lib/run.js:8
    try { spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' }) } catch { }
  • 执行外部命令来自配置/变量
    ghidra-bridge/lib/run.js:30
    child = spawn(command, cargs, { cwd, windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'], env: env || process.env, ...options })
  • 发起网络请求
    mcp-jetbrains/client.js:253
    const res = await fetch(url, { headers: { accept: 'application/json' }, cache: 'no-store' });
  • 发起网络请求
    mcp-jetbrains/client.js:258
    const res = await fetch(url, {
  • 读取本地文件
    mcp-jetbrains/lib/index.js:593
    return await realpath(absolute);
  • 读取本地文件
    mcp-jetbrains/lib/index.js:597
    return join(await realpath(dirname(absolute)), basename(absolute));
  • 发起网络请求
    mcp-jetbrains/lib/index.js:1120
    response = await fetch(href, {
  • 发起网络请求
    mcp-jetbrains/lib/index.js:1250
    response = await fetch(row.url, { method: 'GET', headers, signal: controller.signal });
  • 读取本地文件
    mcp-jetbrains/lib/index.js:1592
    raw = await readFile(path, 'utf8');
  • 写入本地文件
    mcp-jetbrains/lib/index.js:1625
    await mkdir(dirname(path), { recursive: true });
  • 写入本地文件
    mcp-jetbrains/lib/index.js:1628
    await writeFile(temp, body, 'utf8');
  • 写入本地文件
    mcp-jetbrains/lib/index.js:1630
    await rename(temp, path);
  • 删除本地文件
    mcp-jetbrains/lib/index.js:1635
    await rm(temp, { force: true }).catch(() => { });
  • 发起网络请求
    mcp-jetbrains/lib/index.js:2376
    await fetch(row.url, {
  • 发起网络请求
    mcp-jetbrains/lib/index.js:2868
    await fetch(row.url, {
  • 执行外部命令来自配置/变量
    micropather-bridge/index.js:35
    child = spawn(cmd, args, { windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'] })
  • 读取本地文件
    wukong-trainer-skill/lib/skill.js:28
    try { raw = readFileSync(SKILL_FILE, 'utf8') } catch { return null }
  • 执行外部命令固定命令
    wxapkg-bridge/lib/run.js:8
    try { spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' }) } catch { }
  • 执行外部命令来自配置/变量
    wxapkg-bridge/lib/run.js:39
    child = spawn(built.command, built.args, Object.assign({
  • 执行外部命令来自配置/变量
    wxapkg-bridge/lib/run.js:108
    return spawn(built.command, built.args, Object.assign({
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 调用本机编码智能体
  • 桥接ClaudeCode
  • 桥接Ghidra逆向

README

由 DeepSeek 最新模型翻译生成
dsh-plugins 为 DeepSeek Harness(DSH 桌面版)开发的插件。 包含的插件 | 插件 | 作用 | 目录 | | dsh-agent-bridge | 让 DSH 调用本机其他 AI 编码 agent:Claude Code / Codex / 腾讯 Marvis(后台任务流式输出) | agent-bridge/ | | dsh-ghidra | 让 DSH 操作 Ghidra 反编译:导入二进制、反编译函数、字符串、交叉引用(常驻 PyGhidra 服务器) | ghidra-bridge/ | | dsh-reminder | 任务需要用户决定/辅助时,检测前台窗口(看剧/游戏),用声音/弹窗/黑白屏幕闪烁提醒用户回到工作;内置「桌面通知」设置页可调位置与闪烁参数 | reminder-bridge/ | 安装 插件均以 DSH 的 bundle(组合包)形式交付,装进桌面版 profile: 把本仓库克隆到本地后,分别安装各子目录 git clone https://github.com/GalaxyBatMan111/dsh-plugins.git
展开完整文档(README 剩余 1 节)
dsh-plugins

为 DeepSeek Harness(DSH 桌面版)开发的插件。

包含的插件

| 插件 | 作用 | 目录 |
| dsh-agent-bridge | 让 DSH 调用本机其他 AI 编码 agent:Claude Code / Codex / 腾讯 Marvis(后台任务流式输出) | agent-bridge/ |
| dsh-ghidra | 让 DSH 操作 Ghidra 反编译:导入二进制、反编译函数、字符串、交叉引用(常驻 PyGhidra 服务器) | ghidra-bridge/ |
| dsh-reminder | 任务需要用户决定/辅助时,检测前台窗口(看剧/游戏),用声音/弹窗/黑白屏幕闪烁提醒用户回到工作;内置「桌面通知」设置页可调位置与闪烁参数 | reminder-bridge/ |

安装

插件均以 DSH 的 bundle(组合包)形式交付,装进桌面版 profile:

把本仓库克隆到本地后,分别安装各子目录
git clone https://github.com/GalaxyBatMan111/dsh-plugins.git

安装 agent 桥接插件 & "$env:APPDATA\DSH Desktop\host-commands\desktop\bin\dsh.cmd" plugin --profile desktop add .\dsh-plugins\agent-bridge

安装 Ghidra 插件(需先满足 ghidra-bridge/README.md 的环境要求) & "$env:APPDATA\DSH Desktop\host-commands\desktop\bin\dsh.cmd" plugin --profile desktop add .\dsh-plugins\ghidra-bridge

安装提醒插件(web/profile 模式通用,也可用 web) & "$env:APPDATA\DSH Desktop\host-commands\web\bin\dsh.cmd" plugin --profile web add .\dsh-plugins\reminder-bridge

然后重启 DSH,插件在启动时加载。

各插件说明

- agent-bridge/README.md — 工具:call_agent / agent_status;支持流式后台任务
- ghidra-bridge/README.md — 工具:ghidra_status / ghidra_open / ghidra_info / ghidra_decompile / ghidra_functions / ghidra_strings / ghidra_xrefs / ghidra_close
- reminder-bridge/README.md — 提醒配置面板(设置 → 桌面通知);滑轨调位置/方式/闪烁参数

许可

MIT
预览分享卡片长什么样 ↓zp2921060653/dsh-plugins
分享 · DeepSeek Harness Hub
zp2921060653/dsh-plugins

让 DSH 调用本机 Claude Code、Codex 等编码 agent

这是你的仓库?认领条目

回到顶部