md2wechat

v2.0.7

Convert Markdown to WeChat Official Account HTML, inspect supported providers/themes/prompts, generate article images, create drafts, write with creator styl...

3· 574·6 current·6 all-time
bygeekjourney@geekjourneyx
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description, required binary (md2wechat), and required env vars (WECHAT_APPID, WECHAT_SECRET) match the stated functionality of converting Markdown, generating/uploading drafts, and interacting with WeChat. The config file paths and optional image-service settings are consistent with image generation and provider configuration.
Instruction Scope
SKILL.md is instruction-only and instructs the agent to run the md2wechat CLI and to read config files (~/.config/md2wechat/config.yaml and project-local md2wechat.*) and environment variables (e.g., MD2WECHAT_BASE_URL). Those reads are relevant to selecting providers/themes and API endpoints, but the skill will access user config and environment settings beyond the two declared WECHAT variables — this is expected for a CLI that discovers runtime capabilities, but users should be aware the agent will consult local config files and env vars.
Install Mechanism
Install options are a Homebrew formula from a third‑party tap (geekjourneyx/tap/md2wechat) and a Go module (github.com/geekjourneyx/...). Both are standard installation mechanisms and traceable to GitHub, but they are third‑party sources — users should review the tap/module repo or build artifacts before installing.
Credentials
Only WECHAT_APPID and WECHAT_SECRET are required, which is proportionate for a tool that uploads/publishes drafts to WeChat. The SKILL.md also references other env vars (MD2WECHAT_BASE_URL) and config files for provider/image settings; those are plausible but not declared in requires.env. Crucially, providing WECHAT_APPID/SECRET grants the skill the ability to create or publish drafts on the user's WeChat account, so protect these credentials.
Persistence & Privilege
always is false and the skill does not request permanent/global agent privileges. It may modify its own md2wechat config or instruct the user to update MD2WECHAT_BASE_URL, but it does not request to alter other skills or system-wide agent settings.
Assessment
This skill appears to do what it says: it wraps the md2wechat CLI and needs your WeChat app credentials to upload/publish drafts. Before installing or running it: 1) Verify the md2wechat binary source (inspect the Homebrew tap or Go repo) so you trust the code you will run. 2) Keep WECHAT_APPID and WECHAT_SECRET private — anyone with them can create/publish drafts on your account. 3) Review ~/.config/md2wechat/config.yaml and any project md2wechat.* files the tool will read to ensure they don't point to untrusted API endpoints (MD2WECHAT_BASE_URL). 4) If you don't want automatic network publishing, avoid giving credentials or use dry-run options first. If you want a deeper audit, provide the brew formula or the GitHub repo contents for code review.

Like a lobster shell, security has layers — review code before you run it.

latestvk972v2nnxkx2fy8k68a0ybcy1d83w9k2

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

📝 Clawdis
Binsmd2wechat
EnvWECHAT_APPID, WECHAT_SECRET

Install

Install md2wechat (brew)
Bins: md2wechat
brew install geekjourneyx/tap/md2wechat
Install md2wechat (go)
Bins: md2wechat
go install github.com/geekjourneyx/md2wechat-skill/cmd/md2wechat@latest

SKILL.md

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.

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…