# baoyu-skills English | [中文](./README.zh.md) Skills shared by Baoyu for improving daily work efficiency with Claude Code. ## Prerequisites - Node.js environment installed - Ability to run `npx bun` commands ## Installation ### Quick Install (Recommended) ```bash npx skills add jimliu/baoyu-skills ``` ### Publish to ClawHub / OpenClaw This repository now supports publishing each `skills/baoyu-*` directory as an individual ClawHub skill. ```bash # Preview what would be published ./scripts/sync-clawhub.sh --dry-run # Publish all changed skills from ./skills ./scripts/sync-clawhub.sh --all ``` ClawHub installs skills individually, not as one marketplace bundle. After publishing, users can install specific skills such as: ```bash clawhub install baoyu-imagine clawhub install baoyu-markdown-to-html ``` Publishing to ClawHub releases the published skill under `MIT-0`, per ClawHub's registry rules. ### Register as Plugin Marketplace Run the following command in Claude Code: ```bash /plugin marketplace add JimLiu/baoyu-skills ``` ### Install Skills **Option 1: Via Browse UI** 1. Select **Browse and install plugins** 2. Select **baoyu-skills** 3. Select the **baoyu-skills** plugin 4. Select **Install now** **Option 2: Direct Install** ```bash # Install the marketplace's single plugin /plugin install baoyu-skills@baoyu-skills ``` **Option 3: Ask the Agent** Simply tell Claude Code: > Please install Skills from github.com/JimLiu/baoyu-skills ### Available Plugin The marketplace now exposes a single plugin so each skill is registered exactly once. | Plugin | Description | Includes | |--------|-------------|----------| | **baoyu-skills** | Content generation, AI backends, and utility tools for daily work efficiency | All skills in this repository, organized below as Content Skills, AI Generation Skills, and Utility Skills | ## Update Skills To update skills to the latest version: 1. Run `/plugin` in Claude Code 2. Switch to **Marketplaces** tab (use arrow keys or Tab) 3. Select **baoyu-skills** 4. Choose **Update marketplace** You can also **Enable auto-update** to get the latest versions automatically. ![Update Skills](./screenshots/update-plugins.png) ## Available Skills Skills are organized into three categories: ### Content Skills Content generation and publishing skills. #### baoyu-image-cards Image card series generator. Breaks down content into 1-10 cartoon-style image cards with **Style × Layout** system and optional palette override. ```bash # Auto-select style and layout /baoyu-image-cards posts/ai-future/article.md # Specify style /baoyu-image-cards posts/ai-future/article.md --style notion # Specify layout /baoyu-image-cards posts/ai-future/article.md --layout dense # Combine style and layout /baoyu-image-cards posts/ai-future/article.md --style notion --layout list # Override palette /baoyu-image-cards posts/ai-future/article.md --style notion --palette macaron # Direct content input /baoyu-image-cards 今日星座运势 # Non-interactive (skip all confirmations, for scheduled tasks) /baoyu-image-cards posts/ai-future/article.md --yes /baoyu-image-cards posts/ai-future/article.md --yes --preset knowledge-card ``` **Styles** (visual aesthetics): `cute` (default), `fresh`, `warm`, `bold`, `minimal`, `retro`, `pop`, `notion`, `chalkboard`, `study-notes`, `screen-print`, `sketch-notes` **Palettes** (optional color override): `macaron`, `warm`, `neon` **Style Previews**: | | | | |:---:|:---:|:---:| | ![cute](./screenshots/xhs-images-styles/cute.webp) | ![fresh](./screenshots/xhs-images-styles/fresh.webp) | ![warm](./screenshots/xhs-images-styles/warm.webp) | | cute | fresh | warm | | ![bold](./screenshots/xhs-images-styles/bold.webp) | ![minimal](./screenshots/xhs-images-styles/minimal.webp) | ![retro](./screenshots/xhs-images-styles/retro.webp) | | bold | minimal | retro | | ![pop](./screenshots/xhs-images-styles/pop.webp) | ![notion](./screenshots/xhs-images-styles/notion.webp) | ![chalkboard](./screenshots/xhs-images-styles/chalkboard.webp) | | pop | notion | chalkboard | **Layouts** (information density): | Layout | Density | Best for | |--------|---------|----------| | `sparse` | 1-2 pts | Covers, quotes | | `balanced` | 3-4 pts | Regular content | | `dense` | 5-8 pts | Knowledge cards, cheat sheets | | `list` | 4-7 items | Checklists, rankings | | `comparison` | 2 sides | Before/after, pros/cons | | `flow` | 3-6 steps | Processes, timelines | **Layout Previews**: | | | | |:---:|:---:|:---:| | ![sparse](./screenshots/xhs-images-layouts/sparse.webp) | ![balanced](./screenshots/xhs-images-layouts/balanced.webp) | ![dense](./screenshots/xhs-images-layouts/dense.webp) | | sparse | balanced | dense | | ![list](./screenshots/xhs-images-layouts/list.webp) | ![comparison](./screenshots/xhs-images-layouts/comparison.webp) | ![flow](./screenshots/xhs-images-layouts/flow.webp) | | list | comparison | flow | #### baoyu-infographic Generate professional infographics with 21 layout types and 21 visual styles. Analyzes content, recommends layout×style combinations, and generates publication-ready infographics. ```bash # Auto-recommend combinations based on content /baoyu-infographic path/to/content.md # Specify layout /baoyu-infographic path/to/content.md --layout pyramid # Specify style (default: craft-handmade) /baoyu-infographic path/to/content.md --style technical-schematic # Specify both /baoyu-infographic path/to/content.md --layout funnel --style corporate-memphis # With aspect ratio (named preset or custom W:H) /baoyu-infographic path/to/content.md --aspect portrait /baoyu-infographic path/to/content.md --aspect 3:4 ``` **Options**: | Option | Description | |--------|-------------| | `--layout ` | Information layout (20 options) | | `--style ` | Visual style (17 options, default: craft-handmade) | | `--aspect ` | Named: landscape (16:9), portrait (9:16), square (1:1). Custom: any W:H ratio (e.g., 3:4, 4:3, 2.35:1) | | `--lang ` | Output language (en, zh, ja, etc.) | **Layouts** (information structure): | Layout | Best For | |--------|----------| | `bridge` | Problem-solution, gap-crossing | | `circular-flow` | Cycles, recurring processes | | `comparison-table` | Multi-factor comparisons | | `do-dont` | Correct vs incorrect practices | | `equation` | Formula breakdown, input-output | | `feature-list` | Product features, bullet points | | `fishbone` | Root cause analysis | | `funnel` | Conversion processes, filtering | | `grid-cards` | Multiple topics, overview | | `iceberg` | Surface vs hidden aspects | | `journey-path` | Customer journey, milestones | | `layers-stack` | Technology stack, layers | | `mind-map` | Brainstorming, idea mapping | | `nested-circles` | Levels of influence, scope | | `priority-quadrants` | Eisenhower matrix, 2x2 | | `pyramid` | Hierarchy, Maslow's needs | | `scale-balance` | Pros vs cons, weighing | | `timeline-horizontal` | History, chronological events | | `tree-hierarchy` | Org charts, taxonomy | | `venn` | Overlapping concepts | **Layout Previews**: | | | | |:---:|:---:|:---:| | ![bridge](./screenshots/infographic-layouts/bridge.webp) | ![circular-flow](./screenshots/infographic-layouts/circular-flow.webp) | ![comparison-table](./screenshots/infographic-layouts/comparison-table.webp) | | bridge | circular-flow | comparison-table | | ![do-dont](./screenshots/infographic-layouts/do-dont.webp) | ![equation](./screenshots/infographic-layouts/equation.webp) | ![feature-list](./screenshots/infographic-layouts/feature-list.webp) | | do-dont | equation | feature-list | | ![fishbone](./screenshots/infographic-layouts/fishbone.webp) | ![funnel](./screenshots/infographic-layouts/funnel.webp) | ![grid-cards](./screenshots/infographic-layouts/grid-cards.webp) | | fishbone | funnel | grid-cards | | ![iceberg](./screenshots/infographic-layouts/iceberg.webp) | ![journey-path](./screenshots/infographic-layouts/journey-path.webp) | ![layers-stack](./screenshots/infographic-layouts/layers-stack.webp) | | iceberg | journey-path | layers-stack | | ![mind-map](./screenshots/infographic-layouts/mind-map.webp) | ![nested-circles](./screenshots/infographic-layouts/nested-circles.webp) | ![priority-quadrants](./screenshots/infographic-layouts/priority-quadrants.webp) | | mind-map | nested-circles | priority-quadrants | | ![pyramid](./screenshots/infographic-layouts/pyramid.webp) | ![scale-balance](./screenshots/infographic-layouts/scale-balance.webp) | ![timeline-horizontal](./screenshots/infographic-layouts/timeline-horizontal.webp) | | pyramid | scale-balance | timeline-horizontal | | ![tree-hierarchy](./screenshots/infographic-layouts/tree-hierarchy.webp) | ![venn](./screenshots/infographic-layouts/venn.webp) | | | tree-hierarchy | venn | | **Styles** (visual aesthetics): | Style | Description | |-------|-------------| | `craft-handmade` (Default) | Hand-drawn illustration, paper craft aesthetic | | `claymation` | 3D clay figures, playful stop-motion | | `kawaii` | Japanese cute, big eyes, pastel colors | | `storybook-watercolor` | Soft painted illustrations, whimsical | | `chalkboard` | Colorful chalk on black board | | `cyberpunk-neon` | Neon glow on dark, futuristic | | `bold-graphic` | Comic style, halftone dots, high contrast | | `aged-academia` | Vintage science, sepia sketches | | `corporate-memphis` | Flat vector people, vibrant fills | | `technical-schematic` | Blueprint, isometric 3D, engineering | | `origami` | Folded paper forms, geometric | | `pixel-art` | Retro 8-bit, nostalgic gaming | | `ui-wireframe` | Grayscale boxes, interface mockup | | `subway-map` | Transit diagram, colored lines | | `ikea-manual` | Minimal line art, assembly style | | `knolling` | Organized flat-lay, top-down | | `lego-brick` | Toy brick construction, playful | **Style Previews**: | | | | |:---:|:---:|:---:| | ![craft-handmade](./screenshots/infographic-styles/craft-handmade.webp) | ![claymation](./screenshots/infographic-styles/claymation.webp) | ![kawaii](./screenshots/infographic-styles/kawaii.webp) | | craft-handmade | claymation | kawaii | | ![storybook-watercolor](./screenshots/infographic-styles/storybook-watercolor.webp) | ![chalkboard](./screenshots/infographic-styles/chalkboard.webp) | ![cyberpunk-neon](./screenshots/infographic-styles/cyberpunk-neon.webp) | | storybook-watercolor | chalkboard | cyberpunk-neon | | ![bold-graphic](./screenshots/infographic-styles/bold-graphic.webp) | ![aged-academia](./screenshots/infographic-styles/aged-academia.webp) | ![corporate-memphis](./screenshots/infographic-styles/corporate-memphis.webp) | | bold-graphic | aged-academia | corporate-memphis | | ![technical-schematic](./screenshots/infographic-styles/technical-schematic.webp) | ![origami](./screenshots/infographic-styles/origami.webp) | ![pixel-art](./screenshots/infographic-styles/pixel-art.webp) | | technical-schematic | origami | pixel-art | | ![ui-wireframe](./screenshots/infographic-styles/ui-wireframe.webp) | ![subway-map](./screenshots/infographic-styles/subway-map.webp) | ![ikea-manual](./screenshots/infographic-styles/ikea-manual.webp) | | ui-wireframe | subway-map | ikea-manual | | ![knolling](./screenshots/infographic-styles/knolling.webp) | ![lego-brick](./screenshots/infographic-styles/lego-brick.webp) | | | knolling | lego-brick | | #### baoyu-cover-image Generate cover images for articles with 5 dimensions: Type × Palette × Rendering × Text × Mood. Combines 11 color palettes with 7 rendering styles for 77 unique combinations. ```bash # Auto-select all dimensions based on content /baoyu-cover-image path/to/article.md # Quick mode: skip confirmation, use auto-selection /baoyu-cover-image path/to/article.md --quick # Specify dimensions (5D system) /baoyu-cover-image path/to/article.md --type conceptual --palette cool --rendering digital /baoyu-cover-image path/to/article.md --text title-subtitle --mood bold # Style presets (backward-compatible shorthand) /baoyu-cover-image path/to/article.md --style blueprint # Specify aspect ratio (default: 16:9) /baoyu-cover-image path/to/article.md --aspect 2.35:1 # Visual only (no title text) /baoyu-cover-image path/to/article.md --no-title ``` **Five Dimensions**: - **Type**: `hero`, `conceptual`, `typography`, `metaphor`, `scene`, `minimal` - **Palette**: `warm`, `elegant`, `cool`, `dark`, `earth`, `vivid`, `pastel`, `mono`, `retro`, `duotone`, `macaron` - **Rendering**: `flat-vector`, `hand-drawn`, `painterly`, `digital`, `pixel`, `chalk`, `screen-print` - **Text**: `none`, `title-only` (default), `title-subtitle`, `text-rich` - **Mood**: `subtle`, `balanced` (default), `bold` #### baoyu-slide-deck Generate professional slide deck images from content. Creates comprehensive outlines with style instructions, then generates individual slide images. ```bash # From markdown file /baoyu-slide-deck path/to/article.md # With style and audience /baoyu-slide-deck path/to/article.md --style corporate /baoyu-slide-deck path/to/article.md --audience executives # Target slide count /baoyu-slide-deck path/to/article.md --slides 15 # Outline only (no image generation) /baoyu-slide-deck path/to/article.md --outline-only # With language /baoyu-slide-deck path/to/article.md --lang zh ``` **Options**: | Option | Description | |--------|-------------| | `--style ` | Visual style: preset name or `custom` | | `--audience ` | Target: beginners, intermediate, experts, executives, general | | `--lang ` | Output language (en, zh, ja, etc.) | | `--slides ` | Target slide count (8-25 recommended, max 30) | | `--outline-only` | Generate outline only, skip images | | `--prompts-only` | Generate outline + prompts, skip images | | `--images-only` | Generate images from existing prompts | | `--regenerate ` | Regenerate specific slide(s): `3` or `2,5,8` | **Style System**: Styles are built from 4 dimensions: **Texture** × **Mood** × **Typography** × **Density** | Dimension | Options | |-----------|---------| | Texture | clean, grid, organic, pixel, paper | | Mood | professional, warm, cool, vibrant, dark, neutral | | Typography | geometric, humanist, handwritten, editorial, technical | | Density | minimal, balanced, dense | **Presets** (pre-configured dimension combinations): | Preset | Dimensions | Best For | |--------|------------|----------| | `blueprint` (default) | grid + cool + technical + balanced | Architecture, system design | | `chalkboard` | organic + warm + handwritten + balanced | Education, tutorials | | `corporate` | clean + professional + geometric + balanced | Investor decks, proposals | | `minimal` | clean + neutral + geometric + minimal | Executive briefings | | `sketch-notes` | organic + warm + handwritten + balanced | Educational, tutorials | | `watercolor` | organic + warm + humanist + minimal | Lifestyle, wellness | | `dark-atmospheric` | clean + dark + editorial + balanced | Entertainment, gaming | | `notion` | clean + neutral + geometric + dense | Product demos, SaaS | | `bold-editorial` | clean + vibrant + editorial + balanced | Product launches, keynotes | | `editorial-infographic` | clean + cool + editorial + dense | Tech explainers, research | | `fantasy-animation` | organic + vibrant + handwritten + minimal | Educational storytelling | | `intuition-machine` | clean + cool + technical + dense | Technical docs, academic | | `pixel-art` | pixel + vibrant + technical + balanced | Gaming, developer talks | | `scientific` | clean + cool + technical + dense | Biology, chemistry, medical | | `vector-illustration` | clean + vibrant + humanist + balanced | Creative, children's content | | `vintage` | paper + warm + editorial + balanced | Historical, heritage | **Style Previews**: | | | | |:---:|:---:|:---:| | ![blueprint](./screenshots/slide-deck-styles/blueprint.webp) | ![chalkboard](./screenshots/slide-deck-styles/chalkboard.webp) | ![bold-editorial](./screenshots/slide-deck-styles/bold-editorial.webp) | | blueprint | chalkboard | bold-editorial | | ![corporate](./screenshots/slide-deck-styles/corporate.webp) | ![dark-atmospheric](./screenshots/slide-deck-styles/dark-atmospheric.webp) | ![editorial-infographic](./screenshots/slide-deck-styles/editorial-infographic.webp) | | corporate | dark-atmospheric | editorial-infographic | | ![fantasy-animation](./screenshots/slide-deck-styles/fantasy-animation.webp) | ![intuition-machine](./screenshots/slide-deck-styles/intuition-machine.webp) | ![minimal](./screenshots/slide-deck-styles/minimal.webp) | | fantasy-animation | intuition-machine | minimal | | ![notion](./screenshots/slide-deck-styles/notion.webp) | ![pixel-art](./screenshots/slide-deck-styles/pixel-art.webp) | ![scientific](./screenshots/slide-deck-styles/scientific.webp) | | notion | pixel-art | scientific | | ![sketch-notes](./screenshots/slide-deck-styles/sketch-notes.webp) | ![vector-illustration](./screenshots/slide-deck-styles/vector-illustration.webp) | ![vintage](./screenshots/slide-deck-styles/vintage.webp) | | sketch-notes | vector-illustration | vintage | | ![watercolor](./screenshots/slide-deck-styles/watercolor.webp) | | | | watercolor | | | After generation, slides are automatically merged into `.pptx` and `.pdf` files for easy sharing. #### baoyu-comic Knowledge comic creator with flexible art style × tone combinations. Creates original educational comics with detailed panel layouts and sequential image generation. ```bash # From source material (auto-selects art + tone) /baoyu-comic posts/turing-story/source.md # Specify art style and tone /baoyu-comic posts/turing-story/source.md --art manga --tone warm /baoyu-comic posts/turing-story/source.md --art ink-brush --tone dramatic # Use preset (includes special rules) /baoyu-comic posts/turing-story/source.md --style ohmsha /baoyu-comic posts/turing-story/source.md --style wuxia # Specify layout and aspect ratio /baoyu-comic posts/turing-story/source.md --layout cinematic /baoyu-comic posts/turing-story/source.md --aspect 16:9 # Specify language /baoyu-comic posts/turing-story/source.md --lang zh # Direct content input /baoyu-comic "The story of Alan Turing and the birth of computer science" ``` **Options**: | Option | Values | |--------|--------| | `--art` | `ligne-claire` (default), `manga`, `realistic`, `ink-brush`, `chalk` | | `--tone` | `neutral` (default), `warm`, `dramatic`, `romantic`, `energetic`, `vintage`, `action` | | `--style` | `ohmsha`, `wuxia`, `shoujo` (presets with special rules) | | `--layout` | `standard` (default), `cinematic`, `dense`, `splash`, `mixed`, `webtoon` | | `--aspect` | `3:4` (default, portrait), `4:3` (landscape), `16:9` (widescreen) | | `--lang` | `auto` (default), `zh`, `en`, `ja`, etc. | **Art Styles** (rendering technique): | Art Style | Description | |-----------|-------------| | `ligne-claire` | Uniform lines, flat colors, European comic tradition (Tintin, Logicomix) | | `manga` | Large eyes, manga conventions, expressive emotions | | `realistic` | Digital painting, realistic proportions, sophisticated | | `ink-brush` | Chinese brush strokes, ink wash effects | | `chalk` | Chalkboard aesthetic, hand-drawn warmth | **Tones** (mood/atmosphere): | Tone | Description | |------|-------------| | `neutral` | Balanced, rational, educational | | `warm` | Nostalgic, personal, comforting | | `dramatic` | High contrast, intense, powerful | | `romantic` | Soft, beautiful, decorative elements | | `energetic` | Bright, dynamic, exciting | | `vintage` | Historical, aged, period authenticity | | `action` | Speed lines, impact effects, combat | **Presets** (art + tone + special rules): | Preset | Equivalent | Special Rules | |--------|-----------|---------------| | `ohmsha` | manga + neutral | Visual metaphors, NO talking heads, gadget reveals | | `wuxia` | ink-brush + action | Qi effects, combat visuals, atmospheric elements | | `shoujo` | manga + romantic | Decorative elements, eye details, romantic beats | **Layouts** (panel arrangement): | Layout | Panels/Page | Best for | |--------|-------------|----------| | `standard` | 4-6 | Dialogue, narrative flow | | `cinematic` | 2-4 | Dramatic moments, establishing shots | | `dense` | 6-9 | Technical explanations, timelines | | `splash` | 1-2 large | Key moments, revelations | | `mixed` | 3-7 varies | Complex narratives, emotional arcs | | `webtoon` | 3-5 vertical | Ohmsha tutorials, mobile reading | **Layout Previews**: | | | | |:---:|:---:|:---:| | ![standard](./screenshots/comic-layouts/standard.webp) | ![cinematic](./screenshots/comic-layouts/cinematic.webp) | ![dense](./screenshots/comic-layouts/dense.webp) | | standard | cinematic | dense | | ![splash](./screenshots/comic-layouts/splash.webp) | ![mixed](./screenshots/comic-layouts/mixed.webp) | ![webtoon](./screenshots/comic-layouts/webtoon.webp) | | splash | mixed | webtoon | #### baoyu-article-illustrator Smart article illustration skill with Type × Style × Palette three-dimension approach. Analyzes article structure, identifies positions requiring visual aids, and generates illustrations. ```bash # Auto-select type and style based on content /baoyu-article-illustrator path/to/article.md # Specify type and style /baoyu-article-illustrator path/to/article.md --type flowchart --style notion # With palette override /baoyu-article-illustrator path/to/article.md --style vector-illustration --palette macaron ``` **Types** (information structure): | Type | Description | Best For | |------|-------------|----------| | `infographic` | Data visualization, charts, metrics | Technical articles, data analysis | | `scene` | Atmospheric illustration, mood rendering | Narrative, personal stories | | `flowchart` | Process diagrams, step visualization | Tutorials, workflows | | `comparison` | Side-by-side, before/after contrast | Product comparisons | | `framework` | Concept maps, relationship diagrams | Methodologies, architecture | | `timeline` | Chronological progression | History, project progress | **Styles** (rendering approach): | Style | Description | Best For | |-------|-------------|----------| | `notion` (default) | Minimalist hand-drawn line art | Knowledge sharing, SaaS, productivity | | `elegant` | Refined, sophisticated | Business, thought leadership | | `warm` | Friendly, approachable | Personal growth, lifestyle | | `minimal` | Ultra-clean, zen-like | Philosophy, minimalism | | `blueprint` | Technical schematics | Architecture, system design | | `watercolor` | Soft artistic with natural warmth | Lifestyle, travel, creative | | `editorial` | Magazine-style infographic | Tech explainers, journalism | | `scientific` | Academic precise diagrams | Biology, chemistry, technical | **Palettes** (optional color override): | Palette | Description | Best For | |---------|-------------|----------| | `macaron` | Soft pastel blocks (blue, mint, lavender, peach) on warm cream | Educational, knowledge, tutorials | | `warm` | Warm earth tones on soft peach, no cool colors | Brand, product, lifestyle | | `neon` | Vibrant neon on dark purple | Gaming, retro, pop culture | **Style Previews**: | | | | |:---:|:---:|:---:| | ![notion](./screenshots/article-illustrator-styles/notion.webp) | ![elegant](./screenshots/article-illustrator-styles/elegant.webp) | ![warm](./screenshots/article-illustrator-styles/warm.webp) | | notion | elegant | warm | | ![minimal](./screenshots/article-illustrator-styles/minimal.webp) | ![blueprint](./screenshots/article-illustrator-styles/blueprint.webp) | ![watercolor](./screenshots/article-illustrator-styles/watercolor.webp) | | minimal | blueprint | watercolor | | ![editorial](./screenshots/article-illustrator-styles/editorial.webp) | ![scientific](./screenshots/article-illustrator-styles/scientific.webp) | | | editorial | scientific | | #### baoyu-post-to-x Post content and articles to X (Twitter). Supports regular posts with images and X Articles (long-form Markdown). Uses real Chrome with CDP to bypass anti-automation. Plain text input is treated as a regular post. Markdown files are treated as X Articles. Scripts fill content into the browser, and the user reviews and publishes manually. ```bash # Post with text /baoyu-post-to-x "Hello from Claude Code!" # Post with images /baoyu-post-to-x "Check this out" --image photo.png # Post X Article /baoyu-post-to-x --article path/to/article.md ``` #### baoyu-post-to-wechat Post content to WeChat Official Account (微信公众号). Two modes available: **Image-Text (贴图)** - Multiple images with short title/content: ```bash /baoyu-post-to-wechat 贴图 --markdown article.md --images ./photos/ /baoyu-post-to-wechat 贴图 --markdown article.md --image img1.png --image img2.png --image img3.png /baoyu-post-to-wechat 贴图 --title "标题" --content "内容" --image img1.png --submit ``` **Article (文章)** - Full markdown/HTML with rich formatting: ```bash /baoyu-post-to-wechat 文章 --markdown article.md /baoyu-post-to-wechat 文章 --markdown article.md --theme grace /baoyu-post-to-wechat 文章 --html article.html ``` **Publishing Methods**: | Method | Speed | Requirements | |--------|-------|--------------| | API (Recommended) | Fast | API credentials | | Browser | Slow | Chrome, login session | **API Configuration** (for faster publishing): ```bash # Add to .baoyu-skills/.env (project-level) or ~/.baoyu-skills/.env (user-level) WECHAT_APP_ID=your_app_id WECHAT_APP_SECRET=your_app_secret ``` To obtain credentials: 1. Visit https://developers.weixin.qq.com/platform/ 2. Go to: 我的业务 → 公众号 → 开发密钥 3. Create development key and copy AppID/AppSecret 4. Add your machine's IP to the whitelist **Browser Method** (no API setup needed): Requires Google Chrome. First run opens browser for QR code login (session preserved). **Multi-Account Support**: Manage multiple WeChat Official Accounts via `EXTEND.md`: ```bash mkdir -p .baoyu-skills/baoyu-post-to-wechat ``` Create `.baoyu-skills/baoyu-post-to-wechat/EXTEND.md`: ```yaml # Global settings (shared across all accounts) default_theme: default default_color: blue # Account list accounts: - name: My Tech Blog alias: tech-blog default: false default_publish_method: api default_author: Author Name need_open_comment: 1 only_fans_can_comment: 0 app_id: your_wechat_app_id app_secret: your_wechat_app_secret - name: AI Newsletter alias: ai-news default_publish_method: browser default_author: AI Newsletter need_open_comment: 1 only_fans_can_comment: 0 ``` | Accounts configured | Behavior | |---------------------|----------| | No `accounts` block | Single-account mode (backward compatible) | | 1 account | Auto-select, no prompt | | 2+ accounts | Prompt to select, or use `--account ` | | 1 account has `default: true` | Pre-selected as default | Each account gets an isolated Chrome profile for independent login sessions (browser method). API credentials can be set inline in EXTEND.md or via `.env` with alias-prefixed keys (e.g., `WECHAT_TECH_BLOG_APP_ID`). #### baoyu-post-to-weibo Post content to Weibo (微博). Supports regular posts with text, images, and videos, and headline articles (头条文章) with Markdown input. Uses real Chrome with CDP to bypass anti-automation. **Regular Posts** - Text + images/videos (max 18 files): ```bash # Post with text /baoyu-post-to-weibo "Hello Weibo!" # Post with images /baoyu-post-to-weibo "Check this out" --image photo.png # Post with video /baoyu-post-to-weibo "Watch this" --video clip.mp4 ``` **Headline Articles (头条文章)** - Long-form Markdown: ```bash # Publish article /baoyu-post-to-weibo --article article.md # With cover image /baoyu-post-to-weibo --article article.md --cover cover.jpg ``` **Article Options**: | Option | Description | |--------|-------------| | `--cover ` | Cover image | | `--title ` | Override title (max 32 chars) | | `--summary ` | Override summary (max 44 chars) | **Note**: Scripts fill content into the browser. User reviews and publishes manually. First run requires manual Weibo login (session persists). ### AI Generation Skills AI-powered generation backends. #### baoyu-imagine AI SDK-based image generation using OpenAI, Azure OpenAI, Google, OpenRouter, DashScope (Aliyun Tongyi Wanxiang), MiniMax, Jimeng (即梦), Seedream (豆包), and Replicate APIs. Supports text-to-image, reference images, aspect ratios, custom sizes, batch generation, and quality presets. ```bash # Basic generation (auto-detect provider) /baoyu-imagine --prompt "A cute cat" --image cat.png # With aspect ratio /baoyu-imagine --prompt "A landscape" --image landscape.png --ar 16:9 # High quality (2k) /baoyu-imagine --prompt "A banner" --image banner.png --quality 2k # Specific provider /baoyu-imagine --prompt "A cat" --image cat.png --provider openai # Azure OpenAI (model = deployment name) /baoyu-imagine --prompt "A cat" --image cat.png --provider azure --model gpt-image-1.5 # OpenRouter /baoyu-imagine --prompt "A cat" --image cat.png --provider openrouter # OpenRouter with reference images /baoyu-imagine --prompt "Make it blue" --image out.png --provider openrouter --model google/gemini-3.1-flash-image-preview --ref source.png # DashScope (Aliyun Tongyi Wanxiang) /baoyu-imagine --prompt "一只可爱的猫" --image cat.png --provider dashscope # DashScope with custom size /baoyu-imagine --prompt "为咖啡品牌设计一张 21:9 横幅海报,包含清晰中文标题" --image banner.png --provider dashscope --model qwen-image-2.0-pro --size 2048x872 # MiniMax /baoyu-imagine --prompt "A fashion editorial portrait by a bright studio window" --image out.jpg --provider minimax # MiniMax with subject reference /baoyu-imagine --prompt "A girl stands by the library window, cinematic lighting" --image out.jpg --provider minimax --model image-01 --ref portrait.png --ar 16:9 # Replicate /baoyu-imagine --prompt "A cat" --image cat.png --provider replicate # Jimeng (即梦) /baoyu-imagine --prompt "一只可爱的猫" --image cat.png --provider jimeng # Seedream (豆包) /baoyu-imagine --prompt "一只可爱的猫" --image cat.png --provider seedream # With reference images (Google, OpenAI, Azure OpenAI, OpenRouter, Replicate, MiniMax, or Seedream 5.0/4.5/4.0) /baoyu-imagine --prompt "Make it blue" --image out.png --ref source.png # Batch mode /baoyu-imagine --batchfile batch.json --jobs 4 --json ``` **Options**: | Option | Description | |--------|-------------| | `--prompt`, `-p` | Prompt text | | `--promptfiles` | Read prompt from files (concatenated) | | `--image` | Output image path (required) | | `--batchfile` | JSON batch file for multi-image generation | | `--jobs` | Worker count for batch mode | | `--provider` | `google`, `openai`, `azure`, `openrouter`, `dashscope`, `minimax`, `jimeng`, `seedream`, or `replicate` | | `--model`, `-m` | Model ID or deployment name. Azure uses deployment name; OpenRouter uses full model IDs; MiniMax uses `image-01` / `image-01-live` | | `--ar` | Aspect ratio (e.g., `16:9`, `1:1`, `4:3`) | | `--size` | Size (e.g., `1024x1024`) | | `--quality` | `normal` or `2k` (default: `2k`) | | `--imageSize` | `1K`, `2K`, or `4K` for Google/OpenRouter | | `--ref` | Reference images (Google, OpenAI, Azure OpenAI, OpenRouter, Replicate, MiniMax, or Seedream 5.0/4.5/4.0) | | `--n` | Number of images per request | | `--json` | JSON output | **Environment Variables** (see [Environment Configuration](#environment-configuration) for setup): | Variable | Description | Default | |----------|-------------|---------| | `OPENAI_API_KEY` | OpenAI API key | - | | `AZURE_OPENAI_API_KEY` | Azure OpenAI API key | - | | `OPENROUTER_API_KEY` | OpenRouter API key | - | | `GOOGLE_API_KEY` | Google API key | - | | `GEMINI_API_KEY` | Alias for `GOOGLE_API_KEY` | - | | `DASHSCOPE_API_KEY` | DashScope API key (Aliyun) | - | | `MINIMAX_API_KEY` | MiniMax API key | - | | `REPLICATE_API_TOKEN` | Replicate API token | - | | `JIMENG_ACCESS_KEY_ID` | Jimeng Volcengine access key | - | | `JIMENG_SECRET_ACCESS_KEY` | Jimeng Volcengine secret key | - | | `ARK_API_KEY` | Seedream Volcengine ARK API key | - | | `OPENAI_IMAGE_MODEL` | OpenAI model | `gpt-image-1.5` | | `AZURE_OPENAI_DEPLOYMENT` | Azure default deployment name | - | | `AZURE_OPENAI_IMAGE_MODEL` | Backward-compatible Azure deployment/model alias | `gpt-image-1.5` | | `OPENROUTER_IMAGE_MODEL` | OpenRouter model | `google/gemini-3.1-flash-image-preview` | | `GOOGLE_IMAGE_MODEL` | Google model | `gemini-3-pro-image-preview` | | `DASHSCOPE_IMAGE_MODEL` | DashScope model | `qwen-image-2.0-pro` | | `MINIMAX_IMAGE_MODEL` | MiniMax model | `image-01` | | `REPLICATE_IMAGE_MODEL` | Replicate model | `google/nano-banana-pro` | | `JIMENG_IMAGE_MODEL` | Jimeng model | `jimeng_t2i_v40` | | `SEEDREAM_IMAGE_MODEL` | Seedream model | `doubao-seedream-5-0-260128` | | `OPENAI_BASE_URL` | Custom OpenAI endpoint | - | | `OPENAI_IMAGE_USE_CHAT` | Use `/chat/completions` for OpenAI image generation | `false` | | `AZURE_OPENAI_BASE_URL` | Azure resource or deployment endpoint | - | | `AZURE_API_VERSION` | Azure image API version | `2025-04-01-preview` | | `OPENROUTER_BASE_URL` | Custom OpenRouter endpoint | `https://openrouter.ai/api/v1` | | `OPENROUTER_HTTP_REFERER` | Optional app/site URL for OpenRouter attribution | - | | `OPENROUTER_TITLE` | Optional app name for OpenRouter attribution | - | | `GOOGLE_BASE_URL` | Custom Google endpoint | - | | `DASHSCOPE_BASE_URL` | Custom DashScope endpoint | - | | `MINIMAX_BASE_URL` | Custom MiniMax endpoint | `https://api.minimax.io` | | `REPLICATE_BASE_URL` | Custom Replicate endpoint | - | | `JIMENG_BASE_URL` | Custom Jimeng endpoint | `https://visual.volcengineapi.com` | | `JIMENG_REGION` | Jimeng region | `cn-north-1` | | `SEEDREAM_BASE_URL` | Custom Seedream endpoint | `https://ark.cn-beijing.volces.com/api/v3` | | `BAOYU_IMAGE_GEN_MAX_WORKERS` | Override batch worker cap | `10` | | `BAOYU_IMAGE_GEN__CONCURRENCY` | Override provider concurrency | provider-specific | | `BAOYU_IMAGE_GEN__START_INTERVAL_MS` | Override provider request start gap | provider-specific | **Provider Notes**: - Azure OpenAI: `--model` means Azure deployment name, not the underlying model family. - DashScope: `qwen-image-2.0-pro` is the recommended default for custom `--size`, `21:9`, and strong Chinese/English text rendering. - MiniMax: `image-01` supports documented custom `width` / `height`; `image-01-live` is lower latency and works best with `--ar`. - MiniMax reference images are sent as `subject_reference`; the current API is specialized toward character / portrait consistency. - Jimeng does not support reference images. - Seedream reference images are supported by Seedream 5.0 / 4.5 / 4.0, not Seedream 3.0. **Provider Auto-Selection**: 1. If `--provider` is specified → use it 2. If `--ref` is provided and no provider is specified → try Google, then OpenAI, Azure, OpenRouter, Replicate, Seedream, and finally MiniMax 3. If only one API key is available → use that provider 4. If multiple providers are available → default to Google #### baoyu-danger-gemini-web Interacts with Gemini Web to generate text and images. **Text Generation:** ```bash /baoyu-danger-gemini-web "Hello, Gemini" /baoyu-danger-gemini-web --prompt "Explain quantum computing" ``` **Image Generation:** ```bash /baoyu-danger-gemini-web --prompt "A cute cat" --image cat.png /baoyu-danger-gemini-web --promptfiles system.md content.md --image out.png ``` ### Utility Skills Utility tools for content processing. #### baoyu-youtube-transcript Download YouTube video transcripts/subtitles and cover images. Supports multiple languages, translation, chapters, and speaker identification. Caches raw data for fast re-formatting. ```bash # Default: markdown with timestamps /baoyu-youtube-transcript https://www.youtube.com/watch?v=VIDEO_ID # Specify languages (priority order) /baoyu-youtube-transcript https://youtu.be/VIDEO_ID --languages zh,en,ja # With chapters and speaker identification /baoyu-youtube-transcript https://youtu.be/VIDEO_ID --chapters --speakers # SRT subtitle format /baoyu-youtube-transcript https://youtu.be/VIDEO_ID --format srt # List available transcripts /baoyu-youtube-transcript https://youtu.be/VIDEO_ID --list ``` **Options**: | Option | Description | Default | |--------|-------------|---------| | `` | YouTube URL or video ID | Required | | `--languages ` | Language codes, comma-separated | `en` | | `--format ` | Output format: `text`, `srt` | `text` | | `--translate ` | Translate to specified language | | | `--chapters` | Chapter segmentation from video description | | | `--speakers` | Speaker identification (requires AI post-processing) | | | `--no-timestamps` | Disable timestamps | | | `--list` | List available transcripts | | | `--refresh` | Force re-fetch, ignore cache | | #### baoyu-url-to-markdown Fetch any URL via Chrome CDP and convert to clean markdown. Saves rendered HTML snapshot alongside the markdown, and automatically falls back to a legacy extractor when Defuddle fails. ```bash # Auto mode (default) - capture when page loads /baoyu-url-to-markdown https://example.com/article # Wait mode - for login-required pages /baoyu-url-to-markdown https://example.com/private --wait # Save to specific file /baoyu-url-to-markdown https://example.com/article -o output.md ``` **Capture Modes**: | Mode | Description | Best For | |------|-------------|----------| | Auto (default) | Captures immediately after page load | Public pages, static content | | Wait (`--wait`) | Waits for user signal before capture | Login-required, dynamic content | **Options**: | Option | Description | |--------|-------------| | `` | URL to fetch | | `-o ` | Output file path | | `--wait` | Wait for user signal before capturing | | `--timeout ` | Page load timeout (default: 30000) | #### baoyu-danger-x-to-markdown Converts X (Twitter) content to markdown format. Supports tweet threads and X Articles. ```bash # Convert tweet to markdown /baoyu-danger-x-to-markdown https://x.com/username/status/123456 # Save to specific file /baoyu-danger-x-to-markdown https://x.com/username/status/123456 -o output.md # JSON output /baoyu-danger-x-to-markdown https://x.com/username/status/123456 --json # Download media (images/videos) to local files /baoyu-danger-x-to-markdown https://x.com/username/status/123456 --download-media ``` **Supported URLs:** - `https://x.com//status/` - `https://twitter.com//status/` - `https://x.com/i/article/` **Authentication:** Uses environment variables (`X_AUTH_TOKEN`, `X_CT0`) or Chrome login for cookie-based auth. #### baoyu-compress-image Compress images to reduce file size while maintaining quality. ```bash /baoyu-compress-image path/to/image.png /baoyu-compress-image path/to/images/ --quality 80 ``` #### baoyu-format-markdown Format plain text or markdown files with proper frontmatter, titles, summaries, headings, bold, lists, and code blocks. ```bash # Format a markdown file /baoyu-format-markdown path/to/article.md # Format with specific output /baoyu-format-markdown path/to/draft.md ``` **Workflow**: 1. Read source file and analyze content structure 2. Check/create YAML frontmatter (title, slug, summary, coverImage) 3. Handle title: use existing, extract from H1, or generate candidates 4. Apply formatting: headings, bold, lists, code blocks, quotes 5. Save to `{filename}-formatted.md` 6. Run typography script: ASCII→fullwidth quotes, CJK spacing, autocorrect **Frontmatter Fields**: | Field | Processing | |-------|------------| | `title` | Use existing, extract H1, or generate candidates | | `slug` | Infer from file path or generate from title | | `summary` | Generate engaging summary (100-150 chars) | | `coverImage` | Check for `imgs/cover.png` in same directory | **Formatting Rules**: | Element | Format | |---------|--------| | Titles | `#`, `##`, `###` hierarchy | | Key points | `**bold**` | | Parallel items | `-` unordered or `1.` ordered lists | | Code/commands | `` `inline` `` or ` ```block``` ` | | Quotes | `>` blockquote | #### baoyu-markdown-to-html Convert markdown files into styled HTML with WeChat-compatible themes, syntax highlighting, and optional bottom citations for external links. ```bash # Basic conversion /baoyu-markdown-to-html article.md # Theme + color /baoyu-markdown-to-html article.md --theme grace --color red # Convert ordinary external links to bottom citations /baoyu-markdown-to-html article.md --cite ``` #### baoyu-translate Translate articles and documents between languages with three modes: quick (direct), normal (analysis-informed), and refined (full publication-quality workflow with review and polish). ```bash # Normal mode (default) - analyze then translate /translate article.md --to zh-CN # Quick mode - direct translation /translate article.md --mode quick --to ja # Refined mode - full workflow with review and polish /translate article.md --mode refined --to zh-CN # Translate a URL /translate https://example.com/article --to zh-CN # Specify audience /translate article.md --to zh-CN --audience technical # Specify style /translate article.md --to zh-CN --style humorous # With additional glossary /translate article.md --to zh-CN --glossary my-terms.md ``` **Options**: | Option | Description | |--------|-------------| | `` | File path, URL, or inline text | | `--mode ` | `quick`, `normal` (default), `refined` | | `--from ` | Source language (auto-detect if omitted) | | `--to ` | Target language (default: `zh-CN`) | | `--audience ` | Target reader profile (default: `general`) | | `--style