前置条件:已安装 dsh0.2.0-rc.2 族、Node.js ≥ 22、pnpm 9.x。
31.4/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/15 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add BanboLee/banbo-dsh该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 21 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包banbo-dsh(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 21:20:53
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 44 处,展示前 38 条)
- 读取本地文件plugins/agents/catalog.js:340
entries = readdirSync(dir, { withFileTypes: true }) - 读取本地文件plugins/agents/catalog.js:369
size = statSync(path).size - 读取本地文件plugins/agents/catalog.js:466
text = readFileSync(path, 'utf8') - 写入本地文件plugins/agents/identity.js:143
mkdirSync(join(rootDir, CHILDREN_DIR), { recursive: true, mode: DIR_MODE }) - 写入本地文件plugins/agents/identity.js:144
writeFileSync(temp, payload, { mode: FILE_MODE }) - 读取本地文件plugins/agents/identity.js:174
if (existsSync(target)) { - 写入本地文件plugins/agents/identity.js:178
renameSync(temp, target) - 读取本地文件plugins/agents/identity.js:188
existing = readFileSync(target, 'utf8') - 删除本地文件plugins/agents/identity.js:203
rmSync(path, { force: true }) - 读取本地文件plugins/agents/identity.js:229
existing = readFileSync(target, 'utf8') - 删除本地文件plugins/agents/identity.js:237
rmSync(target) - 读取本地文件plugins/agents/identity.js:317
text = readFileSync(childIdentityPath(rootDir, childId), 'utf8') - 读取本地文件plugins/agents/index.js:73
return JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf8')) - 读取本地文件plugins/agents/preset-compiler.js:135
lstatSync(path) - 删除本地文件递归plugins/agents/preset-compiler.js:144
rmSync(path, { recursive: true, force: true }) - 读取本地文件plugins/agents/preset-compiler.js:150
return lstatSync(path).isSymbolicLink() - 删除本地文件plugins/agents/preset-compiler.js:173
unlinkSync(path) - 删除本地文件plugins/agents/preset-compiler.js:178
rmdirSync(path) - 读取本地文件plugins/agents/preset-compiler.js:371
return existsSync(path) ? path : undefined - 读取本地文件plugins/agents/preset-compiler.js:380
return path === undefined ? undefined : standardPresetPlugins(readFileSync(path, 'utf8')) - 读取本地文件plugins/agents/preset-compiler.js:529
return lstatSync(join(dir, COMPLETE_MARKER)).isFile() - 读取本地文件plugins/agents/preset-compiler.js:540
const stats = lstatSync(pointer) - 写入本地文件plugins/agents/preset-compiler.js:572
mkdirSync(base, { recursive: true, mode: 0o700 }) - 写入本地文件plugins/agents/preset-compiler.js:635
renameSync(temporary, pointer) - 写入本地文件plugins/agents/preset-compiler.js:663
renameSync(pointer, parked) - 写入本地文件plugins/agents/preset-compiler.js:670
renameSync(temporary, pointer) - 写入本地文件plugins/agents/preset-compiler.js:738
renameSync(parked, pointer) - 写入本地文件plugins/agents/preset-compiler.js:922
mkdirSync(generationsDir, { recursive: true, mode: 0o700 }) - 读取本地文件plugins/agents/prompt-loader.js:139
stat = statSync(realPath) - 读取本地文件plugins/agents/prompt-loader.js:158
buffer = readFileSync(realPath) - 读取本地文件plugins/agents/schema.js:343
size = statSync(path).size - 读取本地文件plugins/agents/schema.js:355
return readFileSync(path, 'utf8') - 发起网络请求plugins/dsh-lsp-diagnostics/runtime.js:942
const initializeResult = await this.request( - 发起网络请求plugins/dsh-lsp-diagnostics/runtime.js:1566
await this.request('shutdown', null, budget.signal, true) - 执行外部命令来自配置/变量plugins/rtk/grep-compress.js:81
const child = execFile(file, args, options, (error, stdout, stderr) => { - 读取本地文件plugins/rtk/rewrite-decision.js:60
if (!statSync(candidate).isFile()) return undefined - 读取本地文件plugins/rtk/rewrite-decision.js:61
accessSync(candidate, constants.X_OK) - 执行外部命令来自配置/变量plugins/rtk/rewrite-decision.js:233
const result = spawnSync(executable, ['rewrite', '--', command], {
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成banbo-dsh
DeepSeek Harness(DSH)插件集合:6 个开箱即用的插件,全部发布在 npm(@banbolee/dsh-),一条命令即可安装到任意 DSH profile,无需 clone 本仓库。MIT 协议开源。
快速安装(用户)
前置条件:已安装 dsh(0.2.0-rc.2 族)、Node.js ≥ 22、pnpm 9.x。
想装哪个装哪个:
dsh plugin --profile <profile> add @banbolee/dsh-rtk
dsh plugin --profile <profile> add @banbolee/dsh-codegraph-mcp
dsh plugin --profile <profile> add @banbolee/dsh-fish-shell
dsh plugin --profile <profile> add @banbolee/dsh-lsp-diagnostics
dsh plugin --profile <profile> add @banbolee/dsh-llm-pi-ai-with-session
dsh plugin --profile <profile> add @banbolee/dsh-agents
插件总览
| 插件 | 功能 | 需要的二进制 |
展开完整文档(README 剩余 1 节)
banbo-dsh DeepSeek Harness(DSH)插件集合:6 个开箱即用的插件,全部发布在 npm(@banbolee/dsh-),一条命令即可安装到任意 DSH profile,无需 clone 本仓库。MIT 协议开源。 快速安装(用户) 前置条件:已安装 dsh(0.2.0-rc.2 族)、Node.js ≥ 22、pnpm 9.x。 想装哪个装哪个: dsh plugin --profile <profile> add @banbolee/dsh-rtk dsh plugin --profile <profile> add @banbolee/dsh-codegraph-mcp dsh plugin --profile <profile> add @banbolee/dsh-fish-shell dsh plugin --profile <profile> add @banbolee/dsh-lsp-diagnostics dsh plugin --profile <profile> add @banbolee/dsh-llm-pi-ai-with-session dsh plugin --profile <profile> add @banbolee/dsh-agents 插件总览 | 插件 | 功能 | 需要的二进制 | | @banbolee/dsh-rtk | 装饰已挂载的 shell 执行器:每条命令经 rtk rewrite 改写后执行,模型侧 grep 输出经 rtk pipe 压缩 | rtk | | @banbolee/dsh-codegraph-mcp | 通过官方 DSH bridge 新增一行 mcp-codegraph,以 stdio 接入 CodeGraph MCP 服务(codegraph serve --mcp),并附 agent 指令安装脚本 | codegraph | | @banbolee/dsh-fish-shell | 用 fish 替代 bash:沙箱/本地两种执行器 + 模型可调的 fish 工具 + 任意 agent preset 下用 fish 替换 bash 的 per-agent 策略 | fish | | @banbolee/dsh-lsp-diagnostics | write/edit/str_replace_editor 改动落盘后,自动把 LSP 诊断结果附到下轮模型推理;另注册模型可调用的 lsp_diagnostics(file_path) 工具 | typescript-language-server、gopls(可选 clangd、rust-analyzer、pyright-langserver) | | @banbolee/dsh-llm-pi-ai-with-session | llm-pi-ai 的通用 session wrapper:注册显式 session provider 路由,每次 LLM 请求携带动态会话 header(默认 x-session-id) | 无(复用 llm-pi-ai provider) | | @banbolee/dsh-agents | 用 YAML 定义自己的 Agent 团队:具名 agent_<id> 工具、每个 Agent 的 persona 与工具面、显式委派图、绝对深度/并发预算;把自带 preset 作为 @deepseek-ai/dsh-agent-preset 行声明在 profile 的 preset registry 上 | 无 | @banbolee/dsh-llm-pi-ai-with-session 是 llm-pi-ai 的一个通用 session wrapper:按配置显式注册 session provider 路由,复用 pi-ai 的 openai-completions 实现并在每次请求里带上可配置的会话 header(默认 x-session-id);网关、凭据、模型、推理档位全部从 source provider 继承,无需重复配置。详见 plugins/dsh-llm-pi-ai-with-session/README.md。 每个插件的完整说明见各自的 README。 外部依赖(重要,装前必读) rtk、codegraph、fish、LSP servers 等二进制必须预先安装,插件不会帮你下载: | 二进制 | 用于 | | rtk | @banbolee/dsh-rtk——必须预装,否则命令改写/grep 压缩全部 fail-open 直通 | | codegraph | @banbolee/dsh-codegraph-mcp——必须预装,否则 MCP bridge 没有服务器、无 mcp__codegraph__ 工具 | | fish | @banbolee/dsh-fish-shell 执行器与工具 | | typescript-language-server、gopls(可选 clangd、rust-analyzer、pyright-langserver) | @banbolee/dsh-lsp-diagnostics 的自动诊断 | 把二进制放进 PATH(或通过插件配置固定路径)。缺少二进制不影响安装和测试,只是对应功能 fail-open。 卸载 dsh plugin --profile <profile> remove @banbolee/dsh-rtk dsh plugin --profile <profile> remove @banbolee/dsh-codegraph-mcp dsh plugin --profile <profile> remove @banbolee/dsh-fish-shell dsh plugin --profile <profile> remove @banbolee/dsh-lsp-diagnostics dsh plugin --profile <profile> remove @banbolee/dsh-llm-pi-ai-with-session dsh plugin --profile <profile> remove @banbolee/dsh-agents @banbolee/dsh-agents 的普通卸载保留用户数据($DSH_HOME/banbo-agents/:YAML 定义、persona、ABI manifest),重装后即可恢复;它只是不再挂载到运行时,preset 行也随之消失。彻底清除是显式的破坏性操作,见 plugins/agents/README.md。 本地开发 / 从源码安装(贡献者) git clone git@github.com:BanboLee/banbo-dsh.git cd banbo-dsh env NODE_ENV=development pnpm install 从仓库根目录安装到 profile(-w 标志对以下本地路径安装是必需的,否则 pnpm 报 ERR_PNPM_ADDING_TO_ROOT;@banbolee/dsh-fish-shell 例外,不需要 -w,它有独立的部署与符号链接方案,见其 README): dsh plugin --profile <profile> add -w ./plugins/rtk dsh plugin --profile <profile> add -w ./plugins/codegraph-mcp dsh plugin --profile <profile> add -w ./plugins/dsh-llm-pi-ai-with-session dsh plugin --profile <profile> add -w ./plugins/dsh-lsp-diagnostics dsh plugin --profile <profile> add -w ./plugins/agents dsh plugin --profile <profile> add ./plugins/fish-shell 一次性装多个/维护隔离环境,可用同步脚本(要求 DSH_HOME 指向隔离目录): DSH_HOME="$(mktemp -d)" scripts/sync-rtk-codegraph-to-profile.sh <profile> DSH_HOME="$(mktemp -d)" scripts/sync-lsp-diagnostics-to-profile.sh <profile> scripts/sync-to-profile.sh <profile> # fish-shell:打包 bundle,再把 tarball 装进 profile 测试 env NODE_ENV=development pnpm test NODE_ENV=development 很重要:NODE_ENV=production 时 pnpm 会跳过 devDependencies,导致依赖装不全、依赖图断言失败。各插件自己的验证命令见各自 README。 真实 headless E2E(可选) 先构建相邻的 RTK release 二进制与 CodeGraph 产物,再跑 opt-in 的真实 profile 套件: (cd ../rtk && cargo build --release) (cd ../codegraph && npm run build) corepack pnpm test:e2e:headless 需要 Node 22、dsh、fish;可用 DSH_REAL_E2E_DSH_BIN / DSH_REAL_E2E_NODE_BIN / DSH_REAL_E2E_RTK_BIN / DSH_REAL_E2E_CODEGRAPH_BIN 覆盖可执行文件位置。 License MIT —— 见 LICENSE。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
BanboLee/banbo-dsh
前置条件:已安装 dsh0.2.0-rc.2 族、Node.js ≥ 22、pnpm 9.x。
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目