Asia/Shanghai
ProjectsMarch 17, 2026

wechat-mp-publisher

image
最初的 mj-wechat 是我自己的公众号发布流程。它知道本地文章目录、密钥管理器记录和具体账号,适合个人自动化,但不适合直接公开。 wechat-mp-publisher v2 把可复用能力重新拆开:npm CLI 负责 Skill 安装、本地校验和沙箱预览,不读取凭证也不调用微信 API;预览可以加载已经上传到微信 CDN 的图片。Agent Skill 只在用户确认后进入微信 API 草稿流程。个人账号信息不进入公共仓库或 npm 包。
负责什么明确不做什么
本地 CLI安装受管 Skill、校验微信 HTML、启动沙箱预览不读凭证,不调用微信 API
Agent Skill上传微信素材、创建待审核草稿不自动发布,不绕过用户确认
本地预览服务只监听 127.0.0.1,并使用随机会话路径与 Host 校验。文章在禁用脚本、表单和 fetch 连接的沙箱 iframe 中渲染;预览仅允许文章目录下的本地图和 HTTPS 微信 CDN 图片。校验器会阻止脚本、事件属性、javascript: URL、不安全的外部图片和不稳定的微信 HTML 写法。 默认安装到共享 Agents 目录:
Bash
npx wechat-mp-publisher@latest install --target agents
也可以选择 opencodeclaudecodexall。安装器拒绝覆盖非受管目录与符号链接,卸载也只删除由本包管理的安装。 发布流程先在本地停止一次:
Bash
npx wechat-mp-publisher@latest validate article.html
npx wechat-mp-publisher@latest preview article.html
用户核对标题、摘要、图片与预览后,Agent 才能上传素材并调用 draft/add。最终手机预览与发布始终留在微信公众平台后台。 上传素材并替换本地图后,还要通过最终门禁:
Bash
npx wechat-mp-publisher@latest validate article.html --final
这次升级不是把私人脚本原样打包,而是重新定义公共边界:
  • 安装方式从手工复制变成跨 Agent 的受管安装。
  • 微信兼容性检查从经验提示变成可重复执行的校验器。
  • 本地预览从直接注入 HTML 改成有 CSP 与 sandbox 的隔离渲染。
  • 远程写入前增加明确的人类确认点。
  • AppID、AppSecret、账号和个人路径全部留在用户自己的运行环境。
完整安装命令、真实校验结果和安全边界可在独立产品页查看。

Related projects

JumpOTP

JumpOTP

面向授权 SSH/JumpServer 会话的按需 TOTP 助手。仅在严格匹配提示后调用已解锁的 Bitwarden CLI,每条连接最多自动提交一次,并保留可见手输回退。
Codex Doubao Pets

Codex Doubao Pets

六个可以直接安装到 Codex Desktop 的豆包桌宠。用真实角色图完成选择,用一条 npm 命令完成安装。
grill-loop

grill-loop

让循环跟着工作走的轻量 Agent Skill。显式调用、按需串联 grilling、deep-grill、OpenSpec 与相关专家能力,不增加固定阶段、hooks 或第二套状态。
Slash Saver

Slash Saver

一个只为物理斜杠键做一件事的原生 macOS 工具:在原始按键进入当前应用前,切到用户指定的 ASCII 输入源。
deep-grill

deep-grill

让 Agent 先拷问自己的 Agent Skill。自主调查方案每条分支、反驳自己的答案,只把真正主观的分歧一次性汇总给用户确认,确认前不动手实现。
Mingjian AI Services

Mingjian AI Services

A focused collaboration entry for teams moving from AI ideas to working products, Agent systems, and operable business workflows.
opencode-sub2api-haiku-fix

opencode-sub2api-haiku-fix

A focused OpenCode plugin that fixes Claude Haiku extra-usage failures through Sub2API while preserving thinking and leaving Sub2API, OpenCode, and OMO untouched.
opencode-metrics

opencode-metrics

OpenCode TUI 的分会话侧边栏指标插件。按 sessionID 记录速度、TTFT、token、缓存、计时,只显示你当前 attach 的会话,而不是 serve 模式下的全局汇总。
opencode-plugin-fixes

opencode-plugin-fixes

Archived OpenCode guardrail experiment. The final source tree covers four narrow tool-call repairs; no npm package was ever published.
opencode-vibe-island-plugin

opencode-vibe-island-plugin

让 Vibe Island 在装了 oh-my-openagent 时仍然把 OpenCode 会话当成 OpenCode。修好 source 误标和 Ghostty 点击跳转。
OpenCode Themes

OpenCode Themes

Terminal-inspired dark themes for Obsidian, Typora, and Ghostty, all synced to the official OpenCode TUI palette.
SIGINT

SIGINT

已归档的内容情报实验:曾把小红书/抖音采集、AI 分析、n8n 编排与实时仪表盘接成一条完整链路。
MdictLive

MdictLive

Modern web reader for MDict dictionaries with React 19 SPA, dark mode, and faithful rendering.
SiliconLM

SiliconLM

Local LLM dashboard for Apple Silicon Macs, currently preserved without an active local deployment.
mdx2apple

mdx2apple

Convert MDict (.mdx/.mdd) dictionaries to macOS Apple Dictionary format with one command.