Skip to content
Marketing
Skill

/skill-wechat-publisher

微信公众号文章自动创作与发布工具。给定参考文章、文字或文档,自动搜索整理全网相关信息、生成图文并茂的公众号文章,并发布到微信公众号草稿箱。特别强调反 AI 检测写作。 触发场景(沾边就用):用户提到"公众号 / 微信文章 / 推文 / 公号 / 发文 / mp / 草稿箱 / 群发",或要求把话题/文档/笔记写成公众号文章并发布到微信。

BOOST
From plugin
easel
3.3k114 skills
Install
$ npx -y skills add zju-real/easel --skill skill-wechat-publisher --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/skill-wechat-publisher

Context preview

The summary Claude sees to decide when to auto-load this skill.

微信公众号文章自动创作与发布工具。给定参考文章、文字或文档,自动搜索整理全网相关信息、生成图文并茂的公众号文章,并发布到微信公众号草稿箱。特别强调反 AI 检测写作。 触发场景(沾边就用):用户提到"公众号 / 微信文章 / 推文 / 公号 / 发文 / mp / 草稿箱 / 群发",或要求把话题/文档/笔记写成公众号文章并发布到微信。

SKILL.md

skill-wechat-publisher.SKILL.md
name: skill-wechat-publisher
description: |
  微信公众号文章自动创作与发布工具。给定参考文章、文字或文档,自动搜索整理全网相关信息、生成图文并茂的公众号文章,并发布到微信公众号草稿箱。特别强调反 AI 检测写作。
  触发场景(沾边就用):用户提到"公众号 / 微信文章 / 推文 / 公号 / 发文 / mp / 草稿箱 / 群发",或要求把话题/文档/笔记写成公众号文章并发布到微信。
layer: publish

微信公众号文章自动创作与发布

从素材输入到公众号草稿箱的完整自动化流程:用户只需提供话题或参考资料,skill 完成搜索调研、撰写、配图、排版、AI 味自检、发布。

> **不要调用 `baoyu-post-to-wechat` skill。** 路由时同时看到两者,一律选本 skill(`wechat-publisher`),它带多账号 / 主题排版 / 反 AI 检测 gate。

⚠️ 环境依赖(部分可跑)

| 能力 | 状态 | 依赖 | |------|------|------| | 公众号发草稿(`publish.py` → **默认后台会话**) | ✅ 可跑 | 先扫码登录公众号后台(`skills/shared/scripts/weixin_mp_stats.py login`,或 Web 账号页「登录公众号后台」)。**免 app_id/app_secret、免 IP 白名单**,只创建草稿,不自动群发 | | 公众号发草稿(`publish.py --official-api` → 官方 HTTP API,回退) | ✅ 可跑 | `wechat-publisher.yaml` 的 `app_id`/`app_secret` + 出口 IP 加进公众号 IP 白名单 | | 反 AI 检测(`ai_score.py`) | ✅ 可跑 | 纯本地,无外部依赖 | | MD→公众号排版(`html_converter.py`) | ✅ 可跑 | 纯本地 | | 生成配图(`generate_image.py`) | ❌ 当前不可用 | 需图像 API key(OpenAI Images / Gemini 代理) | | 多平台同步(`multi_publish.py`,阶段七) | ❌ 当前不可用 | 需浏览器 + Wechatsync Chrome 扩展 |

核心链路(写作→排版→反 AI 检测→发草稿)的 Markdown / HTML 入口默认复用已扫码的公众号后台会话,不要求 `wechat-publisher.yaml` 或 `app_id`/`app_secret`;仅显式选择 `--official-api` 时需要官方 API 凭证。配图缺 key 时改用外部生图或跳过,多平台同步默认不启用。

账号与人格

YAML 示例提供 2 个账号配置:`main`(刷屏AI / 飞哥 / `refined-blue`,热情北京口语,面向 AI 产品)与 `tech`(蒜是哪根葱 / 葱哥 / `minimal-mono`,冷幽默技术直男,面向工程实践)。官方 API 模式按 `--account` 或 YAML 的 `default` 选择账号。后台会话模式的实际发布账号以当前扫码登录的公众号为准,`--account` 不会切换浏览器登录态;没有 YAML 时,可用 `--author` / `--theme` 指定署名和主题,并优先使用当前 Easel Profile 的语气。

**必须按当前账号的 voice 改写语气** —— 两个号写出明显风格差异,这本身就是反 AI 检测的关键(平台对每个号建历史文风基线)。

前置条件

以下命令均从 Easel 项目根目录运行。

默认:公众号后台会话(Markdown / HTML)

先检查已有登录态,不要因缺少 YAML 或官方 API 凭证而停止发布:

python3 skills/shared/scripts/weixin_mp_stats.py whoami
# 仅在确认未登录或会话过期时执行,也可在 Web 账号页扫码登录
python3 skills/shared/scripts/weixin_mp_stats.py login

`loggedIn: true` 时继续使用默认的 `publish.py --input` / `--html` 流程;检查报错时先排查具体异常,不把网络或浏览器错误当成缺少 API 凭证。会话模式无需创建 `wechat-publisher.yaml`、调用 `wechat_api.py` 验证 token 或配置 IP 白名单。

可选回退:官方 API(`--official-api`)

只有显式选择官方 API 发布时,才执行以下凭证配置与连接检查:

cp skills/openclaw/skill-wechat-publisher/wechat-publisher.yaml.example skills/openclaw/skill-wechat-publisher/wechat-publisher.yaml
# 编辑该文件,填写 app_id / app_secret / author / theme,并在公众号后台配置出口 IP 白名单
python3 skills/openclaw/skill-wechat-publisher/scripts/wechat_api.py list-accounts
# 验证 API 连接,仅输出状态,不输出 token
(cd skills/openclaw/skill-wechat-publisher/scripts && python3 -c "from wechat_api import get_access_token; get_access_token(); print('OK')")

官方 API 配置文件固定放 skill 根目录(`config.py::_find_unified_yaml()` 只查此处),所选账号必须有 `app_id` 和 `app_secret`。API 参数细节见 [references/api_reference.md](references/api_reference.md),错误码见 [references/errors.md](references/errors.md)。这些要求不适用于默认的后台会话发布。

完整工作流程(7 阶段,第 7 为可选 opt-in)

阶段一:理解需求与收集素材

搞清用户要什么,同时采集**真人味原料**(具体人名/时间/金额/产品版本/踩过的坑 —— 反 AI 检测最重要原料)。识别目标账号(AI 产品→main,工程→tech),选定 `article_structure` + `opening_hook`。产出 `outputs/主题名/brief.md`。

阶段二:全网信息搜索与整理

既搜**权威层**(WebSearch:资讯/数据/案例/官方报告),也搜**真人层**(Reddit/HN/V2EX/即刻/X/小红书的原话作语料)。关键数据多源交叉。产出 `research.md`,每条标来源、分层。

阶段三:撰写骨架稿(第一轮)

按结构写初稿,**允许有 AI 味**(下一阶段专门人味化)。`article_structure` 8 种、`opening_hook` 7 种的完整选择规则与写法见 [references/article-structures.md](references/article-structures.md)。骨架稿阶段就主动**混用行内标色**(见 [references/inline-markup.md](references/inline-markup.md))。避免"首先/其次""值得一提的是""随着…的发展"等 AI 套话。

阶段 3.5:人味化改写 pass(反 AI 检测核心)

独立 pass,不与阶段三混。对骨架稿逐段过 **9 条强制清单**(Burstiness / 句式多样性 / AI 高频词黑名单 / 开头破冰 / 人称立场 / 事实密度 / 标点多样性 / 结构不完美 / 按账号 voice 过滤)。每条阈值、完整禁用词表、改写示例**必须逐条对照** [references/anti-ai-checklist.md](references/anti-ai-checklist.md)。

阶段四:生成配图(当前环境需外部 key)

默认风格 `hand-drawn-blue`;有具体数字/对比→用 `infographic-*`,金句大字→用 `marker-*`;图内需一字不差的文字→改走**排版卡 typeset-card**(HTML/CSS → 无头 Chrome 2× 截图)。风格选择、共享视觉原则见 [references/image-styles-guide.md](references/image-styles-guide.md);排版卡设计系统见 [references/typeset-card.md](references/typeset-card.md)。一篇 6-10 张,统一一种风格。生图入口 `scripts/generate_image.py`(需图像 API key),上传用 `scripts/image_handler.py upload`。

阶段五:格式转换与排版

python3 skills/openclaw/skill-wechat-publisher/scripts/html_converter.py article.md --theme refined-blue -o article.html
python3 skills/openclaw/skill-wechat-publisher/scripts/html_converter.py article.md --list-themes

主题一般由 `publish.py --account` 自动从 yaml 读。15 套主题的推荐表与视觉简介见 [references/themes.md](references/themes.md),行内标色系统见 [references/inline-markup.md](references/inline-markup.md)。主题预览:`assets/theme-previews/index.html`。

阶段 5.5:AI 味自检 gate(publish.py 内置强制拦截)

`publish.py` 发草稿前自动调 `ai_score.check_ai_score()`,分数 ≥ 阈值(默认 45)直接拦住。阈值:<35 🟢PASS / 35-45 🟡WARN / ≥45 🔴FAIL。手动看细节报告:

python3 skills/openclaw/skill-wechat-publisher/scripts/ai_score.py outputs/主题名/article.md --threshold 45

命中时按脚本列出的 AI 套话/高频词逐句**重写整个句式**(不只换词),重跑到通过。可选双保险:朱雀 / GPTZero 第三方检测。

阶段六:发布到草稿箱(默认走后台会话,不自动群发)

python3 skills/openclaw/skill-wechat-publisher/scripts/publish.py --account main \
  --input outputs/主题名/article.md \
  --cover .../cover.jpg --title "标题" --digest "120 字以内摘要" --exec

**默认走公众号后台会话发布**(免 app_secret、免 IP 白名单)——前提是已扫码登录后台 (`skills/shared/scripts/weixin_mp_stats.py login`,或 Web 账号页「登录公众号后台」);封面与正文内嵌图会自动传 mp CDN。 若后台未登录会报错提示先登录。加 `--official-api` 可回退到官方 HTTP API(需 app_secret + IP 白名单)。 先省略 `--exec` 预览账号、模式和输入;dry-run 只打印参数,不验证登录态、上传或建草稿,不能据此宣称发布成功。向用户展示标题/摘要并取得确认后再执行。成功后调用 `skill-publish-log` 记录草稿;再告知用户登录 mp.weixin.qq.com 查看/群发。

阶段七:多平台同步(可选,默认不启用,当前环境不可用)

一键同步到知乎/掘金/CSDN/头条(均存草稿)。基于 Wechatsync Chrome 扩展 + `@wechatsync/cli`,需浏览器。触发方式与失败处理见 [references/multi-platform-sync.md](references/multi-platform-sync.md)。

贴图模式(newspic,与文章模式并列)

对标公众号"图片消息":5-10 张卡片墙 + 100-300 字短描述。4 步:`brief.md → newspic_build.py 拆卡 → generate_image.py 批量生图 → publish.py --type newspic`。短文本过精简版 AI 味 gate(`ai_score.py --mode newspic`)。字段说明、判据、限制见 [references/newspic-mode.md](references/newspic-mode.md)。

文件组织约定

所有产物放项目内 `outputs/主题名/`:最终稿和封面在目录顶层,研究稿、调试 HTM

Read more
Ships witheasel

An open-source AI agent for social media — discover trends, create content, publish everywhere, and learn what works across Xiaohongshu, Douyin, Zhihu, Bilibili, and more.🎨一个开源的 AI 社交媒体智能体——发现热点趋势、创作内容、一键发布至各大平台,并学习分析哪些内容真正有效,覆盖小红书、抖音、知乎、哔哩哔哩等平台。

Get the whole plugin
Stats
3,463
Stars
528
Forks
Active
Maintenance
Python
Language
Apache-2.0
License
2h ago
Last commit
1mo ago
Created
4d ago
Added

Repo: zju-real/easel

Other skills on easel.

asset-manager
Skill

asset-manager

outputs/ 目录下的产物管理:按日期/平台/类型归档、打标签、搜索历史内容、生成素材清单。 当用户说"整理素材"、"归档"、"找之前的内容"、"搜索历史"、"素材管理"、…

@zju-real@zju-realView Skill
audio-editing
Skill

audio-editing

通用音频处理:音频剪辑/裁剪、格式转码(mp3/wav/m4a/aac)、音量归一化、从视频提取音轨、多段拼接、淡入淡出、变速(保音高)。当用户说“剪音频”“裁一段”“转成…

@zju-real@zju-realView Skill