md2wechat
Use md2wechat when the user wants to:
- convert Markdown into WeChat Official Account HTML
- preview 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
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:
~/.config/md2wechat/config.yaml
- environment variables such as
MD2WECHAT_BASE_URL
- 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 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.
Core Commands
Configuration:
md2wechat config init
md2wechat config show --format json
md2wechat config validate
Conversion:
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 -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
--cover.
Agent Rules
- Start with discovery commands before committing to a provider, theme, or prompt.
- 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 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.
1---2name: md2wechat-23description: 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.4---56# md2wechat78Use `md2wechat` when the user wants to:910- convert Markdown into WeChat Official Account HTML11- preview or upload drafts12- inspect live capabilities, providers, themes, and prompts13- generate covers, infographics, or other article images14- create image posts15- write in creator styles or remove AI writing traces1617## Defaults And Config1819- Use this skill only when `md2wechat` is already available on `PATH`.20- Draft upload and publish-related actions require `WECHAT_APPID` and `WECHAT_SECRET`.21- Image generation may require additional image-service configuration in `~/.config/md2wechat/config.yaml`.22- `convert` defaults to `api` mode unless the user explicitly asks for `--mode ai`.23- Check configuration in this order:24 1. `~/.config/md2wechat/config.yaml`25 2. environment variables such as `MD2WECHAT_BASE_URL`26 3. project-local `md2wechat.yaml`, `md2wechat.yml`, or `md2wechat.json`27- If the user asks to switch API domain, update `api.md2wechat_base_url` or `MD2WECHAT_BASE_URL`.28- Treat live CLI discovery output as the source of truth. Do not guess provider names, theme names, or prompt names from repository files alone.2930## Discovery First3132Run these before selecting a provider, theme, or prompt:3334- `md2wechat version --json`35- `md2wechat capabilities --json`36- `md2wechat providers list --json`37- `md2wechat themes list --json`38- `md2wechat prompts list --json`39- `md2wechat prompts list --kind image --json`40- `md2wechat prompts list --kind image --archetype cover --json`4142Inspect a specific resource before using it:4344- `md2wechat providers show openrouter --json`45- `md2wechat themes show autumn-warm --json`46- `md2wechat prompts show cover-default --kind image --json`47- `md2wechat prompts show cover-hero --kind image --archetype cover --tag hero --json`48- `md2wechat prompts show infographic-victorian-engraving-banner --kind image --archetype infographic --tag victorian --json`49- `md2wechat prompts render cover-default --kind image --var article_title='Example' --json`5051When 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`.5253## Core Commands5455Configuration:5657- `md2wechat config init`58- `md2wechat config show --format json`59- `md2wechat config validate`6061Conversion:6263- `md2wechat convert article.md --preview`64- `md2wechat convert article.md -o output.html`65- `md2wechat convert article.md --draft --cover cover.jpg`66- `md2wechat convert article.md --mode ai --theme autumn-warm --preview`67- `md2wechat convert article.md --title "新标题" --author "作者名" --digest "摘要"`6869Image handling:7071- `md2wechat upload_image photo.jpg`72- `md2wechat download_and_upload https://example.com/image.jpg`73- `md2wechat generate_image "A cute cat sitting on a windowsill"`74- `md2wechat generate_image --preset cover-hero --article article.md --size 2560x1440`75- `md2wechat generate_cover --article article.md`76- `md2wechat generate_infographic --article article.md --preset infographic-comparison`77- `md2wechat generate_infographic --article article.md --preset infographic-dark-ticket-cn --aspect 21:9`78- `md2wechat generate_infographic --article article.md --preset infographic-handdrawn-sketchnote`7980Drafts and image posts:8182- `md2wechat create_draft draft.json`83- `md2wechat test-draft article.html cover.jpg`84- `md2wechat create_image_post -t "Weekend Trip" --images photo1.jpg,photo2.jpg`85- `md2wechat create_image_post -t "Travel Diary" -m article.md`86- `echo "Daily check-in" | md2wechat create_image_post -t "Daily" --images pic.jpg`87- `md2wechat create_image_post -t "Test" --images a.jpg,b.jpg --dry-run`8889Writing and humanizing:9091- `md2wechat write --list`92- `md2wechat write --style dan-koe`93- `md2wechat write --style dan-koe --input-type fragment article.md`94- `md2wechat write --style dan-koe --cover-only`95- `md2wechat write --style dan-koe --cover`96- `md2wechat write --style dan-koe --humanize --humanize-intensity aggressive`97- `md2wechat humanize article.md`98- `md2wechat humanize article.md --intensity aggressive`99- `md2wechat humanize article.md --show-changes`100- `md2wechat humanize article.md -o output.md`101102## Article Metadata Rules103104For `convert`, metadata resolution is:105106- Title: `--title` -> `frontmatter.title` -> first Markdown heading -> `未命名文章`107- Author: `--author` -> `frontmatter.author`108- Digest: `--digest` -> `frontmatter.digest` -> `frontmatter.summary` -> `frontmatter.description`109110Limits enforced by the CLI:111112- `--title`: max 32 characters113- `--author`: max 16 characters114- `--digest`: max 128 characters115116Draft behavior:117118- If digest is still empty when creating a draft, the draft layer generates one from article HTML content with a 120-character fallback.119- Creating a draft requires `--cover`.120121## Agent Rules122123- Start with discovery commands before committing to a provider, theme, or prompt.124- Prefer `generate_cover` or `generate_infographic` over a raw `generate_image "prompt"` call when a bundled preset fits the task.125- Validate config before any draft, publish, or image-post action.126- 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.127- Do not perform draft creation, publishing, or remote image generation unless the user asked for it.128129## Safety And Transparency130131- Reads local Markdown files and local images.132- May download remote images when asked.133- May call external image-generation services when configured.134- May upload HTML, images, drafts, and image posts to WeChat when the user explicitly requests those actions.