canghe-post-to-wechat

Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP. Supports article posting (文章) with HTML, markdown, or plain text input, and image-text posting (贴图, formerly 图文) with multiple images. Use when user mentions "发布公众号", "post to wechat", "微信公众号", or "贴图/图文/文章".

By freestylefly · 487 installs

npx skills add freestylefly/canghe-skills --skill canghe-post-to-wechat

Source repository · Upstream listing

Post to WeChat Official Account Language Match user's language : Respond in the same language the user uses. If user writes in Chinese, respond in Chinese. If user writes in English, respond in English. Script Directory Agent Execution : Determine this SKILL.md directory as SKILL DIR , then use ${SKILL DIR}/scripts/<name .ts . Script Purpose scripts/wechat browser.ts Image text posts (图文) scripts/wechat article.ts Article posting via browser (文章) scripts/wechat api.ts Article posting via API (文章) scripts/check permissions.ts Verify environment & permissions Preferences (EXTEND.md) Use Bash to check EXTEND.md existence (priority order): ┌────────────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ .canghe skills/canghe post to wechat/EXTEND.md │ Project directory │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.canghe skills/canghe post to wechat/EXTEND.md │ User home │ └────────────────────────────────────────────────────────┴───────────────────┘ ┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ Result │ Action │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Found │ Read, parse, apply settings │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Not found │ Run first time setup ([references/config/first time setup.md](references/config/first time setup.md)) → Save → Continue │ └───────────┴───────────────────────────────────────────────────────────────────────────┘ EXTEND.md Supports : Default theme Default publishing method (api/browser) Default author Default open comment switch Default fans only comment switch Chrome profile path First time setup: [references/config/first time setup.md](references/config/first time setup.md) Minimum supported keys (case insensitive, accept 1/0 or true/false ): Key Default Mapping default author empty Fallback for author when CLI/frontmatter not provided need open comment 1 articles[].need open comment in draft/add request only fans can comment 0 articles[].only fans can comment in draft/add request Recommended EXTEND.md example : Value priority : 1. CLI arguments 2. Frontmatter 3. EXTEND.md 4. Skill defaults Pre flight Check (Optional) Before first use, suggest running the environment check. User can skip if they prefer. Checks: Chrome, profile isolation, Bun, Accessibility, clipboard, paste keystroke, API credentials, Chrome conflicts. If any check fails , provide fix guidance per item: Check Fix Chrome Install Chrome or set WECHAT BROWSER CHROME PATH env var Profile dir Ensure ~/.local/share/wechat browser profile is writable Bun runtime curl fsSL https://bun.sh/install \ bash Accessibility (macOS) System Settings → Privacy & Security → Accessibility → enable terminal app Clipboard copy Ensure Swift/AppKit available (macOS Xcode CLI tools: xcode select install ) Paste keystroke (macOS) Same as Accessibility fix above Paste keystroke (Linux) Install xdotool (X11) or ydotool (Wayland) API credentials Follow guided setup in Step 5, or manually set in .canghe skills/.env Image Text Posting (图文) For short posts with multiple images (up to 9): See [references/image text posting.md](references/image text posting.md) for details. Article Posting Workflow (文章) Copy this checklist and check off items as you complete them: Step 0: Load Preferences Check and load EXTEND.md settings (see Preferences section above). CRITICAL : If not found, complete first time setup BEFORE any other steps or questions. Resolve and store these defaults for later steps: default author need open comment (default 1 ) only fans can comment (default 0 ) Step 1: Determine Input Type Input Type Detection Action HTML file Path ends with .html , file exists Skip to Step 4 Markdown file Path ends with .md , file exists Continue to Step 2 Plain text Not a file path, or file doesn't exist Save to markdown, then Step 2 Plain Text Handling : 1. Generate slug from content (first 2 4 meaningful words, kebab case) 2. Create directory and save file: 3. Continue processing as markdown file Slug Examples : "Understanding AI Models" → understanding ai models "人工智能的未来" → ai future (translate to English for slug) Step 2: Check Markdown to HTML Skill Skip if : Input is .html file Skill Discovery : Result Action Found Read its SKILL.md, continue to Step 3 Multiple skills AskUserQuestion to choose Not found Show installation suggestion When Not Found : Step 3: Convert Markdown to HTML Skip if : Input is .html file 1. Ask theme preference (unless specified in EXTEND.md or CLI): Theme Description default 经典主题 传统排版,标题居中带底边,二级标题白字彩底 grace 优雅主题 文字阴影,圆角卡片,精致引用块 simple 简洁主题 现代极简风,不对称圆角,清爽留白 2. Execute conversion (using the discovered skill): 3. Parse JSON output to get: htmlPath , title , author , summary , contentImages Step 4: Validate Metadata Check extracted metadata from Step 3 (or HTML meta tags if direct HTML input). Field If Missing Title Prompt: "Enter title, or press Enter to auto generate from content" Summary Prompt: "Enter summary, or press Enter to auto generate (recommended for SEO)" Author Use fallback chain: CLI author → frontmatter author → EXTEND.md default author Auto Generation Logic : Title : First H1/H2 heading, or first sentence Summary : First paragraph, truncated to 120 characters Cover Image Check (required for article type=news ): 1. Use CLI cover if provided. 2. Else use frontmatter ( coverImage , featureImage , cover , image ). 3. Else check article directory default path: imgs/cover.png . 4. Else fallback to first inline content image. 5. If still missing, stop and request a cover image before publishing. Step 5: Select Publishing Method and Configure Ask publishing method (unless specified in EXTEND.md or CLI): Method Speed Requirements api (Recommended) Fast API credentials browser Slow Chrome, login session If API Selected Check Credentials : If Credentials Missing Guide Setup : After location choice, prompt for values and write to .env : Step 6: Publish to WeChat API method : draft/add payload rules : Use endpoint: POST https://api.weixin.qq.com/cgi bin/draft/add?access token=ACCESS TOKEN article type : news (default) or newspic For news , include thumb media id (cover is required) Always resolve and send: need open comment (default 1 ) only fans can comment (default 0 ) author resolution: CLI author → frontmatter author → EXTEND.md default author If script parameters do not expose the two comment fields, still ensure final API request body includes resolved values. Browser method : Step 7: Completion Report For API method , include draft management link: For Browser method : Detailed References Topic Reference Image text parameters, auto compression [references/image text posting.md](references/image text posting.md) Article themes, image handling [references/article posting.md](references/article posting.md) Feature Comparison Feature Image Text Article (API) Article (Browser) Plain text input ✗ ✓ ✓ HTML input ✗ ✓ ✓ Markdown input Title/content ✓ (via skill) ✓ (via skill) Multiple images ✓ (up to 9) ✓ (inline) ✓ (inline) Themes ✗ ✓ ✓ Auto generate metadata ✗ ✓ ✓ Default cover fallback ( imgs/cover.png ) ✗ ✓ ✗ Comment control ( need open comment , only fans can comment ) ✗ ✓ ✗ Requires Chrome ✓ ✗ ✓ Requires API credentials ✗ ✓ ✗ Speed Medium Fast Slow Prerequisites For API method : WeChat Official Account API credentials Guided setup in Step 5, or manually set in .canghe skills/.env For Browser method : Google Chrome First run: log in to WeChat Official Account (session preserved) For Markdown conversion : A markdown to html skill (e.g., canghe markdown to html ) If not installed, the workflow will suggest installation Config File Locations (priority order): 1. Environment variables 2. <cwd /.canghe skills/.env 3. ~/.canghe skills/.env Troubleshooting Issue Solution No markdown to html skill Install canghe markdown to html from suggested URL Missing API credentials Follow guided setup in Step 5 Access token error Check if API credentials are valid and not expired Not logged in (browser) First run opens browser scan QR to log in Chrome not found Set WECHAT BROWSER CHROME PATH env var Title/summary missing Use auto generation or provide manually No cover image Add frontmatter cover or place imgs/cover.png in article directory Wrong comment defaults Check EXTEND.md keys need open comment and only fans can comment Paste fails Check system clipboard permissions Extension Support Custom configurations via EXTEND.md. See Preferences section for paths and supported options.