canghe-post-to-wechat

安装量: 97
排名: #8458

安装

npx skills add https://github.com/freestylefly/canghe-skills --skill canghe-post-to-wechat
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/.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):

Check project-level first

test -f .canghe-skills/canghe-post-to-wechat/EXTEND.md && echo "project"

Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)

test
-f
"
$HOME
/.canghe-skills/canghe-post-to-wechat/EXTEND.md"
&&
echo
"user"
┌────────────────────────────────────────────────────────┬───────────────────┐
│ 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
) → 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
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
:
default_theme: default
default_publish_method: api
default_author: 苍何
need_open_comment: 1
only_fans_can_comment: 0
chrome_profile_path: /path/to/chrome/profile
Value priority
:
CLI arguments
Frontmatter
EXTEND.md
Skill defaults
Pre-flight Check (Optional)
Before first use, suggest running the environment check. User can skip if they prefer.
npx
-y
bun
${SKILL_DIR}
/scripts/check-permissions.ts
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):
npx
-y
bun
${SKILL_DIR}
/scripts/wechat-browser.ts
--markdown
article.md
--images
./images/
npx
-y
bun
${SKILL_DIR}
/scripts/wechat-browser.ts
--title
"标题"
--content
"内容"
--image
img.png
--submit
See
references/image-text-posting.md
for details.
Article Posting Workflow (文章)
Copy this checklist and check off items as you complete them:
Publishing Progress:
- [ ] Step 0: Load preferences (EXTEND.md)
- [ ] Step 1: Determine input type
- [ ] Step 2: Check markdown-to-html skill
- [ ] Step 3: Convert to HTML
- [ ] Step 4: Validate metadata (title, summary, cover)
- [ ] Step 5: Select method and configure credentials
- [ ] Step 6: Publish to WeChat
- [ ] Step 7: Report completion
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 : Generate slug from content (first 2-4 meaningful words, kebab-case) Create directory and save file: mkdir -p " $( pwd ) /post-to-wechat/ $( date +%Y-%m-%d ) "

Save content to: post-to-wechat/yyyy-MM-dd/[slug].md

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 :

Check if canghe-markdown-to-html exists

test
-f
skills/canghe-markdown-to-html/SKILL.md
&&
echo
"found"
Result
Action
Found
Read its SKILL.md, continue to Step 3
Multiple skills
AskUserQuestion to choose
Not found
Show installation suggestion
When Not Found
:
No markdown-to-html skill found.
Suggested installation:
https://github.com/JimLiu/canghe-skills/blob/main/skills/canghe-markdown-to-html/SKILL.md
Options:
A) Cancel - install the skill first
B) Continue - provide HTML file manually
Step 3: Convert Markdown to HTML
Skip if
Input is
.html
file
Ask theme preference
(unless specified in EXTEND.md or CLI):
Theme
Description
default
经典主题 - 传统排版,标题居中带底边,二级标题白字彩底
grace
优雅主题 - 文字阴影,圆角卡片,精致引用块
simple
简洁主题 - 现代极简风,不对称圆角,清爽留白
Execute conversion
(using the discovered skill):
npx
-y
bun
${MD_TO_HTML_SKILL_DIR}
/scripts/main.ts
<
markdown_file
>
--theme
<
theme
>
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 ): Use CLI --cover if provided. Else use frontmatter ( coverImage , featureImage , cover , image ). Else check article directory default path: imgs/cover.png . Else fallback to first inline content image. 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 :

Check project-level

test -f .canghe-skills/.env && grep -q "WECHAT_APP_ID" .canghe-skills/.env && echo "project"

Check user-level

test -f " $HOME /.canghe-skills/.env" && grep -q "WECHAT_APP_ID" " $HOME /.canghe-skills/.env" && echo "user" If Credentials Missing - Guide Setup : WeChat API credentials not found. To obtain credentials: 1. Visit https://mp.weixin.qq.com 2. Go to: 开发 → 基本配置 3. Copy AppID and AppSecret Where to save? A) Project-level: .canghe-skills/.env (this project only) B) User-level: ~/.canghe-skills/.env (all projects) After location choice, prompt for values and write to .env : WECHAT_APP_ID= WECHAT_APP_SECRET= Step 6: Publish to WeChat API method : npx -y bun ${SKILL_DIR} /scripts/wechat-api.ts < html_file

[ --title < title

] [ --summary < summary

] [ --author < author

] [ --cover < cover_path

] 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 : npx -y bun ${SKILL_DIR} /scripts/wechat-article.ts --html < html_file

Step 7: Completion Report For API method , include draft management link: WeChat Publishing Complete! Input: [type] - [path] Method: API Theme: [theme name] Article: • Title: [title] • Summary: [summary] • Images: [N] inline images • Comments: [open/closed], [fans-only/all users] Result: ✓ Draft saved to WeChat Official Account • media_id: [media_id] Next Steps: → Manage drafts: https://mp.weixin.qq.com (登录后进入「内容管理」→「草稿箱」) Files created: [• post-to-wechat/yyyy-MM-dd/slug.md (if plain text)] [• slug.html (converted)] For Browser method : WeChat Publishing Complete! Input: [type] - [path] Method: Browser Theme: [theme name] Article: • Title: [title] • Summary: [summary] • Images: [N] inline images Result: ✓ Draft saved to WeChat Official Account Files created: [• post-to-wechat/yyyy-MM-dd/slug.md (if plain text)] [• slug.html (converted)] Detailed References Topic Reference Image-text parameters, auto-compression references/image-text-posting.md Article themes, image handling 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): Environment variables /.canghe-skills/.env ~/.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.

返回排行榜