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

朋友圈助手 zhuiming2333/dsh-wechat-moments

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

在对话里读朋友圈、发图文动态并回复评论

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

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

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

状态速览

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

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

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 23 处,展示前 14 条)
  • 读取本地文件
    plugin/lib/index.js:42
    if (!existsSync(file)) continue
  • 读取本地文件
    plugin/lib/index.js:43
    return JSON.parse(readFileSync(file, 'utf8').replace(/^ FEFF/, ''))
  • 发起网络请求
    plugin/lib/index.js:83
    return fetch(url, {
  • 读取本地文件
    plugin/lib/index.js:165
    if (!existsSync(root)) return
  • 读取本地文件
    plugin/lib/index.js:168
    entries = readdirSync(root)
  • 读取本地文件
    plugin/lib/index.js:172
    return statSync(entry.path).isDirectory()
  • 读取本地文件
    plugin/lib/index.js:179
    return { ...entry, mtime: statSync(entry.path).mtimeMs }
  • 删除本地文件递归
    plugin/lib/index.js:190
    rmSync(entry.path, { recursive: true, force: true })
  • 写入本地文件
    plugin/lib/index.js:236
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    plugin/lib/index.js:238
    writeFileSync(join(dir, 'meta.json'), JSON.stringify(meta, null, 2), 'utf8')
  • 写入本地文件
    plugin/lib/index.js:239
    writeFileSync(join(dir, 'status.json'), JSON.stringify({ state: 'queued', exitCode: 0, message: '', updatedAt: new Date().toISOString() }), 'utf8')
  • 写入本地文件
    plugin/lib/index.js:245
    writeFileSync(join(dir, 'args.json'), JSON.stringify({ ...args, skillDir: config.skillDir }, null, 2), 'utf8')
  • 执行外部命令固定命令
    plugin/lib/index.js:263
    const child = spawn(
  • 写入本地文件
    plugin/lib/index.js:269
    writeFileSync(join(dir, 'status.json'), JSON.stringify({
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

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

微信朋友圈插件 + 技能包,给 DeepSeek-Harness (DSH) 用:读时间线/看评论/发朋友圈/回评论,写走桌面 UI 自动化

README

由 DeepSeek 最新模型翻译生成
适用于 DSH 的 wechat-moments 开源地址:github.com/zhuiming2333/dsh-wechat-moments(MIT) 这里只是打包快照。最新版、issue、更新都以仓库为准。 给 DeepSeek-Harness(DSH)用的微信朋友圈插件 + 技能包。 装完你能在对话里直接说: - 「看看我朋友圈有什么」→ 读时间线 - 「发条朋友圈,配这张图」→ 自动点微信 UI,发出去 - 「有没有人评论我」→ 列出待回复评论 - 「回一下那条评论」→ 自动定位、输入、发送 发帖和回复走桌面 UI 自动化(PowerShell + Win32 + Windows OCR),读数据走 WeChatAgent 的 reader API(解密后的本地 SQLCipher 库)。
展开完整文档(README 剩余 1 节)
适用于 DSH 的 wechat-moments

开源地址:github.com/zhuiming2333/dsh-wechat-moments(MIT)

这里只是打包快照。最新版、issue、更新都以仓库为准。

给 DeepSeek-Harness(DSH)用的微信朋友圈插件 + 技能包。

装完你能在对话里直接说:

- 「看看我朋友圈有什么」→ 读时间线
- 「发条朋友圈,配这张图」→ 自动点微信 UI,发出去
- 「有没有人评论我」→ 列出待回复评论
- 「回一下那条评论」→ 自动定位、输入、发送

发帖和回复走桌面 UI 自动化(PowerShell + Win32 + Windows OCR),读数据走 WeChatAgent 的 reader API(解密后的本地 SQLCipher 库)。

它长什么样

| 工具 | 做什么 | 走哪条路 |
| wechat_moments_feed | 读朋友圈时间线 | reader API(只读) |
| wechat_moments_comments | 列出待回复评论 | reader API(只读) |
| wechat_moments_post | 发一条带图朋友圈 | UI 自动化(30–90 秒,异步) |
| wechat_moments_reply | 回复某条评论 | UI 自动化(30–90 秒,异步) |
| wechat_moments_job | 查异步任务进度 | 本地 job 目录 |

发帖 / 回复是异步的:工具立刻返回 jobId,后台跑 PowerShell 脚本,再用 wechat_moments_job 轮询问结果。

安装

powershell -NoProfile -ExecutionPolicy Bypass -File .\setup.ps1

不需要手工改任何文件、填任何 token。 脚本会自己探测:

1. 扫盘找 WeChatAgent 的 workspace
2. 从 state\wechat-io-config.json 读 reader 地址和 token
3. 问 reader 要本账号 wxid
4. 给 reader-api.py 注入朋友圈只读路由
5. 装技能脚本到 ~\.dsh\skills\wechat-moments-post
6. 装插件到 ~\.dsh\profiles\desktop
7. 写共享配置 ~\.dsh\wechat-moments.config.json
8. 自检三项

装完重启 WeChatAgent、重启 DSH 就生效。

详细步骤和排错见 INSTALL.md。

前置条件

- Windows 10 / 11
- 微信 PC 版 4.1.x,已登录
- WeChatAgent 已安装,reader API 在 5031 端口活着
- DSH 桌面端至少启动过一次

设计要点(踩过坑的地方)

窗口尺寸不写死

发帖前把微信主窗口统一成 980×900(屏幕小时按工作区自动缩),所有坐标在运行时 GetWindowRect 现算。换一台分辨率不同的机器也能跑。

绿色「发表」按钮按连通域找,不按行找

按钮上是白字,白字会把绿色横条切成碎段 —— 按「最长绿色 run」扫永远扫不到,于是回退到猜坐标,就会点歪点到图片上。改成 4px 网格 + BFS 连通域,白字被网格跨过去。

相册窗口不属于 Weixin 进程

「我的朋友圈」相册是 CEF 渲染的,class 是 Chrome_WidgetWin_0,属于 WeChatAppEx 进程,标题还是「微信」。按「Weixin 进程 + Qt51514 class + 标题=朋友圈」过滤永远找不到。

资料卡是独立顶层窗口,有两种尺寸

328×335 和 492×503 都会出现。尺寸上限设窄了会把大卡滤掉,导致「以为卡没弹出 → 再点头像 → 把卡关掉」的死循环。

回复入口是「昵称右边、时间戳左边」那块空白

点昵称会弹个人资料卡(错),点时间戳没反应(错),点两者之间的空白才弹回复框。

安全闸:占位字必须对得上才发

回复框弹出后占位字是 回复 <显示名>。脚本拿它和目标显示名比相似度,不够就 一个字都不发、直接退出。宁可不回,也不能回到别人头上。

显示名 ≠ 数据库昵称

DB 里叫 真由理,界面上印的是备注名 南华。按 DB 昵称去界面找永远找不到,所以先调 /api/v1/contacts 拿 displayName 再定位。

永远不要发 Esc

按 Esc 会把微信整片窗口关掉,白屏重启,正在跑的流程全废。

DSH 在 Windows 作业对象里

spawn(..., {detached: true}) 的子进程一创建就被回收(spawn 报成功、进程从未运行)。
必须两层派发:spawn → powershell -Command → Start-Process。

目录结构

setup.ps1 一键安装(自动探测,无占位符) INSTALL.md 详细安装说明 + 6 类常见问题注意事项.md 使用前必读的坑 plugin/ DSH 插件 package.json cordis.patch.yml lib/index.js 5 个工具 + 异步 job 派发 lib/runner.ps1 调 skill 脚本的薄壳 reader/ 给 WeChatAgent 的 reader 补丁 patch-reader.py 幂等注入,锚点不匹配时拒绝写入 sns_routes.py 自包含的 SNS 只读路由 skills/wechat-moments-post/ PowerShell 技能脚本 wechat-moments-post.ps1 发帖 wechat-moments-reply.ps1 回复评论 moments-inbox.ps1 看有没有人评论 bili-share-to-moments.ps1 把 B 站视频发朋友圈 wx_ocr_probe.ps1 OCR 窗口文字 SKILL.md 技能说明(给模型看)

为什么读数据还要依赖 WeChatAgent

sns.db 用 SQLCipher 加密,密钥由 WeChatAgent 通过 Windows DPAPI 解出(decryptKey = "userdpapi:..."),再在它自己的 Python 进程里解密分页读取。

写(发帖 / 回复)完全不依赖它 —— 那是纯 UI 自动化。

想彻底去掉这个依赖,需要在 Node 里重做 SQLCipher 分页解密(PRAGMA key = "x'<key_hex><salt_hex>'",密钥 =
PBKDF2-HMAC-SHA512(passphrase, salt, 256000, 32))+ DPAPI 绑定。当前没做。

已知限制

- 正文短于 4 字的动态在相册里没法靠正文定位,脚本直接报错退出(不盲目滚动)。
- 界面已无但 DB 还有的评论:脚本会在详情页滚 8 段后放弃,不会错发。
- 评论者的显示名如果被 OCR 读成 1 个字(如「源」→「0」),定位会退化到按正文兜底。
- 依赖中文 OCR,非中文界面未测。

License

MIT
预览分享卡片长什么样 ↓zhuiming2333/dsh-wechat-moments
分享 · DeepSeek Harness Hub
zhuiming2333/dsh-wechat-moments

在对话里读朋友圈、发图文动态并回复评论

这是你的仓库?认领条目

回到顶部