xiaohu-ip-studio
把「中文深度文配图方法论」+「可扩展 IP 角色库」打包的开源 Agent Skill。自带 31 个手绘风原创 IP 角色,装上挑一个就能给文章配图——没有自己的 IP 形象,也能立刻用起来。 方法论恒定,角色与画风是参数。脱胎于小黑 / 宝玉 / 卷卷 / illo / 橙线 几个开源配图技能,学原理不抄外观,血统与致谢见 CREDITS.md。
A Claude Code skill for the full WeChat Official Account (公众号) publishing pipeline: Format → Cover (optional) → Publish — with 85 themes, a visual gallery picker, AI content enhancement, and one-click publishing to drafts. 中文说明
$ npx -y skills add xiaohuailabs/xiaohu-wechat-format --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
What's inside
A Claude Code skill for the full WeChat Official Account (公众号) publishing pipeline: Format → Cover (optional) → Publish — with 85 themes, a visual gallery picker, AI content enhancement, and one-click publishing to drafts.

<style> tags, no classes — everything inline)::: container syntax (byline / stat / gallery / longimage / dialogue) also supported
# Install
cd ~/.claude/skills/
git clone https://github.com/xiaohuailabs/xiaohu-wechat-format.git
cp xiaohu-wechat-format/config.example.json xiaohu-wechat-format/config.json
pip3 install markdown requests
# Format an article (opens gallery in browser)
python3 scripts/format.py --input article.md --gallery
# Format with a specific theme
python3 scripts/format.py --input article.md --theme newspaper
# Publish to WeChat drafts
python3 scripts/publish.py --dir /tmp/wechat-format/article-name/ --cover cover.jpg
Just say:
排版这篇文章 /path/to/article.md
Claude will:
| Theme | ID | Style |
|---|---|---|
| Terracotta | terracotta | Warm orange, rounded headers |
| ByteDance | bytedance | Blue-teal gradient, modern tech |
| Chinese | chinese | Vermillion red, classical |
| Newspaper | newspaper | NYT-style serif, serious |
| GitHub | github | Developer-friendly, light code blocks |
| SSPAI | sspai | Chinese tech media red |
| Bauhaus | bauhaus | Primary colors, geometric |
| Ink | ink | Pure black, minimal whitespace |
| Midnight | midnight | Dark background, neon accents |
| Theme | ID | Style |
|---|---|---|
| Sports | sports | Gradient stripes, energetic |
| Mint | mint-fresh | Mint green, fresh |
| Sunset | sunset-amber | Warm amber tones |
| Lavender | lavender-dream | Purple dreamy |
| Coffee | coffee-house | Brown warm tones |
| WeChat Native | wechat-native | WeChat green |
| Magazine | magazine | Extra whitespace, editorial |
4 layouts (Minimal / Focus / Elegant / Bold) × multiple color variants (Gold / Blue / Red / Green / Navy / Gray)
Enhance your Markdown with these containers before formatting:
:::dialogue[Interview Title]
Alice: Hello there
Bob: Hi, how are you?
:::
:::gallery[Screenshots]



:::
> [!important] Key Insight
> This is the important takeaway
> [!tip] Pro Tip
> A useful tip for readers
Edit config.json:
{
"output_dir": "/tmp/wechat-format",
"vault_root": "/path/to/your/obsidian/vault",
"settings": {
"default_theme": "newspaper",
"auto_open_browser": true
},
"wechat": {
"app_id": "YOUR_APP_ID",
"app_secret": "YOUR_APP_SECRET",
"author": "Author Name"
},
"cover": {
"output_dir": "~/Documents/covers",
"image_generation_script": ""
}
}
wechat section is only needed for publishing; formatting works without itcover section is only needed for cover image generationThis repo includes a complete cover image generator in cover/. It calls the Gemini Image API (or compatible third-party gateways) to produce WeChat cover images (2.35:1 ratio, Notion illustration style).
cover/config.example.json → cover/config.json{
"output_dir": "~/Documents/covers",
"settings": {
"base_url": "https://YOUR_PROVIDER/v1",
"model": "gemini-3-pro-image-preview"
},
"secrets": {
"api_key": "YOUR_API_KEY"
}
}
python3 scripts/generate.py \
--config cover/config.json \
--prompt-file prompt.md \
--out cover.jpg
Or with Claude Code, just say: 给这篇文章配个封面
See cover/SKILL.md for the full prompt template and workflow details.
WeChat's editor strips <style> tags and CSS classes. This tool:
**text,** → **text**,)style="..." attributes on every element<ul>/<ol> to <section> + flexbox (WeChat mangles native lists)[text](url) into footnotes (WeChat blocks external links)![[image.jpg]] Obsidian wiki-links and standard  references[!tip], [!important], [!warning]) with distinct colorsmarkdown libraryrequests library (for publishing)MIT
.gitignore config.example.json cover/ config.example.json SKILL.md docs/ gallery-bytedance.png gallery-newspaper.png gallery-preview.png README_CN.md README.md scripts/ comment_reply.py format.py generate.py publish.py theme_lint.py zh_punctuation_fix.py SKILL.md templates/ gallery.html preview.html themes/ academic-paper.json apple-gradient.json band-orange.json baroque-gold.json bauhaus.json blueprint.json bold-blue.json bold-green.json bold-navy.json broadsheet.json brutalism-raw.json bytedance.json chinese.json claude-scroll.json coffee-house.json cosmic-gold.json cyber-neon.json daimo.json dark-ocean.json data-report.json elegant-blue.json elegant-classic.json elegant-green.json elegant-navy.json focus-blue.json focus-gold.json focus-red.json fresh-card.json github.json glass-light.json hero-amber.json hero-azure.json hero-coral.json hero-emerald.json hero-mauve.json hero-mint.json hero-ochre.json hero-purple.json hero-sage.json hero-slate.json hero-taupe.json industrial.json ink-brush.json ink.json interview.json kaiti-journal.json kami-clay.json kami-ink.json kami-pine.json lavender-dream.json magazine-serif.json magazine.json memphis.json midnight.json minimal-blue.json minimal-gold.json minimal-gray.json minimal-navy.json minimal-red.json mint-fresh.json newspaper.json night-read.json nordic-cool.json notion-doc.json numbered-blue.json ocean-card.json pastel-dream.json quote-lavender.json rice-paper-ink.json solarized-mint.json sports.json sspai.json sticky-note.json storybook.json sunset-amber.json swiss-grid.json terminal-matrix.json terracotta.json timeline-green.json typewriter.json vaporwave.json warm-card.json washi-red.json wechat-native.json zen-minimal.json
把「中文深度文配图方法论」+「可扩展 IP 角色库」打包的开源 Agent Skill。自带 31 个手绘风原创 IP 角色,装上挑一个就能给文章配图——没有自己的 IP 形象,也能立刻用起来。 方法论恒定,角色与画风是参数。脱胎于小黑 / 宝玉 / 卷卷 / illo / 橙线 几个开源配图技能,学原理不抄外观,血统与致谢见 CREDITS.md。
FAQ
xiaohu-wechat-format is a Claude Code plugin with 1 hand-picked skill for content work, indexed on Flowy. Install it with the command on its page. It includes xiaohu-wechat-format. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.