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

公众号发文 xiaoziwenjie-code/dsh-plugin-wechat-publisher

DeepSeek Harness
xiaoziwenjie-code8 天前有提交已提供中文文档扫描:含敏感能力

把 Markdown 文章和封面图一键推送进公众号草稿箱

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add xiaoziwenjie-code/dsh-plugin-wechat-publisher
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 发起网络请求
    src/index.ts:49
    const res = await fetch(url, {
  • 读取密钥环境变量
    src/index.ts:321
    const appSecret = process.env.WECHAT_APP_SECRET
  • 读取本地文件
    src/index.ts:343
    coverStat = await stat(args.coverPath)
  • 读取本地文件
    src/index.ts:353
    const coverBytes = await readFile(args.coverPath)
  • 读取本地文件
    src/index.ts:370
    md = await readFile(args.markdownPath, 'utf-8')
  • 读取本地文件
    src/index.ts:398
    bytes = readFileSync(abs)
扫描于 2026/10/31(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

微信公众号发布插件 for DeepSeek Harness — 把 Markdown + 封面直推草稿箱,纯 Node 零依赖

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-wechat-publisher 微信公众号发布插件 — 给 DeepSeek Harness (dsh) 装上「发文」这项能力。 把一篇 Markdown 文章 + 一张封面图,直推到公众号草稿箱。纯 Node.js 实现,零第三方依赖,只用微信官方 /cgi-bin 接口。 它解决什么问题 智能体能写文章,但发布这一步一直卡在「人工复制粘贴」上。公众号后台没有开放 Markdown,图片要一张张传,封面还要单独设。 这个插件把这条链路收成一个工具调用: Markdown + 封面图 ──► wechat_publish_article ──► 草稿箱 模型只要说一句「把这篇文章发到公众号」,剩下的 token 获取、图片上传、正文转 HTML、建草稿,全部在这一个 tool 里完成。
展开完整文档(README 剩余 1 节)
dsh-plugin-wechat-publisher

微信公众号发布插件 — 给 DeepSeek Harness (dsh) 装上「发文」这项能力。

把一篇 Markdown 文章 + 一张封面图,直推到公众号草稿箱。纯 Node.js 实现,零第三方依赖,只用微信官方 /cgi-bin 接口。

它解决什么问题

智能体能写文章,但发布这一步一直卡在「人工复制粘贴」上。公众号后台没有开放 Markdown,图片要一张张传,封面还要单独设。

这个插件把这条链路收成一个工具调用:

Markdown + 封面图 ──► wechat_publish_article ──► 草稿箱

模型只要说一句「把这篇文章发到公众号」,剩下的 token 获取、图片上传、正文转 HTML、建草稿,全部在这一个 tool 里完成。

安装

dsh 侧(pnpm 必需——npm 在这一大坨 @deepseek-ai/dsh-* 依赖上会 OOM)
corepack enable --install-directory ~/.local/bin pnpm

从本地目录装进 profile(注意:在插件父目录执行)
dsh plugin --profile web add ./dsh-plugin-wechat-publisher
dsh --profile web

看到这一行就说明装载成功:

[xiaoziwenjie-code-wechat-publisher] 已就绪 — 工具 wechat_publish_article

配置

凭据只从环境变量读,不落盘、不进日志、不出现在工具返回里。

export WECHAT_APP_ID=wx______________
export WECHAT_APP_SECRET=______________

两件事必须在公众号后台先做好:

1. IP 白名单 —— 设置与开发 → 基本配置 → IP 白名单,把运行主机的外网出口 IP 加进去。
这是最常见的失败原因,errcode=40164 就是它。
2. 接口权限 —— 订阅号需要认证才有 draft/add 和 freepublish 权限。

本插件会绕过 HTTP_PROXY / HTTPS_PROXY 调用微信接口。因为微信校验的是真实出口 IP,走代理必然对不上。

用法

{
"markdownPath": "/path/to/article.md",
"coverPath": "/path/to/cover.png",
"title": "文章标题", "author": "作者名", // 可选 "digest": "摘要,不填取首段", // 可选 "mode": "draft_only" // 默认,或 full_publish }

返回:

{
"ok": true,
"stage": "done",
"mode": "draft_only",
"mediaId": "xxxxxxxx",
"publishId": "",
"articleUrl": "",
"title": "文章标题", "error": "" }

两种模式

| 模式 | 行为 | 什么时候用 |
| draft_only(默认) | 只调 draft/add,落到草稿箱 | 推荐生产默认。你还能在后台检查、微调、手动发 |
| full_publish | 额外调 freepublish/submit | 确认能接受 API 发布的差异时 |

⚠️ freepublish 不等于手动点发布。 它能返回 publish_id 和 article_url,但文章在公众号首页的实际可见性,和后台手动发布的表现并不总是一致。历史上有发布成功但首页不显示的情况。所以默认走 draft_only。

失败处理

不抛异常,永远返回结构化结果。stage 告诉你卡在哪一步:

| stage | 含义 | 常见原因 |
| token | 拿 access_token | appid/secret 错(40013)、IP 不在白名单(40164) |
| cover | 封面上传 | 图片超 10MB、格式不支持 |
| content | 正文转换 | Markdown 文件读不到 |
| draft | 建草稿 | 标题过长、正文格式被拒 |
| publish | freepublish | 草稿已存好,只是提交发布失败——去后台手动发即可 |

full_publish 在 publish 阶段失败时,mediaId 仍然有效,文章安全躺在草稿箱里。

实现约束

- 正文 HTML 只输出微信不删的标签:p/h1-h6/ul/li/blockquote/strong/em/code/a/img。微信会剥掉 ,所以样式全部内联交给平台。
- 图片用真格式校验,不靠扩展名猜 —— 微信按文件头识别,扩展名和实际格式不符会直接拒。
- 封面走 material/add_material(永久素材,返回 thumb_media_id),正文图走 media/uploadimg(返回临时 URL),两条路径用途不同不能混用。
- 30 秒请求超时,避免插件卡死拖住整个 session。

开发

pnpm install
npm run build # tsc → dist/index.js (pure ESM)
npm run typecheck

无凭据自检(验证注册和错误分支,不需要真号):

node -e "
import('./dist/index.js').then(m => {
const reg = new Map();js
m.apply({ tools: { register(t){ reg.set(t.name,t); return ()=>{} }, get(n){ return reg.get(n) } } });
reg.get('wechat_publish_article')
.execute({ markdownPath:'/tmp/a.md', coverPath:'/tmp/c.png', title:'T' })
.then(r => console.log(JSON.stringify(r)));
});
"

预期输出 stage: "token" + missing WECHAT_APP_ID。

已知坑

1. @deepseek-ai/dsh-tools 的 npm latest 是过期的 0.0.1-rc.1,正确版本在 next tag。本包已锁 0.2.1-rc.2,别手动 npm i 覆盖。
2. pnpm 默认拦截构建脚本,装 dsh 全家桶时要在 pnpm-workspace.yaml 写 onlyBuiltDependencies。
3. 8GB 内存机器上 npm 装 dsh 会被静默 OOM 杀掉,没有任何错误日志,进程直接消失。用 pnpm。

License

MIT
预览分享卡片长什么样 ↓xiaoziwenjie-code/dsh-plugin-wechat-publisher
分享 · DeepSeek Harness Hub
xiaoziwenjie-code/dsh-plugin-wechat-publisher

把 Markdown 文章和封面图一键推送进公众号草稿箱

回到顶部