本文へ移動
cccskills
無料GitHub で公開

skill-wechat-publisher

微信公众号文章自动创作与发布工具。给定参考文章、文字或文档,自动搜索整理全网相关信息、生成图文并茂的公众号文章,并发布到微信公众号草稿箱。特别强调反 AI 检测写作。

触发场景(沾边就用):用户提到"公众号 / 微信文章 / 推文 / 公号 / 发文 / mp / 草稿箱 / 群发",或要求把话题/文档/笔记写成公众号文章并发布到微信。

インストール方法を見る

含まれるファイル(119)

  • SKILL.md11.4 KB
  • assets/image-styles/blue.json3.0 KB
  • assets/image-styles/data-chart.json2.4 KB
  • assets/image-styles/flat-editorial.json4.9 KB
  • assets/image-styles/hand-drawn-blue.json2.3 KB
  • assets/image-styles/illustrated-warm.json3.3 KB
  • assets/image-styles/infographic-blue.json5.2 KB
  • assets/image-styles/infographic-dark.json5.4 KB
  • assets/image-styles/infographic-mint.json5.2 KB
  • assets/image-styles/infographic-warm.json5.4 KB
  • assets/image-styles/knowledge-card.json2.3 KB
  • assets/image-styles/magazine-editorial.json2.3 KB
  • assets/image-styles/marker-coral.json6.4 KB
  • assets/image-styles/marker-lime.json6.6 KB
  • assets/image-styles/marker-pink.json6.4 KB
  • assets/image-styles/marker-sky.json6.4 KB
  • assets/image-styles/marker-violet.json6.4 KB
  • assets/image-styles/meme-illustration.json2.3 KB
  • assets/image-styles/mint.json3.1 KB
  • assets/image-styles/morandi.json3.4 KB
  • assets/image-styles/previews/blue.webp104.0 KB
  • assets/image-styles/previews/data-chart.webp16.4 KB
  • assets/image-styles/previews/flat-editorial.webp109.7 KB
  • assets/image-styles/previews/hand-drawn-blue.webp17.9 KB
  • assets/image-styles/previews/illustrated-warm.webp31.2 KB
  • assets/image-styles/previews/infographic-blue.webp160.4 KB
  • assets/image-styles/previews/infographic-dark.webp142.1 KB
  • assets/image-styles/previews/infographic-mint.webp150.2 KB
  • assets/image-styles/previews/infographic-warm.webp162.5 KB
  • assets/image-styles/previews/knowledge-card.webp22.4 KB
  • assets/image-styles/previews/magazine-editorial.webp14.0 KB
  • assets/image-styles/previews/marker-coral.webp41.2 KB
  • assets/image-styles/previews/marker-lime-template.webp34.3 KB
  • assets/image-styles/previews/marker-lime.webp39.3 KB
  • assets/image-styles/previews/marker-pink.webp37.5 KB
  • assets/image-styles/previews/marker-sky.webp47.9 KB
  • assets/image-styles/previews/marker-violet.webp42.8 KB
  • assets/image-styles/previews/meme-illustration.webp35.5 KB
  • assets/image-styles/previews/mint.webp95.7 KB
  • assets/image-styles/previews/morandi.webp82.0 KB
  • assets/image-styles/previews/slice-of-life.webp46.3 KB
  • assets/image-styles/previews/warm-handdrawn.webp79.0 KB
  • assets/image-styles/previews/xiaohongshu-colorful.webp24.3 KB
  • assets/image-styles/README.md29.5 KB
  • assets/image-styles/slice-of-life.json4.9 KB
  • assets/image-styles/warm-handdrawn.json4.4 KB
  • assets/image-styles/xiaohongshu-colorful.json2.3 KB
  • assets/theme-previews/academic-paper.html13.5 KB
  • assets/theme-previews/business-navy.html13.6 KB
  • assets/theme-previews/elegant-ink.html13.0 KB
  • assets/theme-previews/girly-pink.html13.2 KB
  • assets/theme-previews/index.html26.6 KB
  • assets/theme-previews/ink-wash.html13.5 KB
  • assets/theme-previews/magazine-grid.html13.0 KB
  • assets/theme-previews/minimal-bw.html13.6 KB
  • assets/theme-previews/minimal-mono.html12.7 KB
  • assets/theme-previews/mint-fresh.html14.0 KB
  • assets/theme-previews/news-bold.html13.3 KB
  • assets/theme-previews/README.md1.7 KB
  • assets/theme-previews/refined-blue.html15.1 KB
  • assets/theme-previews/sage-premium.html13.6 KB
  • assets/theme-previews/sample.md2.6 KB
  • assets/theme-previews/screenshots/ink-wash.webp27.8 KB
  • assets/theme-previews/screenshots/minimal-mono.webp34.8 KB
  • assets/theme-previews/screenshots/news-bold.webp32.5 KB
  • assets/theme-previews/screenshots/refined-blue.webp34.3 KB
  • assets/theme-previews/screenshots/theme-overview.webp229.8 KB
  • assets/theme-previews/sunset-coral.html14.8 KB
  • assets/theme-previews/warm-editorial.html12.8 KB
  • assets/theme-previews/warm-orange.html12.3 KB
  • assets/themes/academic-paper.json5.2 KB
  • assets/themes/business-navy.json5.2 KB
  • assets/themes/elegant-ink.json5.1 KB
  • assets/themes/girly-pink.json5.3 KB
  • assets/themes/ink-wash.json5.1 KB
  • assets/themes/magazine-grid.json5.1 KB
  • assets/themes/minimal-bw.json5.2 KB
  • assets/themes/minimal-mono.json5.0 KB
  • assets/themes/mint-fresh.json5.3 KB
  • assets/themes/news-bold.json5.1 KB
  • assets/themes/refined-blue.json5.6 KB
  • assets/themes/sage-premium.json5.3 KB
  • assets/themes/sunset-coral.json5.5 KB
  • assets/themes/warm-editorial.json4.9 KB
  • assets/themes/warm-orange.json5.0 KB
  • assets/typeset-card/template.html3.5 KB
  • brief.md.example2.3 KB
  • EASEL-META.md2.6 KB
  • references/anti-ai-checklist.md3.4 KB
  • references/api_reference.md3.2 KB
  • references/article-structures.md3.2 KB
  • references/errors.md1.1 KB
  • references/image-styles-guide.md3.5 KB
  • references/inline-markup.md1.7 KB
  • references/multi-platform-sync.md2.6 KB
  • references/newspic-mode.md5.7 KB
  • references/themes.md1.8 KB
  • references/typeset-card.md4.3 KB
  • scripts/ai_score.py15.2 KB
  • scripts/api.py12.6 KB
  • scripts/baoyu_image_gen_core.ts11.5 KB
  • scripts/baoyu_image_gen.ts5.5 KB
  • scripts/config.py11.7 KB
  • scripts/generate_image.py4.3 KB
  • scripts/html_converter.py23.3 KB
  • scripts/image_handler.py17.5 KB
  • scripts/multi_publish.py14.2 KB
  • scripts/newspic_build.py14.0 KB
  • scripts/publish.py35.7 KB
  • scripts/sync_pages.sh994 B
  • scripts/wechat_api.py6.0 KB
  • scripts/wechat_token.py5.1 KB
  • tests/__init__.py0 B
  • tests/conftest.py4.1 KB
  • tests/test_ai_score.py8.1 KB
  • tests/test_config_integration.py9.7 KB
  • tests/test_config.py7.4 KB
  • tests/test_html_converter.py10.2 KB
  • wechat-publisher.yaml.example1.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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

从素材输入到公众号草稿箱的完整自动化流程:用户只需提供话题或参考资料,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/builtin/skill-wechat-publisher/wechat-publisher.yaml.example skills/builtin/skill-wechat-publisher/wechat-publisher.yaml
# 编辑该文件,填写 app_id / app_secret / author / theme,并在公众号后台配置出口 IP 白名单
python3 skills/builtin/skill-wechat-publisher/scripts/wechat_api.py list-accounts
# 验证 API 连接,仅输出状态,不输出 token
(cd skills/builtin/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/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/inline-markup.md)。避免"首先/其次""值得一提的是""随着…的发展"等 AI 套话。

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

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

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

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

阶段五:格式转换与排版

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

主题一般由 publish.py --account 自动从 yaml 读。15 套主题的推荐表与视觉简介见 references/themes.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/builtin/skill-wechat-publisher/scripts/ai_score.py outputs/主题名/article.md --threshold 45

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

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

python3 skills/builtin/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。

贴图模式(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。

文件组织约定

所有产物放项目内 outputs/主题名/:最终稿和封面在目录顶层,研究稿、调试 HTML、配图等中间文件放 assets/。不要把临时产物写到 Skill 根目录。

脚本说明

脚本用途
publish.py完整发布(一键,含 AI 味 gate),支持 --type news|newspic
generate_image.py统一生图入口(需图像 API key)
newspic_build.py贴图拆卡器(brief.md → card_plan.json)
wechat_api.pyfacade —— 重导出下述模块 + CLI
config.py(内部)yaml + 配图风格加载 / set_account / get_config
wechat_token.py(内部)get_access_token,本地缓存
api.py(内部)图片上传 / 草稿 / 发布
html_converter.pyMarkdown → 微信 HTML(多主题 + 行内标色)
image_handler.py图片下载 / 上传 / 替换
ai_score.py反 AI 检测自检(--mode news|newspic)
multi_publish.py多平台同步(阶段七,默认不启用,需浏览器)

Profile 感知

有 Easel Profile 时,用 Profile 的账号定位/受众/语气凝练覆盖账号 voice;无 Profile 时退到 yaml 内置 main/tech 双账号 voice。

注意事项

  • 文章始终发草稿箱,不自动群发;后台会话发布到当前扫码账号,官方 API 模式才用 --account 选择发布账号。
  • 默认 dry-run;没有用户对当前标题、摘要、账号和素材的明确确认,不得添加 --exec。
  • Markdown、HTML 与贴图三条入口都会在上传前扫描密钥、内部地址和路径,命中时必须改稿,不得绕过。
  • 两账号 voice/theme 差异是反 AI 检测策略的一部分,不要趋同。
  • 错误码(40164 IP 白名单 / 40001 token / 48001 未授权等)见 references/errors.md。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

通用 AI 生图:文生图 / 图生图 / 图像变体。当用户说 AI 生图、AI 画图、文生图、图生图、生成图片、生成配图、图像生成、AI 出图、AI 作图、换图、改图、图像编辑、给我画一张、生成一张图 时使用。支持 OpenAI 兼容 API 与 apimart 异步 API,用户自备 API key。

日本語の概要は準備中です。原文の説明を表示しています。

ZJU-REAL/Easel3,5832026年10月12日 更新

ai-music

無料

AI 音乐 / BGM 生成:给短视频、社媒内容生成原创背景音乐 / 配乐 / 纯音乐。通过可插拔 provider(阿里 DashScope / Suno 类第三方 API)文生音乐,异步提交→轮询→下载,产物可再裁剪/归一化或加到视频。当用户说“AI 音乐”“AI 配乐”“生成 BGM”“背景音乐”“原创音乐”“AI 作曲”“纯音乐”“给视频配乐”“做首曲子”时使用。与 tts-voiceover 的区别:tts-voiceover 生成人声口播/旁白,ai-music 生成背景音乐/配乐(无人声或带演唱)。

日本語の概要は準備中です。原文の説明を表示しています。

ZJU-REAL/Easel3,5832026年10月12日 更新

AI 视频生成:文生视频 / 图生视频 / 数字人首帧驱动。通过可插拔 provider(通义万相 Wan / 火山 Seedance / 快手可灵 / OpenAI 兼容)异步生成视频,用户自备 API key。当用户说 AI 视频生成、文生视频、图生视频、AI 生成视频、AI 短视频、让图片动起来、数字人视频、生成一段视频 时使用。与 video-strategy(选型/策略)、video-editing(剪辑处理)、clipify(切片)区别:本 SKILL 是从 0 用 AI 生成新视频。

日本語の概要は準備中です。原文の説明を表示しています。

ZJU-REAL/Easel3,5832026年10月12日 更新

outputs/ 目录下的产物管理:按日期/平台/类型归档、打标签、搜索历史内容、生成素材清单。 当用户说"整理素材"、"归档"、"找之前的内容"、"搜索历史"、"素材管理"、 "outputs 整理"、"之前做的"时使用。 与其他 produce 层 SKILL 的区别:produce 层负责生成内容, asset-manager 负责生成后的产物管理(归档、检索、标签)。

日本語の概要は準備中です。原文の説明を表示しています。

ZJU-REAL/Easel3,5832026年10月12日 更新

音频降噪:去除录音中的背景噪声、电流声、风噪、嗡嗡声,基于 ffmpeg 滤镜链(afftdn/highpass/lowpass)。 当用户说"降噪""去噪""去杂音""消除背景噪声""电流声""风噪""录音有杂音""音频降噪"时使用。 和 audio-editing 的区别:audio-editing 做剪辑/转码/音量等通用音频操作(内置 denoise 兜底),本 SKILL 专做降噪调参。

日本語の概要は準備中です。原文の説明を表示しています。

ZJU-REAL/Easel3,5832026年10月12日 更新

通用音频处理:音频剪辑/裁剪、格式转码(mp3/wav/m4a/aac)、音量归一化、从视频提取音轨、多段拼接、淡入淡出、变速(保音高)。当用户说“剪音频”“裁一段”“转成 mp3”“调音量/响度”“提取音轨/扒音频”“拼接音频”“淡入淡出”“加速/减速音频”“变速不变调”时使用。与 audio-denoise 的区别:audio-denoise 专做降噪,audio-editing 做除降噪外的通用音频操作(也内置 denoise 作为兜底)。

日本語の概要は準備中です。原文の説明を表示しています。

ZJU-REAL/Easel3,5832026年10月12日 更新

ZJU-REAL のスキルをすべて見る

このスキルの問題を報告する