Convert Markdown to WeChat Official Account HTML, inspect supported providers/themes/prompts, generate article images, create drafts, write with creator styles, and remove AI writing traces.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add lxyeternal/MalSkillBench --skill md2wechat --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Md2wechat?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/lxyeternal-md2wechat)More formats (shields.io, HTML) on the badges page.
---
name: md2wechat
description: Convert Markdown to WeChat Official Account HTML, inspect supported providers/themes/prompts, generate article images, create drafts, write with creator styles, and remove AI writing traces.
homepage: https://github.com/geekjourneyx/md2wechat-skill
metadata: {"clawdbot":{"emoji":"📝","requires":{"bins":["md2wechat"],"env":["WECHAT_APPID","WECHAT_SECRET"]},"install":[{"id":"brew","kind":"brew","formula":"geekjourneyx/tap/md2wechat","bins":["md2wechat"],"label":"Install md2wechat (brew)"},{"id":"go","kind":"go","module":"github.com/geekjourneyx/md2wechat-skill/cmd/md2wechat@latest","bins":["md2wechat"],"label":"Install md2wechat (go)"}]}}
---
# md2wechat
Use `md2wechat` when the user wants to:
- convert Markdown into WeChat Official Account HTML
- inspect resolved article metadata, readiness, and publish risks before conversion
- generate a local preview artifact or upload drafts
- inspect live capabilities, providers, themes, and prompts
- generate covers, infographics, or other article images
- create image posts
- write in creator styles or remove AI writing traces
## Intent Routing
Choose the command family before doing any publish action:
- Use `convert` / `inspect` / `preview` when the user wants a standard WeChat article draft (`news`), HTML conversion, article metadata, article preview, or a draft that needs `--cover`.
- Use `create_image_post` when the user says `小绿书`, `图文笔记`, `图片消息`, `newspic`, `多图帖子`, or asks to publish an image-first post rather than an article HTML draft.
- Do not route `小绿书` / `图文笔记` requests to `convert --draft` just because the user also has a Markdown article. A Markdown file can still be the image source for `create_image_post -m article.md`.
- Treat `convert --draft` and `create_image_post` as different publish targets, not interchangeable command variants.
## Defaults And Config
- Use this skill only when `md2wechat` is already available on `PATH`.
- Draft upload and publish-related actions require `WECHAT_APPID` and `WECHAT_SECRET`.
- Image generation may require additional image-service configuration in `~/.config/md2wechat/config.yaml`.
- `convert` defaults to `api` mode unless the user explicitly asks for `--mode ai`.
- Check configuration in this order:
1. `~/.config/md2wechat/config.yaml`
2. environment variables such as `MD2WECHAT_BASE_URL`
3. project-local `md2wechat.yaml`, `md2wechat.yml`, or `md2wechat.json`
- If the user asks to switch API domain, update `api.md2wechat_base_url` or `MD2WECHAT_BASE_URL`.
- Treat live CLI discovery output as the source of truth. Do not guess provider names, theme names, or prompt names from repository files alone.
## Discovery First
Run these before selecting a provider, theme, or prompt:
- `md2wechat version --json`
- `md2wechat capabilities --json`
- `md2wechat providers list --json`
- `md2wechat themes list --json`
- `md2wechat prompts list --json`
- `md2wechat prompts list --kind image --json`
- `md2wechat prompts list --kind image --archetype cover --json`
Inspect a specific resource before using it:
- `md2wechat providers show openrouter --json`
- `md2wechat providers show volcengine --json`
- `md2wechat themes show autumn-warm --json`
- `md2wechat prompts show cover-default --kind image --json`
- `md2wechat prompts show cover-hero --kind image --archetype cover --tag hero --json`
- `md2wechat prompts show infographic-victorian-engraving-banner --kind image --archetype infographic --tag victorian --json`
- `md2wechat prompts render cover-default --kind image --var article_title='Example' --json`
When choosing image presets, prefer the prompt metadata returned by `prompts show --json`, especially `primary_use_case`, `compatible_use_cases`, `recommended_aspect_ratios`, and `default_aspect_ratio`.
When choosing an image model, prefer `providers show <name> --json` and read `supported_models` before hard-coding `--model`.
## Core Commands
Configuration:
- `md2wechat config init`
- `md2wechat config show --format json`
- `md2wechat config validate`
Conversion:
- `md2wechat inspect article.md`
- `md2wechat preview article.md`
- `md2wechat convert article.md --preview`
- `md2wechat convert article.md -o output.html`
- `md2wechat convert article.md --draft --cover cover.jpg`
- `md2wechat convert article.md --mode ai --theme autumn-warm --preview`
- `md2wechat convert article.md --title "新标题" --author "作者名" --digest "摘要"`
Image handling:
- `md2wechat upload_image photo.jpg`
- `md2wechat download_and_upload https://example.com/image.jpg`
- `md2wechat generate_image "A cute cat sitting on a windowsill"`
- `md2wechat generate_image --preset cover-hero --article article.md --size 2560x1440`
- `md2wechat generate_cover --article article.md`
- `md2wechat generate_infographic --article article.md --preset infographic-comparison`
- `md2wechat generate_infographic --article article.md --preset infographic-dark-ticket-cn --aspect 21:9`
- `md2wechat generate_infographic --article article.md --preset infographic-handdrawn-sketchnote`
Drafts and image posts:
- `md2wechat create_draft draft.json`
- `md2wechat test-draft article.html cover.jpg`
- `md2wechat create_image_post --help`
- `md2wechat create_image_post -t "Weekend Trip" --images photo1.jpg,photo2.jpg`
- `md2wechat create_image_post -t "Travel Diary" -m article.md`
- `echo "Daily check-in" | md2wechat create_image_post -t "Daily" --images pic.jpg`
- `md2wechat create_image_post -t "Test" --images a.jpg,b.jpg --dry-run`
Writing and humanizing:
- `md2wechat write --list`
- `md2wechat write --style dan-koe`
- `md2wechat write --style dan-koe --input-type fragment article.md`
- `md2wechat write --style dan-koe --cover-only`
- `md2wechat write --style dan-koe --cover`
- `md2wechat write --style dan-koe --humanize --humanize-intensity aggressive`
- `md2wechat humanize article.md`
- `md2wechat humanize article.md --intensity aggressive`
- `md2wechat humanize article.md --show-changes`
- `md2wechat humanize article.md -o output.md`
## Article Metadata Rules
For `convert`, metadata resolution is:
- Title: `--title` -> `frontmatter.title` -> first Markdown heading -> `未命名文章`
- Author: `--author` -> `frontmatter.author`
- Digest: `--digest` -> `frontmatter.digest` -> `frontmatter.summary` -> `frontmatter.description`
Limits enforced by the CLI:
- `--title`: max 32 characters
- `--author`: max 16 characters
- `--digest`: max 128 characters
Draft behavior:
- If digest is still empty when creating a draft, the draft layer generates one from article HTML content with a 120-character fallback.
- Creating a draft requires either `--cover` or `--cover-media-id`.
- `--cover` is a local image path contract for article drafts. `--cover-media-id` is for an existing WeChat permanent cover asset. Do not assume a WeChat URL or `mmbiz.qpic.cn` URL can be reused as `thumb_media_id`.
- `inspect` is the source-of-truth command for resolved metadata, readiness, and checks.
- `preview` v1 writes a standalone local HTML preview file. It does not start a workbench, write back to Markdown, upload images, or create drafts.
- `convert --preview` is still the convert-path preview flag; it is not the same thing as the standalone `preview` command.
- `preview --mode ai` is degraded confirmation only; it must not be treated as final AI-generated layout.
- `--title` / `--author` / `--digest` affect draft metadata, not necessarily visible body HTML.
- Markdown images are only uploaded/replaced during `--upload` or `--draft`, not during plain `convert --preview`.
## Agent Rules
- Start with discovery commands before committing to a provider, theme, or prompt.
- Route by publish target first: article draft => `convert`; image post / 小绿书 / newspic => `create_image_post`.
- Prefer the confirm-first flow for article work: `inspect` -> `preview` -> `convert` / `--draft`.
- If the user says `小绿书`, `图文笔记`, `图片消息`, `newspic`, or asks for a multi-image post, prefer `create_image_post` even when the source content lives in Markdown.
- Prefer `generate_cover` or `generate_infographic` over a raw `generate_image "prompt"` call when a bundled preset fits the task.
- Validate config before any draft, publish, or image-post action.
- If draft creation returns `45004`, check digest/summary/description before assuming the body content is too long.
- If the user asks for AI conversion or style writing, be explicit that the CLI may return an AI request/prompt rather than final HTML or prose unless the workflow completes the external model step.
- Do not perform draft creation, publishing, or remote image generation unless the user asked for it.
## Safety And Transparency
- Reads local Markdown files and local images.
- May download remote images when asked.
- May call external image-generation services when configured.
- May upload HTML, images, drafts, and image posts to WeChat when the user explicitly requests those actions.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!