wechat-mp-publish

wechat-mp-publish is a skill for Codex from tsingyuai/growth-lab. It costs 91 tokens per session (1,438 once invoked), scanned A, original, Apache-2.0.

A tool for turning a prepared article into WeChat-formatted HTML, previewing it, uploading its images, and creating or publishing a WeChat Official Account draft through the official API. The API is the standard interface programs use to communicate with a service.

In plain words
What is it for?
Use it to render an article, generate a browser preview, upload a cover and body images, create a draft, submit a confirmed publication, and check publication status.
Why use it?
It replaces manual formatting and repeated dashboard steps while keeping publishing behind preview and confirmation checks. It also supports either direct local access or a fixed-IP remote service.

Skill for Codex

Written for Codex: agents/openai.yaml present.

Good fit Use it to render an article, generate a browser preview, upload a cover and body images, create a draft, submit a confirmed publication, and check publication status.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/tsingyuai/growth-lab/wechat-mp-publish
About the project

Growth Lab is an open-source growth system that uses coding agents to understand a product, research markets, execute growth activities, and learn from the results. It is designed for teams that want to manage growth work across channels such as SEO and Xiaohongshu through natural-language collaboration, persistent product context, and recorded outcomes. Catalogue add-ons define parts of its product models, research methods, execution workflows, and agent operation.

tsingyuai/growth-lab · 1,992 stars · on GitHub · growthlab.tsingyuai.com

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add tsingyuai/growth-lab --skill wechat-mp-publish
Clone the repo
git clone --depth 1 https://github.com/tsingyuai/growth-lab

Made for: Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for wechat-mp-publish

README.md
[![agentmods](https://agentmods.dev/badge/skills/tsingyuai/growth-lab/wechat-mp-publish/github.svg)](https://agentmods.dev/skills/tsingyuai/growth-lab/wechat-mp-publish)
Your own site
<a href="https://agentmods.dev/skills/tsingyuai/growth-lab/wechat-mp-publish"><img src="https://agentmods.dev/badge/skills/tsingyuai/growth-lab/wechat-mp-publish/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for wechat-mp-publish

Your own site · 80×15
<a href="https://agentmods.dev/skills/tsingyuai/growth-lab/wechat-mp-publish"><img src="https://agentmods.dev/badge/skills/tsingyuai/growth-lab/wechat-mp-publish.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 91 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,438 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00091 $0.01438
Opus 5.5 $0.00036 $0.00575
Sonnet 5.5 $0.00018 $0.00288
Haiku 4.5 $0.00009 $0.00144

Measured 18d ago against content hash 099265ad19af, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

wechat-mp-publish scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 18d ago.

The scan reads SKILL.md. This mod also ships 5 executable files (scripts/cli.py, scripts/client.py, scripts/payload_builder.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

executors/wechat-mp-publish/SKILL.md · 96 lines

How it starts

The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.

微信公众号草稿与受控发布

scripts/ 是仓库自带的零依赖 Python Client(仅用标准库),只调用微信官方接口,见 api.md。输入是 wechat-article-compose 产出的生产单元:

<post-dir>/
├── article.md        # 必需
├── wechat.yml        # 必需
├── cover.png         # 创建草稿时必需(cover 字段可改名)
└── assets/           # 正文图片,可选

渲染器支持 wechat.yml 的 theme(主题名,或 base 加 accent / text / background / link / ink / tint / muted / line / generic 颜色覆盖,值可写 #RRGGBB)以及正文排版块 ::: card / steps / stats / bars / figure,语法见 wechat-article-compose。内置主题:default、white-accent(白底、中性灰,只用强调色点缀)。品牌色写成覆盖项:

theme:
  base: white-accent
  accent: "#2C3E8C"
  link: "#2C3E8C"

运行后在同一目录写入 preview.html、article.html、payload.json、publish-state.json。

前置

依赖缺失时触发统一的 onboard-growth-lab,本 Skill 不自行维护配置流程。

  • 本机直连:WECHAT_MP_APP_ID / WECHAT_MP_APP_SECRET,且本机公网出口 IP 已加入公众号后台 API IP 白名单。
  • 远程服务(推荐团队使用):本机只配 WECHAT_PUBLISH_SERVICE_URL / WECHAT_PUBLISH_SERVICE_TOKEN;AppSecret 只放在固定 IP 服务器上,部署见 remote-service.md。
  • 账号主体必须具备草稿与发布接口权限:个人主体、未认证企业主体等账号的发布接口可能已被回收,报 api unauthorized 时说明无法自动化,改为人类协作发布。

凭据只从进程环境或根目录 .env.local / .env 读取;不得回显、写入产物或 Memory。

1. 预览(每次都做)

make wechat-preview POST=<post-dir>     # 生成并打开 preview.html
make wechat-render POST=<post-dir>      # article.html + dry-run payload.json

用真实浏览器检查 preview.html:标题、作者、摘要、首屏卡片、小标题节奏、图片居中与清晰度、CTA 链接。发现问题回到 article.md 修改后重新渲染。article.html 是草稿与预览共用的唯一正文,修改 article.md 后必须重新 render。

2. 创建草稿(默认终点)

make wechat-draft POST=<post-dir>          # 本机直连
make wechat-remote-draft POST=<post-dir>   # 远程服务

两者都先跑 check-wechat-compliance.py,未通过即阻断。流程:上传封面为永久素材 → 上传正文本地图片并替换为微信图片 URL → 新建草稿 → 写 publish-state.json 的 draft_media_id。正文外链图片会被拒绝,改用 assets/ 本地图片;正文仍含 ::: figure 配图位时同样拒绝,先换成真实图片再 render。

创建成功后请用户在公众号后台预览草稿;这是人工把关点,不跳过。

3. 受控发布(仅在用户明确要求时)

Read the full file on GitHub · 96 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 18d ago First seen · 96 lines · 91 tokens per session scan A 099265ad19af

Subscribe to this mod's changes

wechat-mp-publish is a skill published in the GitHub repository tsingyuai/growth-lab (1,992 stars, last pushed 19d ago), licensed Apache-2.0. It adds 91 tokens to every session and 1,438 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-29.

Related

Other skills, from other repositories

viral-marketing-playbook

Design viral loops into your product — referral programs, invite systems, and share mechanics that drive exponential growth. Includes K-factor calculations and real examples from Dropbox, Slack, and Notion. By @WeiYipei.

Gingiris-1031/gingiris-skills · 50 tokens

synthesis-explore

Synthesis EXPLORE stage for the Diffmode growth-tactics pipeline (fuses the blind-combination draw + emergent-mechanism derivation — formerly two separate synthesis steps — into ONE structural-check-only stage). Reads the per-run growth-factors.json (LIGHT vector DB) + synthesis-constraints.json + founder-input +…

acogood/diffmode_free · 178 tokens

diagnostics-intake

Fast founder-input capture for the Diffmode growth-tactics pipeline (the diagnostics stage). Produces WS/01-diagnostics/founder-input.md in the exact schema the enrichment + synthesis stages read. Two modes — (A) URL mode researches a product's website (homepage/pricing/about) plus a web-research pass to prefill the…

acogood/diffmode_free · 125 tokens

growth-factors-mining

Builds a per-run LIGHT growth-vector database for the Diffmode growth-tactics pipeline by mining public growth case studies fresh, every run, and distilling each into atomic "growth factors" (transferable mechanisms). Clean-room — NEVER reads the proprietary tacticsDB. Outputs growth-factors.json (20-40 vectors spread…

acogood/diffmode_free · 129 tokens

lite-constraints

Generates synthesis-constraints.json for the Diffmode growth-tactics pipeline by reasoning in-context over the per-run growth-factors.json (LIGHT vector DB) + founder context — the clean-room, no-Python replacement for the proprietary Python constraints generator. Emits the white-space pairs, mandatory…

acogood/diffmode_free · 100 tokens

cro-optimization

Run conversion rate optimization through hypothesis-driven testing including audit, hypothesis generation, test design, statistical analysis, and rollout decisions. Use this skill whenever the user wants to optimize conversion, run A/B tests, audit a funnel, generate test hypotheses, design experiments, or analyze…

rampstackco/claude-skills · 123 tokens