一条命令把插件发布到 GitHub 并写好目录条目
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Gty2408/dsh-plugin-publish该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · market
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 34 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/1) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 21 处,展示前 19 条)
- 读取本地文件lib/index.js:46
const value = readFileSync(path, "utf8").trim(); - 读取本地文件lib/index.js:211
if (!existsSync(join(dir, "package.json"))) { - 读取本地文件lib/index.js:245
try { description = JSON.parse(readFileSync(join(dir, "package.json"), "utf8")).description; } catch { description = void 0; } - 读取本地文件lib/preflight.mjs:46
return { value: JSON.parse(readFileSync(path, "utf8")) }; - 读取本地文件lib/preflight.mjs:92
if (!existsSync(pkgPath)) { - 读取本地文件lib/preflight.mjs:118
if (!existsSync(patchPath)) { - 读取本地文件lib/preflight.mjs:128
const patchSource = readFileSync(join(dir, facts.patch.replace(/^ /, "")), "utf8"); - 读取本地文件lib/preflight.mjs:145
if (existsSync(p)) { clientPath = p; break; } - 读取本地文件lib/preflight.mjs:150
const source = readFileSync(clientPath, "utf8"); - 读取本地文件lib/github.mjs:197
try { text = readFileSync(join(current, ".gitignore"), "utf8"); } catch { text = void 0; } - 读取本地文件lib/github.mjs:202
for (const name of readdirSync(current)) { - 读取本地文件lib/github.mjs:207
try { isDir = statSync(full).isDirectory(); } catch { continue; } - 发起网络请求lib/github.mjs:237
return await fetch(url, { ...init, signal }); - 读取本地文件lib/github.mjs:443
const content = readFileSync(file); - 写入本地文件lib/github.mjs:519
writeFileSync(path, token, { mode: 0o600 }); - 删除本地文件lib/github.mjs:525
try { rmSync(path, { force: true }); } catch { } - 读取本地文件lib/cli.mjs:64
if (!existsSync(dir)) { - 读取本地文件lib/cli.mjs:71
try { return JSON.parse(readFileSync(join(dir, "package.json"), "utf8")).name; } catch { return void 0; } - 读取本地文件lib/cli.mjs:95
try { return JSON.parse(readFileSync(join(dir, "package.json"), "utf8")).description; } catch { return void 0; }
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 校验清单与包标识
- 创建仓库并上传目录树
- 写入插件市场目录条目
一条命令把 DSH 插件发布到 GitHub:校验清单和包标识、创建仓库、上传目录树、设置必需 topic,并写入插件市场目录条目。
README
由 DeepSeek 最新模型翻译生成dsh-plugin-publish
一条命令把 DSH 插件发布到 GitHub——创建仓库、上传目录树、设置必需的 topic,并写好 awesome-dsh-plugin 目录条目,供你提交 PR。
npx dsh-plugin-publish # publish the plugin in the current directory
为什么需要它
发布 DSH 插件要把四件事做对,而 harness 一件都不帮你做:
1. 清单结构。 awesome-list 的 CI 会拒绝任何 package.json 只声明 dsh.client 的仓库——它要求有 dsh.bundle,旁边还得有 cordis.patch.yml。这是最常见的拒绝原因。
2. 三个必须一致的标识符。 package.json 的 name、cordis.patch.yml 里那一行的 name,以及浏览器 bundle 里的 __ModuleLoader__.load({ id })。三者不一致,浏览器那一半就会静默地永不加载。
3. dsh-plugin topic。 硬性要求,CI 会检查。
4. 目录条目。 一个 YAML 文件,其中 description.en 含 : 时必须加引号,否则解析器会把它读成嵌套键。
这个工具在联网之前会先检查这四项,然后再上传。
展开完整文档(README 剩余 1 节)
dsh-plugin-publish
一条命令把 DSH 插件发布到 GitHub——创建仓库、上传目录树、设置必需的 topic,并写好 awesome-dsh-plugin 目录条目,供你提交 PR。
npx dsh-plugin-publish # publish the plugin in the current directory
为什么需要它
发布 DSH 插件要把四件事做对,而 harness 一件都不帮你做:
1. 清单结构。 awesome-list 的 CI 会拒绝任何 package.json 只声明 dsh.client 的仓库——它要求有 dsh.bundle,旁边还得有 cordis.patch.yml。这是最常见的拒绝原因。
2. 三个必须一致的标识符。 package.json 的 name、cordis.patch.yml 里那一行的 name,以及浏览器 bundle 里的 __ModuleLoader__.load({ id })。三者不一致,浏览器那一半就会静默地永不加载。
3. dsh-plugin topic。 硬性要求,CI 会检查。
4. 目录条目。 一个 YAML 文件,其中 description.en 含 : 时必须加引号,否则解析器会把它读成嵌套键。
这个工具在联网之前会先检查这四项,然后再上传。
它做什么
| 步骤 | 详情 |
| 预检 | 校验清单、三个标识符、topic 和测试 |
| 认证 | GitHub device flow——不用粘贴 token,不共享密码 |
| 创建 | 创建公开仓库(或复用已有仓库) |
| 上传 | 一次提交推送整棵目录树,保留目录结构 |
| Topic | 设置 dsh-plugin 及相关 topic |
| 目录 | 写出 <owner>__<repo>.yml,供 awesome-list 提 PR |
安全护栏
- 默认 dry run 吗? 不——但 --dry-run 会校验并打印计划,不碰网络。
- 绝不 force-push。 如果分支已有提交,它会拒绝,除非传入 --force,而且会先展示哪些内容会被覆盖。
- 绝不发布密钥。 匹配常见凭据模式的文件会被报告并跳过。
- token 处理。 device-flow token 写到仓库外的 0600 文件,运行结束即删除。绝不打印。
- 吊销提醒。 每次运行结束都会告诉你到哪里吊销访问权限。
安装
作为 DSH 插件——在 harness 内加一个 /publish-plugin 命令,包办全部工作:
dsh plugin --profile desktop add github:Gty2408/dsh-plugin-publish
然后,在任意会话里:
/publish-plugin # validate the plugin in the workspace
/publish-plugin --push # validate, then publish it
/publish-plugin ./my-plugin --push --category ui
token 从 ~/.dsh/.github-token 读取(带 repo scope 的 classic token),或从插件的 token 配置读取。
作为独立命令行工具,在 harness 之外使用:
npx dsh-plugin-publish ./my-plugin --token <token> --yes
npx dsh-plugin-publish --help
两种认证方式
| 方式 | 何时使用 |
| 设备流(默认) | 交互式。打印一个短代码,你在浏览器里授权。不用粘贴 token。 |
| --token | 非交互式,或者 github.com 连不上但 api.github.com 能用时。 |
设备流访问 github.com;API 调用访问 api.github.com。
这两个主机的可达性可能不同,所以才有了 token 这条路。
插件命令做什么
/publish-plugin [directory] [--push] [--repo name] [--category name]
不带 --push 时,它只校验并打印将要提交的目录条目。
带 --push 时,它先校验,然后创建仓库、上传目录树、设置必需的 topic,并写入目录条目文件。
校验始终先跑,而且不碰网络,所以清单有问题不会把仓库发布到一半。
安全护栏
- 任何网络操作之前先校验。 清单有问题就在本地中止。
- 绝不 force-push,除非配置里设了 force: true。
- 绝不发布密钥。 匹配凭据模式的文件会被报告出来。
- 报告部分进度。 中途失败会留下一个仓库,所以输出会说明已经发生了什么。
- token 处理。 设备流 token 写入仓库外一个 0600 文件,运行结束时删除。绝不打印。
- 吊销提醒。 每次运行结束都会指向吊销页面。
已知限制
- repo scope 不能删除仓库 —— 那需要 delete_repo。所以工具从不提供清理;删除是手动步骤。
- 目录条目写在插件旁边,不会提交:提交它是对 awesome-dsh-plugin 发 PR,工具不会替你开。
- 目标仓库必须至少存在 1 天,那个 PR 才能通过 CI。
要求
- Node.js 20+
- 一个 GitHub 账号
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Gty2408/dsh-plugin-publish
一条命令把插件发布到 GitHub 并写好目录条目
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目