dsh-plugin-devkit

DSH PLUGIN安全与权限

仓库 Joker2377/dsh-plugin-devkit · npm dsh-plugin-devkit

安全与权限 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DSH plugin 开发者提供脚手架、安装前诊断与已发布包供应链审计三件套,纯 host 端工具,也可用 CLI 离线运行。

一句话选型结论

按资料字段整理

dsh-plugin-devkit 是安全与权限类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类安全与权限 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-11-11 创建于 2026-11-03
README 19.3 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:Joker2377/dsh-plugin-devkit#v0.5.1
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.2-rc.1,Node.js 要求 >=22.19;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.2-rc.1版本不匹配时安装会报错
Node.js 要求>=22.19来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/dsh-tools@>=0.1.0-rc.1 <0.2.0-0 || >=0.2.0-rc.1 <0.3.0-0需要同时安装的同级依赖
npm 包名dsh-plugin-devkit可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-plugin-devkit:DeepSeek Harness 外挂从生成到审计的开发工具

  • 一键生成可运行的外挂骨架
  • 安装前诊断结构与兼容性
  • 审计已发布套件的供应链
  • 同一核心逻辑提供 CLI 用法
  • 纯函数核心,全部离线可测

适用场景

代码评审终端命令

上游标签

auditbundleclideepseek-harnessdsh-pluginnpmscaffoldsupply-chain

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-11-10): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.2-rc.1),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 需要同时装好同级依赖,漏装会启动失败。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在安全与权限场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-plugin-devkit当前 L5 · 运行验证通过 低风险 0 0.2.2-rc.1 有
dsh-infinite-gen-4 未做沙盒验证 未标注 1,611 未标注 无
cc-safety-net 未做沙盒验证 未标注 1,591 未标注 无
dsh-wallpaper-engine L5 · 运行验证通过 低风险 1,018 0.2.0-rc.2 等 10 个 有
api-relay-audit L5 · 运行验证通过 低风险 875 0.2.0-rc.2 等 10 个 有
hol-guard L4 · 沙盒安装通过 不在扫描口径 828 未标注 有

仓库档案

安全与权限
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方Joker2377仓库 dsh-plugin-devkit · 默认分支 main
分类安全与权限security
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-11-03 · 2026-11-11最后推送 2026-11-11
本站收录2026-11-03首次进入本站目录的时间

README 全文

19.3 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-plugin-devkit


Start a Harness bundle in one step, find out why yours won't install before your users do, and check the other guy's package before it runs in your profile.

四個工具,對應外掛生命週期的四個時刻:

  • plugin_scaffold — 開一個外掛骨架。產出來就能跑、就跑得過測試、就通過下面那支檢查。
  • plugin_doctor — 讀一個外掛,說出「DSH 安裝它會被哪一條擋下來」。
  • plugin_audit — 讀一個已發佈的套件,說出「現在把它裝進我的 profile 合不合理」。
  • plugin_inspect — 裝完之後,說出「它在 Host 裡真的載入了嗎」。

同一套邏輯也包成一支 CLI,所以你不必開對話也能用。純 host 端外掛,沒有 UI、沒有常駐服務、不改 profile。

> [!NOTE]
> 需要 Node.js &gt;=22.19 與 DeepSeek Harness &gt;=0.1.1-rc.2 &lt;0.3.0。純 JavaScript,沒有原生模組,Windows / macOS / Linux 都能跑。

功能

  • 骨架一次到位。 package.json(含 dsh.bundle.patch)、patch、入口、範例工具、測試、README、LICENSE、.gitignore、CI workflow,一個指令全出來。
  • 產物是真的能跑的。 骨架自帶一個工具與它的測試,npm test 不用安裝任何依賴就會過。
  • 重現 DSH 自己的相容性判定。 engines.dsh 存在時只看它;不存在時才逐條檢查 @deepseek-ai/dsh* peers,prerelease 也參與比較 —— 跟安裝時擋你的那一條是同一套規則。
  • README 被當成產品的一部分。 沒有「安裝」段的 README 會被點名:這個外掛的安裝方式是貼連結,讀者不會自己猜到。
  • 不覆蓋你寫的東西。 目標檔案已存在就跳過並回報,要覆蓋得明講;也可以 dryRun 先看會寫哪些檔。
  • 安裝前先核查來源。 plugin_audit 在把別人的套件貼進 profile 之前,先比對 tarball 雜湊、掃 install 腳本、看依賴面與 provenance、判 engines.dsh 相容性、比對現有版本 —— 只讀,不裝、不執行對方程式碼。

安裝

就一個連結。

  1. 複製倉庫網址:
https://github.com/Joker2377/dsh-plugin-devkit
  1. 在 DSH 側邊欄打開 Plugins,把網址貼進安裝欄位,按 Install。
  2. 重新載入 App。之後對話裡就有 plugin_scaffold、plugin_doctor、plugin_audit 與 plugin_inspect 可以用。

> [!IMPORTANT]
> 貼倉庫首頁網址。https://github.com/.../tree/main 這類頁面網址會被拒絕(a URL must point at a git repository or a tarball)。

不安裝也能用:取得原始碼後 node scripts/cli.mjs doctor &lt;目錄&gt; 或 node scripts/cli.mjs audit,CLI 與工具走同一個核心。

使用

開一個新外掛

跟 agent 說「用 plugin_scaffold 開一個 dsh-foo」,它會問你名稱與目錄,然後:

產出的檔案 為什麼在那裡
package.json dsh.bundle.patch 是 DSH 認得這個 bundle 的唯一入口;engines.dsh 決定相容性
cordis.patch.yml 載入 profile 時插入的那一列:entry id、模組名、config
lib/index.js 匯出 name / inject / apply,把工具掛上去
lib/tools.js 工具定義;defineTool 匯入失敗時退回恆等實現,所以純 node 也載得起來
test/bundle.test.mjs 假 ctx 驗證 apply() 真的註冊了工具、工具真的跑得動
README.md 給使用者的說明(安裝/使用/疑難排解),不是給維護者的工作日誌
LICENSE、.gitignore、.github/workflows/test.yml 交出去之前你不想補的那些

外掛不給模型呼叫、只聽 host 的 session 事件(工作列、通知、紀錄)時,加 kind: events(CLI:--kind events)。這時沒有 lib/tools.js、沒有 inject、也不宣告 dsh peer;lib/index.js 是純函式 observe() 加上 ctx.on(&#x27;session/event&#x27;) 接線,停用時會撤掉 handler,測試也驗這一點。

接下來四步:

cd dsh-foo
npm test                       # 不需要安裝依賴
node scripts/cli.mjs doctor .  # 或叫 agent 跑 plugin_doctor
  1. 把 lib/tools.js 裡的範例工具換成你真的要的工具。
  2. README 的安裝段補上你的倉庫網址,git init 之後推上去,就能用同樣的方式安裝。

檢查一個外掛

plugin_doctor(dir: &quot;C:/path/to/dsh-foo&quot;, hostVersion: &quot;0.2.1-rc.5&quot;)

沒給 hostVersion 就不做相容性判定(devkit 不去猜你跑的是哪一版 DSH)。

等級 意思 會擋安裝嗎
error 結構上不可能載入:沒有 manifest、main 指到不存在的檔、patch 沒有 insert、入口沒有 apply 會
warn 載得進去但會踩到:patch 的 name 與套件名不符、README 沒安裝段、沒有 LICENSE、相容性範圍不接受執行中的版本 不一定
info 少了會可惜:沒有 CI、keywords 沒帶 dsh-plugin 不會

檢查的項目:manifest(name / version / type / main 與 exports 的目標檔 / files 覆蓋範圍 / peerDependencies)、patch(insert id 合法性與重複、模組名)、入口(name / apply / 與套件名是否一致、Config 是否為 standard-schema)、engines.dsh 上限是否放行下一版 prerelease、文件(README 安裝段、LICENSE)、測試與 CI。全部唯讀。

命令列

dsh-plugin-devkit scaffold dsh-foo --desc &quot;一行說明&quot; --author &quot;你的名字&quot;
dsh-plugin-devkit scaffold dsh-foo --dry-run      # 只看會寫什麼
dsh-plugin-devkit doctor . --host-version 0.2.1-rc.5
dsh-plugin-devkit doctor . --json                 # 給腳本用
dsh-plugin-devkit events  --type turn/end   # 見「用真實事件重現」

結束碼(scaffold/doctor):0 通過、1 有 error、2 指令本身跑不起來(參數錯、目錄讀不到)。events 成功時回 0;參數錯、檔案讀不到、frame 截斷或損壞時回 2。audit 的結束碼見下一節。

裝完之後:plugin_inspect

application=applied 只代表安裝完成。dsh-repo-ops 0.1.1 安裝成功,載入時才失敗,九個工具都沒註冊。plugin_inspect 把三個來源對起來:profile 的宣告、磁碟上的檔案、Cordis loader 的即時狀態。

跟 agent 說「用 plugin_inspect 看 dsh-foo 有沒有載入」,或不指定名稱檢查整個 profile。

state 意思
active 正在執行
failed 載入失敗,報告附上錯誤訊息
disabled 已安裝但停用
loading 還在載入
not-loaded 在 bundle 清單裡,但 loader 沒有執行中的 entry,通常要重啟
not-selected 已安裝,但不在 bundle 清單裡
not-installed 宣告了但檔案不在,或 link: 目標被搬走
unknown 讀不到 loader,只做了靜態檢查

CLI 不在 Host 裡,所以只有靜態檢查,state 都是 unknown:

dsh-plugin-devkit inspect                       # 整個 desktop profile
dsh-plugin-devkit inspect dsh-foo --host=0.2.2-rc.1
dsh-plugin-devkit inspect --profile= --json

有 error 時結束碼是 1。全程唯讀,也不會執行任何 bundle 的程式碼。

用真實事件重現:events

事件型外掛的 bug 常常是「假事件綠、真 host 壞」:假事件少了欄位,或形狀不同(例如真實 tool/call 的 arguments 是 JSON 字串)。events 從 session log 取出真實事件,存成測試 fixture:

dsh-plugin-devkit events ~/.dsh/sessions///session.v4.jsonl.zstd \
--type turn/start,turn/end --from 120 --to 260 &gt; test/fixtures/issue-12.json

測試讀這個檔,把每個事件依序餵給 observe(),斷言出事的那個狀態。預設依鍵名遮蔽:只有白名單鍵(type、kind、role、name、callId 這類型別標籤與 id)的字串,而且看起來像識別字時才保留;其他字串一律換成 `,包括對話、檔案內容、路徑和網址。工具參數(arguments)是 JSON 字串,裡面的字串一律遮蔽(白名單不適用),只留鍵、數字與布林,結果仍可JSON.parse。鍵名、數字、布林與巢狀結構原樣保留。--raw` 保留原文,但這種輸出不要 commit。

> [!WARNING]
> 白名單是從 2026-11-09 的真實 log 整理的。鍵名本身不會遮蔽,白名單鍵的值也可能帶有使用者自訂的名稱。commit 前要看過 fixture。

這些規則是從哪來的

不是你我的口味,是 DSH 安裝時的實際行為:

規則 出處
有 engines.dsh 就只看它,@deepseek-ai/dsh* peers 一律不參與 unmetRequirements(),@deepseek-ai/dsh-app-boot
沒有 engines.dsh 時,每個 @deepseek-ai/dsh / @deepseek-ai/dsh-* peer 都要接受執行中的版本 同上
prerelease 也參與範圍比較(0.3.0-rc.5 落在 &lt;0.3.0 內) semver.satisfies(..., { includePrerelease: true }),同上
patch 沒有 insert 就不會插入那一列,等於沒裝 plugin_manager 的 bundle 檢查
匯出 Config 就必須是 standard-schema;沒匯出時 config 原樣傳給 apply resolveConfig(),@deepseek-ai/cordis

安裝前核查:plugin_audit

plugin_doctor 回答的是「你自己寫的 bundle 少了什麼」;plugin_audit 回答的是另一個問題:這個別人寫的套件,現在裝進我的 profile 可不可以。兩件事都會在安裝時咬你,但檢查的東西完全不同 —— doctor 看檔案結構,audit 看 registry 上的供應鏈訊號。

什麼時候用

  • 要把一個沒看過的 npm 套件或 GitHub 外掛貼進 Plugins 之前。
  • 要升級一個已經在用的外掛,但這次版本落差很大之前。
  • 同事丟來 @scope/name 或 github:owner/repo,你想先知道它會不會被 DSH 的相容性判定擋掉。

怎麼呼叫

跟 agent 說「用 plugin_audit 核查 lodash@4.17.21」,或指定細節:

參數 必填 說明
spec ✔ lodash@4.17.21、dsh-foo-bar@^0.2、@scope/name@1.0.0-rc.1、github:owner/repo、./path
registry 換 mirror 時用;預設 https://registry.npmjs.org
profileDir 版本撞車要比對的 profile;預設是桌面 profile
hostVersion 相容性判定的基準;沒給就讀環境變數 DSH_VERSION,再沒有就明說這一項沒檢查
format text(預設,給人讀)或 json(完整 AuditResult,給腳本)

不開對話也能跑:

node scripts/cli.mjs audit lodash@4.17.21
node scripts/cli.mjs audit dsh-foo-bar@^0.2 --host=0.2.1-rc.5 --json
node scripts/cli.mjs audit github:owner/repo --registry=https://registry.npmmirror.com

結束碼就是契約:0 判 allow、1 判 block、2 參數或執行環境有問題(例如沒給 spec)、3 判 not-audited(沒有跑 registry 側檢查,不能當成通過)。

結論怎麼讀

第一行是受檢的 spec,第二行直接給結論 —— 可以安裝、不可以安裝 — 第一個阻斷原因,或 未核查(github:/本地目錄這類 spec 沒有 registry 側資料可查;這不是通過,CLI 以 exit 3 表示);第三行是 error/warn/info 的數量與 已檢查:… 清單。那份清單是誠實條款:沒列到的項目代表這次沒跑,例如沒給 hostVersion 就沒有相容性判定,報告不會把它算成通過。

findings 依嚴重度排序,每條都有可 grep 的 code、一行訊息,→ 後面是具體做法:

代碼 代表什麼
audit/integrity-mismatch、audit/dist-missing 下載到的 tarball 與 registry 宣告的雜湊對不上,或 dist 缺欄位
audit/install-script 套件會在安裝時執行 preinstall/install/postinstall —— 包括 tarball 內建(node_modules/…)的依賴,根 manifest 乾淨不代表安全
audit/patch-js、audit/patch-missing dsh.bundle.patch 含 !!js(載入 profile 時會執行),或 manifest 指向的 patch 檔不存在
audit/tarball-unreadable tarball 解不開:腳本與二進位都無法確認,所以直接阻擋(integrity 仍照原始位元組算)
audit/manifest-mismatch tarball 內的 package.json 版本/名稱與 registry 不一致,本身就是可疑訊號
audit/profile-source profile 內同名依賴來自 link:/github:,沒有版本範圍可比,改以人工確認
audit/profile-unparsable、audit/tarball-offhost 候選寫的範圍讀不懂所以略過比較;或 tarball 由 registry 以外的 CDN 主機提供(info,不是錯)
audit/compat-undeclared 套件沒有宣告 engines.dsh 也沒有 DSH peer:沒有任何相容性承諾(不是錯,是風險)
audit/compat-unmet engines.dsh 或 @deepseek-ai/dsh* peers 不接受你現在跑的版本
audit/profile-collision profile 已裝的版本不滿足它的依賴範圍
audit/version-missing registry 沒有這個套件,或沒有符合範圍的版本
audit/provenance-missing 沒有 npm provenance 簽章(warn,不阻擋)
audit/dep-surface、audit/binding-gyp、audit/binary 依賴面太大、要現場編譯、或帶原生二進位檔

warn 不會阻擋安裝,但要當成「我知道這件事,而且我接受」。audit/githead-ok 只代表 gitHead 欄位存在,沒有向 GitHub 核對過那個 commit;報告的 evidence 也照實標成未核對。

判 block 之後怎麼辦

  1. 先看 verdict.blocking 的第一個代碼,那就是結論的理由。
  2. 供應鏈類的 error(integrity-mismatch、install-script、tarball-unreadable、version-missing)沒有「再試一次就好」的解法:換版本、換來源,或不裝。決定要裝,就等於接受安裝期會執行對方指定的程式碼。
  3. 相容性類的 error(compat-unmet)先分清是範圍寫死還是你跑錯 Host 版本;plugin_doctor 對本地目錄用的是同一套判定,兩邊結論應該一致。
  4. 撞車類(profile-collision)先處理既有版本,別讓兩個不相容的版本同時留在同一個 profile。
  5. 決定照裝時把 --json 的報告留著 —— 出事時那是唯一能回溯「當初看到什麼」的證據。

它的界限

plugin_audit 是唯讀的:不寫檔、不安裝、不執行套件程式碼、不 spawn npm、不改 profile;唯一的網路行為是讀 registry 與它回報的 tarball。它不是沙箱:allow 只代表上面那幾項供應鏈訊號都對得上,不代表程式碼沒有惡意行為 —— 真正的隔離要另外做。

疑難排解

症狀 可能原因 處理
DSH 沙箱裡 npm test 噴 spawn EPERM 預設的測試 runner 會為每個檔案開子行程,沙箱擋掉了 改跑 npm run test:sandbox,或直接 node test/bundle.test.mjs
CI 上 npm test 噴 ERR_UNSUPPORTED_DIR_IMPORT node --test test/ 把目錄當成單一測試檔去 spawn 用這個 repo 的寫法:node --test &quot;test/**/*.test.mjs&quot;
plugin_scaffold 寫到不是你想要的目錄 相對路徑以 host 行程的 cwd 為基準,不是你 session 的工作目錄 傳絕對路徑;回覆一定會印出實際用掉的絕對路徑
doctor 說 patch「有 N 處讀不懂」 它只懂 insert / override 的常見寫法 照它指的行號人工看過那幾行
安裝時被 incompatible-version 拒 宣告的範圍不接受執行中的 DSH 先跑 plugin_doctor(hostVersion: ...) 看是哪一條,再決定改範圍還是改支援的版本
產出的工具在 DSH 裡沒出現 沒有重載 App,或 patch 沒插入那一列 重載;用 plugin_doctor 確認 patch 有 insert
audit 回「未核查」且 exit 3 這個 spec 是 github: 或本地目錄,registry 側沒有 integrity/provenance 可查 要核查就指向已發佈的 registry 版本;本地目錄改用 plugin_doctor。這不是通過
audit 說 version-missing 套件不存在,或你給的範圍內沒有版本(例如只有 prerelease,而範圍沒寫到) 先 npm view versions 對一次;或把範圍寫成完整三段
audit 說 provenance-unreachable attestation 服務暫時不可用,不是「沒有簽章」 稍後重跑;不要把它當成有簽章

運作原理

  • 核心是純函式。 scaffold.js 只回傳「檔案路徑 → 內容」,checks.js 只吃「路徑 → 內容」的快照,semver.js 與 yaml.js 沒有任何 IO;spec.js 只解析字串,tar.js 只解一個 Buffer,profile.js 只讀一個目錄,audit.js 把 fetch 與 registry client 當參數注入。所以規則可以脫離 DSH 測試,工具與 CLI 也不可能各說各話。
  • 工具只做接線。 tools.js 把純核心接到檔案系統:寫入前檢查既有檔案、回報絕對路徑、把結果整理成給人看的文字。
  • 不猜版本。 相容性判定需要 hostVersion,拿不到就明說略過,不從環境裡找一個看起來像版本的東西。

開發

npm test                 # 不需要安裝依賴,也不需要 DSH(全部離線)
npm run test:sandbox     # 同一套測試,不開子行程(在 DSH 沙箱內用這個)
node scripts/cli.mjs doctor .                  # 對自己跑一次(dogfood)
node scripts/cli.mjs audit lodash@4.17.21      # 真的連 registry(需要網路)

CI 在 ubuntu-latest 與 windows-latest 上跑 Node 22 與 24:先對入口與 audit 模組做 node --check,再 npm test(全部離線,不連 registry),最後對本 repo 跑一次 doctor .。

已知限制

  • 沒有 watch/熱重載。 改完外掛還是要重載 App 才看得到。
  • doctor 不讀 registry。 plugin_doctor 只看本地檔案:不查 npm、不驗 tarball 雜湊、不掃 install 腳本。需要那些判定的場合用 plugin_audit —— 它會連 registry,但仍然不裝、不執行對方程式碼。
  • YAML 只懂一部分。 讀的是 patch 實際在用的方言(insert / override 的常見寫法);複雜的錨點、!!js、多行字串會落在「讀不懂」而不是被猜測。
  • semver 不是完整實作。 支援比較子、^、~、||、*、部分版本(1、1.2、1.x)與 hyphen range(1.2.3 - 2.0.0);build metadata 直接忽略。範圍寫到它讀不懂時會明說「無法比較」,不會默默判定不相容或相容。
  • audit 只查供應鏈訊號,不查惡意。 它證明的是「雜湊對得上、安裝期沒有未經檢視的腳本、宣告的相容性成立」,不是「這段程式碼安全」。真正的隔離要靠最小權限與可丟棄的環境。
  • 骨架的範例工具是佔位。 dsh-foo_hello 只是證明接線通,不改它就是一個沒用的工具。
  • Config 只做靜態判斷。 doctor 與 inspect 不執行被檢查的程式碼,所以只能判定字面物件;zod schema 或重新匯出的 Config 會標成未驗證。
  • plugin_inspect 列不出工具名稱。 它回報的是 entry 的載入狀態,不是每個工具有沒有註冊。
  • 不代你安裝、不改 profile、不建 repo。 它只寫檔案。

常见问题

9 问
答案由本站依据条目字段整理,不引用上游原文
dsh-plugin-devkit 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:Joker2377/dsh-plugin-devkit#v0.5.1` 即可。对应的 npm 包名是 `dsh-plugin-devkit`。

dsh-plugin-devkit 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-plugin-devkit 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-plugin-devkit 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-plugin-devkit 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.2-rc.1。

dsh-plugin-devkit 需要什么运行环境?

Node.js >=22.19;需要同时安装 @deepseek-ai/dsh-tools@>=0.1.0-rc.1 <0.2.0-0 || >=0.2.0-rc.1 <0.3.0-0。环境不满足时安装会失败,建议先确认本机版本。

dsh-plugin-devkit 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-plugin-devkit 有哪些功能?

一键生成可运行的外挂骨架、安装前诊断结构与兼容性、审计已发布套件的供应链、同一核心逻辑提供 CLI 用法、纯函数核心,全部离线可测。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

2 条
不同作者的仓库分开列,请确认你要装的是哪一个
安全与权限
按星标排序,可作替代方案

dsh-infinite-gen-4

dsh-infinite-gen-4

DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投

未标注验证等级 1,611 星

cc-safety-net

cc-safety-net

为 DeepSeek Harness 等编码 CLI 提供执行前防护,在工具调用前拦截破坏性 Git 与文件系统命令,并阻止读取 SSH 密

未标注验证等级 1,591 星

dsh-wallpaper-engine

dsh-wallpaper-engine

DSH plugin 将本机 Wallpaper Engine 壁纸变为网页界面背景,支持视频、网页、场景壁纸渲染,并配以 iOS 液态玻璃

L5 · 运行验证通过 1,018 星

api-relay-audit

api-relay-audit

DSH plugin 本地安全审计工具,检测 AI API 中继与 LLM 代理的提示注入、模型替换、工具调用改写、SSE 异常及 Web3

L5 · 运行验证通过 875 星

hol-guard

hol-guard

L4 · 沙盒安装通过 828 星

sandbase-harness

sandbase-harness

SandBase Harness 是本地优先的 AI Agent 运行时,提供沙箱会话、MCP 工具、记忆、凭据管理与审计回放,并内置控制台

L4 · 沙盒安装通过 708 星

Joker2377 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-11-10。