复制安装命令
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
Skills shared by Baoyu for improving daily work efficiency with AI Agents (Claude Code, Codex, e...
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
来源文件:README.md
English | 中文
Skills shared by Baoyu for improving daily work efficiency with AI Agents (Claude Code, Codex, etc.).
npx bun commandsTip: This repository contains 20+ skills. Install only the ones you actually need — bulk-installing every skill adds unnecessary context overhead for your AI agent on every run.
npx skills add jimliu/baoyu-skills
If you only need a subset of skills in one project, you do not need to install the full plugin. Codex scans .agents/skills inside a project, so copy or symlink each needed skill as a full directory:
<project>/.agents/skills/baoyu-cover-image/SKILL.md
<project>/.agents/skills/baoyu-article-illustrator/SKILL.md
<project>/.agents/skills/baoyu-post-to-wechat/SKILL.md
For a WeChat Official Account article workflow, the usual minimal set is:
baoyu-cover-imagebaoyu-article-illustratorbaoyu-post-to-wechatYou do not need to install baoyu-markdown-to-html separately. baoyu-post-to-wechat already includes the Markdown to WeChat-ready HTML conversion flow. Install baoyu-format-markdown only if you need to first turn raw text or drafts into structured Markdown articles with titles, summaries, headings, bold text, lists, and similar formatting.
Place WeChat API credentials according to the scope you want:
~/.baoyu-skills/.env<project>/.baoyu-skills/.envProject-level .env files are useful when credentials should apply only to the current project. Do not commit them to Git.
This repository now supports publishing each skills/baoyu-* directory as an individual ClawHub skill.
# 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:
clawhub install baoyu-image-gen
clawhub install baoyu-markdown-to-html
Publishing to ClawHub releases the published skill under MIT-0, per ClawHub's registry rules.
Run the following command in the Agent:
/plugin marketplace add JimLiu/baoyu-skills
Option 1: Via Browse UI
Option 2: Direct Install
# Install the marketplace's single plugin
/plugin install baoyu-skills@baoyu-skills
Option 3: Ask the Agent
Simply tell the Agent:
Please install Skills from github.com/JimLiu/baoyu-skills
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 |
To update skills to the latest version:
/plugin in the AgentYou can also Enable auto-update to get the latest versions automatically.

Skills are organized into three categories:
If you want a design-focused Agent Skill, check out JimLiu/baoyu-design. It is a separate project that runs Claude Design locally in Cursor, Claude Code, Codex, Claude Desktop, or any file-capable coding agent, producing polished UI mockups, interactive prototypes, wireframes, landing pages, dashboards, mobile apps, and slide decks as self-contained HTML.
npx skills add JimLiu/baoyu-design
Content generation and publishing skills.
Xiaohongshu image card series generator. Breaks down content into 1-10 cartoon-style image cards with Style × Layout system and optional palette override.
# Auto-select style and layout
/baoyu-xhs-images posts/ai-future/article.md
# Specify style
/baoyu-xhs-images posts/ai-future/article.md --style notion
# Specify layout
/baoyu-xhs-images posts/ai-future/article.md --layout dense
# Combine style and layout
/baoyu-xhs-images posts/ai-future/article.md --style notion --layout list
# Override palette
/baoyu-xhs-images posts/ai-future/article.md --style notion --palette macaron
# Direct content input
/baoyu-xhs-images 今日星座运势
# Non-interactive (skip all confirmations, for scheduled tasks)
/baoyu-xhs-images posts/ai-future/article.md --yes
/baoyu-xhs-images 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 | fresh | warm |
![]() | ![]() | ![]() |
| bold | minimal | retro |
![]() | ![]() | ![]() |
| 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 | balanced | dense |
![]() | ![]() | ![]() |
| list | comparison | flow |
Generate professional infographics with 21 layout types and 21 visual styles. Analyzes content, recommends layout×style combinations, and generates publication-ready infographics.
# 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 <name> | Information layout (20 options) |
--style <name> | Visual style (17 options, default: craft-handmade) |
--aspect <ratio> | 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 <code> | 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 | circular-flow | comparison-table |
![]() | ![]() | ![]() |
| do-dont | equation | feature-list |
![]() | ![]() | ![]() |
| fishbone | funnel | grid-cards |
![]() | ![]() | ![]() |
| iceberg | journey-path | layers-stack |
![]() | ![]() | ![]() |
| mind-map | nested-circles | priority-quadrants |
![]() | ![]() | ![]() |
| pyramid | scale-balance | timeline-horizontal |
![]() | ![]() | |
| 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 | claymation | kawaii |
![]() | ![]() | ![]() |
| storybook-watercolor | chalkboard | cyberpunk-neon |
![]() | ![]() | ![]() |
| bold-graphic | aged-academia | corporate-memphis |
![]() | ![]() | |
| technical-schematic | origami | pixel-art |
![]() | ![]() | ![]() |
| ui-wireframe | subway-map | ikea-manual |
![]() | ![]() | |
| knolling | lego-brick |
Generate publication-ready SVG diagrams from source material — flowcharts, sequence/protocol diagrams, structural/architecture diagrams, and illustrative intuition diagrams. Analyzes input material to recommend diagram type(s) and splitting strategy, confirms the plan once, then generates all diagrams. Claude writes real SVG code directly following a cohesive design system. Output is self-contained .svg files with embedded styles and auto dark-mode.
# Topic string — skill analyzes and proposes a plan
/baoyu-diagram "how JWT authentication works"
/baoyu-diagram "Kubernetes architecture" --type structural
/baoyu-diagram "OAuth 2.0 flow" --type sequence
# File path — skill reads, analyzes, and proposes a plan
/baoyu-diagram path/to/article.md
# Language and output path
/baoyu-diagram "微服务架构" --lang zh
/baoyu-diagram "build pipeline" --out docs/build-pipeline.svg
Options:
| Option | Description |
|---|---|
--type <name> | flowchart, sequence, structural, illustrative, class, auto (default). Skips type recommendation. |
--lang <code> | Output language (en, zh, ja, ...) |
--out <path> | Output file path. Generates exactly one diagram focused on the most important aspect. |
Diagram types:
| Type | Reader need | Verbs that trigger it |
|---|---|---|
flowchart | Walk me through the steps in order | walk through, steps, process, lifecycle, workflow, state machine |
sequence | Who talks to whom, in what order | protocol, handshake, auth flow, OAuth, TCP, request/response |
structural | Show me what's inside what, how it's organised | architecture, components, topology, layout, what's inside |
illustrative | Give me the intuition — draw the mechanism | how does X work, explain X, intuition for, why does X do Y |
class | What are the types and how are they related | class diagram, UML, inheritance, interface, schema |
Not an image-generation skill — no LLM image model is called. Claude writes the SVG by hand with hand-computed layout math, so every diagram honors the design system. Embedded <style> block with @media (prefers-color-scheme: dark) means the same file renders correctly in both light and dark mode anywhere it's embedded.
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.
# 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:
hero, conceptual, typography, metaphor, scene, minimalwarm, elegant, cool, dark, earth, vivid, pastel, mono, retro, duotone, macaronflat-vector, hand-drawn, painterly, digital, pixel, chalk, screen-printnone, title-only (default), title-subtitle, text-richsubtle, balanced (default), boldGenerate professional slide deck images from content. Creates comprehensive outlines with style instructions, then generates individual slide images.
# 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 <name> | Visual style: preset name or custom |
--audience <type> | Target: beginners, intermediate, experts, executives, general |
--lang <code> | Output language (en, zh, ja, etc.) |
--slides <number> | 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 <N> | 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 | chalkboard | bold-editorial |
![]() | ![]() | ![]() |
| corporate | dark-atmospheric | editorial-infographic |
![]() | ![]() | ![]() |
| fantasy-animation | intuition-machine | minimal |
![]() | ![]() | |
| notion | pixel-art | scientific |
![]() | ![]() | ![]() |
| sketch-notes | vector-illustration | vintage |
![]() | ||
| watercolor |
After generation, slides are automatically merged into .pptx and .pdf files for easy sharing.
Knowledge comic creator with flexible art style × tone combinations. Creates original educational comics with detailed panel layouts and sequential image generation.
# 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 | cinematic | dense |
![]() | ![]() | ![]() |
| splash | mixed | webtoon |
Smart article illustration skill with Type × Style × Palette three-dimension approach. Analyzes article structure, identifies positions requiring visual aids, and generates illustrations.
# 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 | elegant | warm |
![]() | ![]() | ![]() |
| minimal | blueprint | watercolor |
![]() | ![]() | |
| editorial | scientific |
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.
# Post with text
/baoyu-post-to-x "Hello from AI Agent!"
# 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
Post content to WeChat Official Account (微信公众号). Two modes available:
Image-Text (贴图) - Multiple images with short title/content:
/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:
/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 (local IP allowlisted in WeChat) |
| Browser | Slow | Chrome, login session |
| Remote API | Fast | API credentials + SSH-reachable server whose IP is on WeChat's allowlist |
API Configuration (for faster publishing):
# 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:
Browser Method (no API setup needed): Requires Google Chrome. First run opens browser for QR code login (session preserved).
Remote API Method (for when WeChat's IP allowlist excludes your local machine): tunnels WeChat API calls through an SSH SOCKS5 dynamic port forward to a server whose IP is on the allowlist. No files are written to the remote host and AppSecret never leaves the local process. Add to your EXTEND.md:
# Optional: only set when WeChat's IP allowlist excludes your local machine
remote_publish_host: server.example.com
remote_publish_user: deploy
remote_publish_identity_file: ~/.ssh/id_ed25519
Then publish with --remote (or set default_publish_method: remote-api). Authentication is SSH key only; only the typed remote_publish_* keys are honored.
Multi-Account Support: Manage multiple WeChat Official Accounts via EXTEND.md:
mkdir -p .baoyu-skills/baoyu-post-to-wechat
Create .baoyu-skills/baoyu-post-to-wechat/EXTEND.md:
# 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 <alias> |
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).
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):
# 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:
# 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 <path> | Cover image |
--title <text> | Override title (max 32 chars) |
--summary <text> | 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-powered generation backends.
AI SDK-based image generation using OpenAI GPT Image 2, 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.
# Basic generation (auto-detect provider)
/baoyu-image-gen --prompt "A cute cat" --image cat.png
# With aspect ratio
/baoyu-image-gen --prompt "A landscape" --image landscape.png --ar 16:9
# High quality (2k)
/baoyu-image-gen --prompt "A banner" --image banner.png --quality 2k
# Specific provider
/baoyu-image-gen --prompt "A cat" --image cat.png --provider openai --model gpt-image-2
# Azure OpenAI (model = deployment name)
/baoyu-image-gen --prompt "A cat" --image cat.png --provider azure --model gpt-image-2
# OpenRouter
/baoyu-image-gen --prompt "A cat" --image cat.png --provider openrouter
# OpenRouter with reference images
/baoyu-image-gen --prompt "Make it blue" --image out.png --provider openrouter --model google/gemini-3.1-flash-image --ref source.png
# DashScope (Aliyun Tongyi Wanxiang)
/baoyu-image-gen --prompt "一只可爱的猫" --image cat.png --provider dashscope
# DashScope with custom size
/baoyu-image-gen --prompt "为咖啡品牌设计一张 21:9 横幅海报,包含清晰中文标题" --image banner.png --provider dashscope --model qwen-image-2.0-pro --size 2048x872
# Z.AI GLM-Image
/baoyu-image-gen --prompt "一张带清晰中文标题的科技海报" --image out.png --provider zai
# MiniMax
/baoyu-image-gen --prompt "A fashion editorial portrait by a bright studio window" --image out.jpg --provider minimax
# MiniMax with subject reference
/baoyu-image-gen --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 (default: google/nano-banana-2)
/baoyu-image-gen --prompt "A cat" --image cat.png --provider replicate
# Replicate Seedream 4.5
/baoyu-image-gen --prompt "A studio portrait" --image portrait.png --provider replicate --model bytedance/seedream-4.5 --ar 3:2
# Replicate Wan 2.7 Image Pro
/baoyu-image-gen --prompt "A concept frame" --image frame.png --provider replicate --model wan-video/wan-2.7-image-pro --size 2048x1152
# Jimeng (即梦)
/baoyu-image-gen --prompt "一只可爱的猫" --image cat.png --provider jimeng
# Seedream (豆包)
/baoyu-image-gen --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-image-gen --prompt "Make it blue" --image out.png --ref source.png
# Batch mode
/baoyu-image-gen --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, zai, minimax, jimeng, seedream, replicate, or agnes |
--model, -m | Model ID or deployment name. Azure uses deployment name; OpenRouter uses full model IDs; Z.AI uses glm-image; MiniMax uses image-01 / image-01-live |
--ar | Aspect ratio (e.g., 16:9, 1:1, 4:3) |
--size | Size (e.g., 1024x1024; gpt-image-2 accepts valid custom sizes up to 3840px max edge) |
--quality | normal or 2k (default: 2k) |
--imageSize | 1K, 2K, or 4K for Google/OpenRouter |
--imageApiDialect | openai-native or ratio-metadata for OpenAI-compatible gateways |
--ref | Reference images (Google, OpenAI, Azure OpenAI, OpenRouter, Replicate supported families, MiniMax, or Seedream 5.0/4.5/4.0) |
--n | Number of images per request (replicate currently requires --n 1) |
--json | JSON output |
Environment Variables (see 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) | - |
ZAI_API_KEY | Z.AI API key | - |
BIGMODEL_API_KEY | Backward-compatible alias for Z.AI API key | - |
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-2 |
AZURE_OPENAI_DEPLOYMENT | Azure default deployment name | - |
AZURE_OPENAI_IMAGE_MODEL | Backward-compatible Azure deployment/model alias | gpt-image-2 |
OPENROUTER_IMAGE_MODEL | OpenRouter model | google/gemini-3.1-flash-image |
GOOGLE_IMAGE_MODEL | Google model | gemini-3-pro-image |
DASHSCOPE_IMAGE_MODEL | DashScope model | qwen-image-2.0-pro |
ZAI_IMAGE_MODEL | Z.AI model | glm-image |
BIGMODEL_IMAGE_MODEL | Backward-compatible alias for Z.AI model | glm-image |
MINIMAX_IMAGE_MODEL | MiniMax model | image-01 |
REPLICATE_IMAGE_MODEL | Replicate model | google/nano-banana-2 |
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_API_DIALECT | OpenAI-compatible image API dialect (openai-native or ratio-metadata) | openai-native |
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 | - |
ZAI_BASE_URL | Custom Z.AI endpoint | https://api.z.ai/api/paas/v4 |
BIGMODEL_BASE_URL | Backward-compatible alias for Z.AI endpoint | - |
MINIMAX_BASE_URL | Custom MiniMax endpoint | https://api.minimaxi.com |
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_<PROVIDER>_CONCURRENCY | Override provider concurrency | provider-specific |
BAOYU_IMAGE_GEN_<PROVIDER>_START_INTERVAL_MS | Override provider request start gap | provider-specific |
Provider Notes:
--model means Azure deployment name, not the underlying model family.qwen-image-2.0-pro is the recommended default for custom --size, 21:9, and strong Chinese/English text rendering.glm-image is recommended for posters, diagrams, and text-heavy Chinese/English images. Reference images are not supported.image-01 supports documented custom width / height; image-01-live is lower latency and works best with --ar.subject_reference; the current API is specialized toward character / portrait consistency.google/nano-banana-2. baoyu-image-gen only enables Replicate advanced options for google/nano-banana*, bytedance/seedream-4.5, bytedance/seedream-5-lite, wan-video/wan-2.7-image, and wan-video/wan-2.7-image-pro.--n > 1 is blocked locally instead of silently dropping extra results.--quality / --ar, Seedream uses validated --size / --ar, and Wan uses validated --size (with --ar converted locally to a concrete size).Provider Auto-Selection:
--provider is specified → use it--ref is provided and no provider is specified → try Google, then OpenAI, Azure, OpenRouter, Replicate, Seedream, MiniMax, and finally AgnesInteracts with Gemini Web to generate text and images.
Text Generation:
/baoyu-danger-gemini-web "Hello, Gemini"
/baoyu-danger-gemini-web --prompt "Explain quantum computing"
Image Generation:
/baoyu-danger-gemini-web --prompt "A cute cat" --image cat.png
/baoyu-danger-gemini-web --promptfiles system.md content.md --image out.png
Utility tools for content processing.
Download YouTube video transcripts/subtitles and cover images. Supports multiple languages, translation, chapters, and speaker identification. Caches raw data for fast re-formatting.
# 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 |
|---|---|---|
<url-or-id> | YouTube URL or video ID | Required |
--languages <codes> | Language codes, comma-separated | en |
--format <fmt> | Output format: text, srt | text |
--translate <code> | 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 |
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.
# 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> | URL to fetch |
-o <path> | Output file path |
--wait | Wait for user signal before capturing |
--timeout <ms> | Page load timeout (default: 30000) |
Converts X (Twitter) content to markdown format. Supports tweet threads and X Articles.
# 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/<user>/status/<id>https://twitter.com/<user>/status/<id>https://x.com/i/article/<id>Authentication: Uses environment variables (X_AUTH_TOKEN, X_CT0) or Chrome login for cookie-based auth.
Compress images to reduce file size while maintaining quality.
/baoyu-compress-image path/to/image.png
/baoyu-compress-image path/to/images/ --quality 80
Format plain text or markdown files with proper frontmatter, titles, summaries, headings, bold, lists, and code blocks.
# Format a markdown file
/baoyu-format-markdown path/to/article.md
# Format with specific output
/baoyu-format-markdown path/to/draft.md
Workflow:
{filename}-formatted.mdFrontmatter 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 |
Convert markdown files into styled HTML with WeChat-compatible themes, syntax highlighting, and optional bottom citations for external links.
# 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
Translate articles and documents between languages with three modes: quick (direct), normal (analysis-informed), and refined (full publication-quality workflow with review and polish).
# 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 |
|---|---|
<source> | File path, URL, or inline text |
--mode <mode> | quick, normal (default), refined |
--from <lang> | Source language (auto-detect if omitted) |
--to <lang> | Target language (default: zh-CN) |
--audience <type> | Target reader profile (default: general) |
--style <style> | Translation style (default: storytelling) |
--glossary <file> | Additional glossary file |
Modes:
| Mode | Steps | Use Case |
|---|---|---|
| Quick | Translate | Short texts, informal content |
| Normal | Analyze → Translate | Articles, blog posts |
| Refined | Analyze → Translate → Review → Polish | Publication-quality documents |
After normal mode completes, you can reply "继续润色" or "refine" to continue with review and polish steps.
Audience Presets:
| Value | Description |
|---|---|
general | General readers (default) — plain language, more translator's notes |
technical | Developers / engineers — less annotation on common tech terms |
academic | Researchers / scholars — formal register, precise terminology |
business | Business professionals — business-friendly tone |
Custom audience descriptions are also accepted, e.g., --audience "AI-interested general readers".
Style Presets:
| Value | Description |
|---|---|
storytelling | Engaging narrative flow (default) — smooth transitions, vivid phrasing |
formal | Professional, structured — neutral tone, no colloquialisms |
technical | Precise, documentation-style — concise, terminology-heavy |
literal | Close to original structure — minimal restructuring |
academic | Scholarly, rigorous — formal register, complex clauses OK |
business | Concise, results-focused — action-oriented, executive-friendly |
humorous | Preserves and adapts humor — witty, recreates comedic effect |
conversational | Casual, spoken-like — friendly, as if explaining to a friend |
elegant | Literary, polished prose — aesthetically refined, carefully crafted |
Custom style descriptions are also accepted, e.g., --style "poetic and lyrical".
Features:
Summarize WeChat group chat highlights into a structured digest. Extracts topics, quotes, and stats from group messages using wx-cli. Maintains per-group history, per-user profiles, and per-group fact memory across runs. Supports normal and roast (毒舌) versions, and answers @bot questions raised in the chat.
# Summarize a group's recent messages
/baoyu-wechat-summary 相亲相爱一家人 最近 1 天
# Weekly summary
/baoyu-wechat-summary AI 技术群 最近 7 天
# Incremental (since last digest)
/baoyu-wechat-summary 相亲相爱一家人
# Roast version
/baoyu-wechat-summary 相亲相爱一家人 最近 3 天 毒舌版
Requirements:
npm install -g @jackwener/wx-cli)Features:
Extract resources and JavaScript from any installed Electron app's app.asar. When .js.map files embed sourcesContent, restores the original source tree (TypeScript/JSX included); otherwise formats the minified JS/CSS with Prettier in place. Always skips node_modules. Works on macOS and Windows; pass --asar <path> on other platforms.
# Extract by app name (default output: ~/Downloads/Codex-electron-extract/)
/baoyu-electron-extract Codex
# Extract by absolute path (.app bundle, install dir, or .asar file)
/baoyu-electron-extract "/Applications/Visual Studio Code.app"
/baoyu-electron-extract --asar /Applications/Codex.app/Contents/Resources/app.asar Codex
# Custom output directory
/baoyu-electron-extract Codex --output ~/work/codex-source
# Preview discovery without writing anything
/baoyu-electron-extract Codex --dry-run
# Overwrite an existing output directory
/baoyu-electron-extract Codex --force
Options:
| Option | Description | Default |
|---|---|---|
<app> | App name or absolute path (required unless --asar) | — |
--output, -o | Output directory | ~/Downloads/<AppName>-electron-extract |
--asar | Override the resolved .asar path | auto-discovered |
--force, -f | Allow writing into a non-empty existing output dir | false |
--skip-format | Skip Prettier formatting | false |
--skip-restore | Skip source-map restoration | false |
--no-unpacked | Don't copy app.asar.unpacked/ alongside | false |
--dry-run | Print resolved paths and exit without writing | false |
--json | Emit one JSON-line summary on stdout | false |
Output layout: extract-report.json (counts, warnings, paths), extracted/ (raw asar, formatted in place when no map), extracted.unpacked/ (native modules if present), and restored/ (rebuilt source tree from .js.map files).
Some skills require API keys or custom configuration. Environment variables can be set in .env files:
Load Priority (higher priority overrides lower):
OPENAI_API_KEY=xxx /baoyu-image-gen ...)process.env (system environment)<cwd>/.baoyu-skills/.env (project-level)~/.baoyu-skills/.env (user-level)Setup:
# Create user-level config directory
mkdir -p ~/.baoyu-skills
# Create .env file
cat > ~/.baoyu-skills/.env << 'EOF'
# OpenAI
OPENAI_API_KEY=sk-xxx
OPENAI_IMAGE_MODEL=gpt-image-2
# OPENAI_BASE_URL=https://api.openai.com/v1
# OPENAI_IMAGE_USE_CHAT=false
# Azure OpenAI
AZURE_OPENAI_API_KEY=xxx
AZURE_OPENAI_BASE_URL=https://your-resource.openai.azure.com
AZURE_OPENAI_DEPLOYMENT=gpt-image-2
# AZURE_API_VERSION=2025-04-01-preview
# OpenRouter
OPENROUTER_API_KEY=sk-or-xxx
OPENROUTER_IMAGE_MODEL=google/gemini-3.1-flash-image
# OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
# OPENROUTER_HTTP_REFERER=https://your-app.example.com
# OPENROUTER_TITLE=Your App Name
# Google
GOOGLE_API_KEY=xxx
GOOGLE_IMAGE_MODEL=gemini-3-pro-image
# GOOGLE_BASE_URL=https://generativelanguage.googleapis.com/v1beta
# DashScope (Aliyun Tongyi Wanxiang)
DASHSCOPE_API_KEY=sk-xxx
DASHSCOPE_IMAGE_MODEL=qwen-image-2.0-pro
# DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/api/v1
# Z.AI
ZAI_API_KEY=xxx
ZAI_IMAGE_MODEL=glm-image
# ZAI_BASE_URL=https://api.z.ai/api/paas/v4
# MiniMax
MINIMAX_API_KEY=xxx
MINIMAX_IMAGE_MODEL=image-01
# MINIMAX_BASE_URL=https://api.minimaxi.com
# Replicate
REPLICATE_API_TOKEN=r8_xxx
REPLICATE_IMAGE_MODEL=google/nano-banana-2
# REPLICATE_BASE_URL=https://api.replicate.com
# Jimeng (即梦)
JIMENG_ACCESS_KEY_ID=xxx
JIMENG_SECRET_ACCESS_KEY=xxx
JIMENG_IMAGE_MODEL=jimeng_t2i_v40
# JIMENG_BASE_URL=https://visual.volcengineapi.com
# JIMENG_REGION=cn-north-1
# Seedream (豆包)
ARK_API_KEY=xxx
SEEDREAM_IMAGE_MODEL=doubao-seedream-5-0-260128
# SEEDREAM_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
EOF
Project-level config (for team sharing):
mkdir -p .baoyu-skills
# Add .baoyu-skills/.env to .gitignore to avoid committing secrets
echo ".baoyu-skills/.env" >> .gitignore
All skills support customization via EXTEND.md files. Create an extension file to override default styles, add custom configurations, or define your own presets.
Extension paths (checked in priority order):
.baoyu-skills/<skill-name>/EXTEND.md - Project-level (for team/project-specific settings)~/.baoyu-skills/<skill-name>/EXTEND.md - User-level (for personal preferences)Example: To customize baoyu-cover-image with your brand colors:
mkdir -p .baoyu-skills/baoyu-cover-image
Then create .baoyu-skills/baoyu-cover-image/EXTEND.md:
## Custom Palettes
### corporate-tech
- Primary colors: #1a73e8, #4A90D9
- Background: #F5F7FA
- Accent colors: #00B4D8, #48CAE4
- Decorative hints: Clean lines, subtle gradients
- Best for: SaaS, enterprise, technical
The extension content will be loaded before skill execution and override defaults.
This skill uses the Gemini Web API (reverse-engineered).
Warning: This project uses unofficial API access via browser cookies. Use at your own risk.
Supported browsers (auto-detected): Google Chrome, Chrome Canary/Beta, Chromium, Microsoft Edge
Proxy configuration: If you need a proxy to access Google services (e.g., in China), set environment variables inline:
HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 /baoyu-danger-gemini-web "Hello"
This skill uses a reverse-engineered X (Twitter) API.
Warning: This is NOT an official API. Use at your own risk.
This project was inspired by and builds upon the following open source projects:
Unless otherwise noted, this repository is licensed under the MIT License.
Published ClawHub skills follow ClawHub registry rules and are distributed under MIT-0. Third-party code and assets retain their original licenses where noted.
name: baoyu-article-illustrator
description: Analyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette three-dimension approach. Use when user asks to "illustrate article", "add images", "generate images for article", or "为文章配图".
version: 1.117.4
metadata:
openclaw:
homepage: https://github.com/JimLiu/baoyu-skills#baoyu-article-illustratorAnalyze articles, identify illustration positions, generate images with Type × Style × Palette consistency.
When this skill prompts the user, follow this tool-selection rule (priority order):
AskUserQuestion, request_user_input, clarify, ask_user, or any equivalent.Concrete AskUserQuestion references below are examples — substitute the local equivalent in other runtimes.
When this skill needs to render an image, resolve the backend in this order:
EXTEND.md sets preferred_image_backend to a backend available right now, use it.auto, unset, or the pinned backend isn't available):
imagegen) — first, inspect your available-skills / tool inventory. If a skill named imagegen is listed, you are running inside Codex and MUST use it: invoke via the Skill tool with skill: "imagegen", passing the saved prompt file's content (plus output path and aspect ratio per Codex imagegen's own args). Codex imagegen is the official raster backend in that runtime and outranks any non-native skill (e.g., baoyu-image-gen) unless the user has explicitly pinned a different preferred_image_backend.codex exec (codex-imagegen) — if the current runtime exposes no native imagegen skill but the codex CLI is on PATH with an active codex login, route through baoyu-image-gen --provider codex-cli (preferred), or — if baoyu-image-gen is unavailable — invoke the bundled wrapper directly. Details, parameters, and the runtime-discovery procedure live in references/codex-imagegen.md — load that file only when this branch is selected.GenerateImage) — if the runtime exposes a native GenerateImage tool, you are running inside Cursor and it outranks any non-native skill the same way Codex imagegen does. Two hard caveats: (a) it has no aspect-ratio parameter — state the target aspect ratio / dimensions explicitly in the prompt text passed as description; (b) it does not accept an output directory — it saves to a tool-managed location, so after generation copy/move the file to the skill's expected output path (e.g., outputs/.../NN-xxx.png). Reference images go in reference_image_paths.image_generate), use it the same way.baoyu-image-gen), use it.⛔ Never substitute SVG, HTML, canvas, or other code-based rendering for raster image generation. Codex imagegen's own description says it should be used "when the output should be a bitmap asset rather than repo-native code or vector." If you cannot resolve a raster backend via step 3, fall through to step 4 and ask the user — do not silently emit SVG, write inline <svg> markup, or produce HTML/CSS art as a substitute. This applies even if the article/section seems "diagram-like": the consumer skill calling this rule has already decided that a raster image is what it needs.
⛔ Never repair rendered text by painting over a generated bitmap. Do not use ImageMagick, Pillow, Canvas, SVG, HTML/CSS, OCR scripts, or any other programmatic overlay to cover, rewrite, erase, stroke, or replace labels, captions, or any other text inside an already generated illustration. If text is wrong or unclear, regenerate from a corrected prompt, redraw with less or no on-image text, or ask the user which imperfect candidate to keep.
Setting preferred_image_backend: ask forces the step-3 prompt every run regardless of available backends. Users change the pinned backend via the ## Changing Preferences section below.
Prompt file requirement (hard): write each image's full, final prompt to a standalone file under prompts/ (naming: NN-{type}-[slug].md) BEFORE invoking any backend. The backend receives the prompt file (or its content); the file is the reproducibility record and lets you switch backends without regenerating prompts.
Concrete tool names (imagegen, GenerateImage, image_generate, baoyu-image-gen) above are examples — substitute the local equivalents under the same rule.
After every prompt file for the run has been saved and verified, generate images in batches by default.
Priority order:
generation_batch_size images at a time. Default: 4. An explicit user request in the current message, such as --batch-size 4 or "并行4张一起生成", overrides EXTEND.md.Rules:
Default behavior: confirm before generation.
EXTEND.md defaults as recommendation inputs only. None of them authorizes skipping confirmation.Users may supply reference images via --ref <files...> or by providing file paths / pasting images in conversation. Refs guide style, palette, composition, or subject for specific illustrations.
Full detection, storage, and processing rules are in references/workflow.md (Step 1.0 saves to references/NN-ref-{slug}.{ext}; Step 5.3 processes per-illustration usage direct | style | palette). When the chosen backend supports batch input, direct-usage entries in each prompt file's references: frontmatter should be propagated into its batch payload so backends can pass them through (e.g. baoyu-image-gen accepts ref per task).
| Dimension | Controls | Examples |
|---|---|---|
| Type | Information structure | infographic, scene, flowchart, comparison, framework, timeline |
| Style | Rendering approach | notion, warm, minimal, blueprint, watercolor, elegant |
| Palette | Color scheme (optional) | macaron, warm, neon — overrides style's default colors |
Combine freely: --type infographic --style vector-illustration --palette macaron
Or use presets: --preset edu-visual → type + style + palette in one flag. See Style Presets.
| Type | Best For |
|---|---|
infographic | Data, metrics, technical |
scene | Narratives, emotional |
flowchart | Processes, workflows |
comparison | Side-by-side, options |
framework | Models, architecture |
timeline | History, evolution |
See references/styles.md for Core Styles, full gallery, and Type × Style compatibility.
- [ ] Step 1: Pre-check (EXTEND.md, references, config)
- [ ] Step 2: Analyze content
- [ ] Step 3: Confirm settings (AskUserQuestion)
- [ ] Step 4: Generate outline
- [ ] Step 5: Generate images
- [ ] Step 6: Finalize
1.5 Load Preferences (EXTEND.md) ⛔ BLOCKING
Check EXTEND.md in priority order — the first one found wins:
| Priority | Path | Scope |
|---|---|---|
| 1 | .baoyu-skills/baoyu-article-illustrator/EXTEND.md | Project |
| 2 | ${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-article-illustrator/EXTEND.md | XDG |
| 3 | $HOME/.baoyu-skills/baoyu-article-illustrator/EXTEND.md | User home |
| Result | Action |
|---|---|
| Found | Read, parse, display summary |
| Not found | ⛔ Run first-time-setup |
Full procedures: references/workflow.md
| Analysis | Output |
|---|---|
| Content type | Technical / Tutorial / Methodology / Narrative |
| Purpose | information / visualization / imagination |
| Core arguments | 2-5 main points |
| Positions | Where illustrations add value |
CRITICAL: Metaphors → visualize underlying concept, NOT literal image.
Full procedures: references/workflow.md
Hard gate: this step is mandatory per the Confirmation Policy — Steps 4+ cannot start until the user confirms here (or explicitly opts out with "直接生成" / equivalent wording in the current request).
ONE AskUserQuestion, max 4 Qs. Q1-Q2 REQUIRED. Q3 required unless preset chosen.
| Q | Options |
|---|---|
| Q1: Preset or Type | [Recommended preset], [alt preset], or manual: infographic, scene, flowchart, comparison, framework, timeline, mixed |
| Q2: Density | minimal (1-2), balanced (3-5), per-section (Recommended), rich (6+) |
| Q3: Style | [Recommended], minimal-flat, sci-fi, hand-drawn, editorial, scene, poster, Other — skip if preset chosen |
| Q4: Palette | Default (style colors), macaron, warm, neon — skip if preset includes palette or preferred_palette set |
| Q5: Language | When article language ≠ EXTEND.md setting |
Full procedures: references/workflow.md
Save outline.md with frontmatter (type, density, style, palette, image_count) and entries:
## Illustration 1
**Position**: [section/paragraph]
**Purpose**: [why]
**Visual Content**: [what]
**Filename**: 01-infographic-concept-name.png
Full template: references/workflow.md
⛔ BLOCKING: Prompt files MUST be saved before ANY image generation. This is a hard requirement regardless of which backend is chosen — the prompt file is the reproducibility record.
prompts/NN-{type}-{slug}.md with YAML frontmatter--prompt without saving prompt files first## Image Generation Tools rule at the top: use whatever is available; if multiple, ask the user once. Do this once per session before any generation.
codex-imagegen invocation: when the rule resolves to codex-imagegen, see references/codex-imagegen.md for the invocation contract (preferred baoyu-image-gen --provider codex-cli path, runtime wrapper discovery, parameter notes, stdout schema, batch semantics).## Batch Generation Policy: backend native batch first, runtime parallel tool calls second, sequential only as fallback. Default batch size is 4 unless EXTEND.md or the current request overrides it.direct/style/palette) per prompt frontmatterFull procedures: references/workflow.md
Insert  after paragraphs. Path computed relative to article file based on output directory setting.
Article Illustration Complete!
Article: [path] | Type: [type] | Density: [level] | Style: [style] | Palette: [palette or default]
Images: X/N generated
Output directory is determined by default_output_dir in EXTEND.md (set during first-time setup):
default_output_dir | Output Path | Markdown Insert Path |
|---|---|---|
imgs-subdir (default) | {article-dir}/imgs/ | imgs/NN-{type}-{slug}.png |
same-dir | {article-dir}/ | NN-{type}-{slug}.png |
illustrations-subdir | {article-dir}/illustrations/ | illustrations/NN-{type}-{slug}.png |
independent | illustrations/{topic-slug}/ | illustrations/{topic-slug}/NN-{type}-{slug}.png (relative to cwd) |
All auxiliary files (outline, prompts) are saved inside the output directory:
{output-dir}/
├── outline.md
├── prompts/
│ └── NN-{type}-{slug}.md
└── NN-{type}-{slug}.png
When input is pasted content (no file path), always uses illustrations/{topic-slug}/ with source-{slug}.{ext} saved alongside.
Slug: 2-4 words, kebab-case. Conflict: append -YYYYMMDD-HHMMSS.
| Action | Steps |
|---|---|
| Edit | Update prompt → Regenerate → Update reference |
| Add | Position → Prompt → Generate → Update outline → Insert |
| Delete | Delete files → Remove reference → Update outline |
Text correction policy:
| File | Content |
|---|---|
| references/workflow.md | Detailed procedures |
| references/usage.md | Command syntax |
| references/styles.md | Style gallery + Palette gallery |
| references/style-presets.md | Preset shortcuts (type + style + palette) |
| references/prompt-construction.md | Prompt templates |
| references/config/first-time-setup.md | First-time setup |
EXTEND.md lives at the first matching path listed in Step 1.5. Three ways to change it:
references/config/preferences-schema.md.preferred_image_backend: auto — default; runtime-native tool wins, falls back to the only installed backend, asks only if multiple non-native are present.preferred_image_backend: codex-imagegen — pin to Codex's built-in.preferred_image_backend: baoyu-image-gen — pin to the baoyu-image-gen skill.preferred_image_backend: ask — confirm backend every run.generation_batch_size: 4 — default number of images to render concurrently when the runtime supports parallel generation calls.preferred_type: infographic, preferred_style: notion, preferred_palette: macaron, language: zh.default_output_dir: imgs-subdir — where to write generated images relative to the article.
评论 (0)
暂无评论,成为第一个评论者吧!