SkillAtlasSkill 详情

baoyu-article-illustrator

Skills shared by Baoyu for improving daily work efficiency with AI Agents (Claude Code, Codex, e...

审核状态:已审核Quality 72Security 78

复制安装命令

用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。

复制前请先查看来源、License 和安全提示。

项目 README

来源文件:README.md

抓取于 2026年8月1日

baoyu-skills

English | 中文

Skills shared by Baoyu for improving daily work efficiency with AI Agents (Claude Code, Codex, etc.).

Prerequisites

  • Node.js environment installed
  • Ability to run npx bun commands

Installation

Tip: 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.

Quick Install (Recommended)

npx skills add jimliu/baoyu-skills

Codex Project-Level Install

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-image
  • baoyu-article-illustrator
  • baoyu-post-to-wechat

You 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:

  • User-level: ~/.baoyu-skills/.env
  • Project-level: <project>/.baoyu-skills/.env

Project-level .env files are useful when credentials should apply only to the current project. Do not commit them to Git.

Publish to ClawHub / OpenClaw

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.

Register as Plugin Marketplace

Run the following command in the Agent:

/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

# 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

Available Plugin

The marketplace now exposes a single plugin so each skill is registered exactly once.

PluginDescriptionIncludes
baoyu-skillsContent generation, AI backends, and utility tools for daily work efficiencyAll 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 the Agent
  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

Available Skills

Skills are organized into three categories:

Featured Design Skill: baoyu-design

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.

Cursor running baoyu-design
npx skills add JimLiu/baoyu-design

Content Skills

Content generation and publishing skills.

baoyu-xhs-images

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:

cutefreshwarm
cutefreshwarm
boldminimalretro
boldminimalretro
popnotionchalkboard
popnotionchalkboard

Layouts (information density):

LayoutDensityBest for
sparse1-2 ptsCovers, quotes
balanced3-4 ptsRegular content
dense5-8 ptsKnowledge cards, cheat sheets
list4-7 itemsChecklists, rankings
comparison2 sidesBefore/after, pros/cons
flow3-6 stepsProcesses, timelines

Layout Previews:

sparsebalanceddense
sparsebalanceddense
listcomparisonflow
listcomparisonflow

baoyu-infographic

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:

OptionDescription
--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):

LayoutBest For
bridgeProblem-solution, gap-crossing
circular-flowCycles, recurring processes
comparison-tableMulti-factor comparisons
do-dontCorrect vs incorrect practices
equationFormula breakdown, input-output
feature-listProduct features, bullet points
fishboneRoot cause analysis
funnelConversion processes, filtering
grid-cardsMultiple topics, overview
icebergSurface vs hidden aspects
journey-pathCustomer journey, milestones
layers-stackTechnology stack, layers
mind-mapBrainstorming, idea mapping
nested-circlesLevels of influence, scope
priority-quadrantsEisenhower matrix, 2x2
pyramidHierarchy, Maslow's needs
scale-balancePros vs cons, weighing
timeline-horizontalHistory, chronological events
tree-hierarchyOrg charts, taxonomy
vennOverlapping concepts

Layout Previews:

bridgecircular-flowcomparison-table
bridgecircular-flowcomparison-table
do-dontequationfeature-list
do-dontequationfeature-list
fishbonefunnelgrid-cards
fishbonefunnelgrid-cards
icebergjourney-pathlayers-stack
icebergjourney-pathlayers-stack
mind-mapnested-circlespriority-quadrants
mind-mapnested-circlespriority-quadrants
pyramidscale-balancetimeline-horizontal
pyramidscale-balancetimeline-horizontal
tree-hierarchyvenn
tree-hierarchyvenn

Styles (visual aesthetics):

StyleDescription
craft-handmade (Default)Hand-drawn illustration, paper craft aesthetic
claymation3D clay figures, playful stop-motion
kawaiiJapanese cute, big eyes, pastel colors
storybook-watercolorSoft painted illustrations, whimsical
chalkboardColorful chalk on black board
cyberpunk-neonNeon glow on dark, futuristic
bold-graphicComic style, halftone dots, high contrast
aged-academiaVintage science, sepia sketches
corporate-memphisFlat vector people, vibrant fills
technical-schematicBlueprint, isometric 3D, engineering
origamiFolded paper forms, geometric
pixel-artRetro 8-bit, nostalgic gaming
ui-wireframeGrayscale boxes, interface mockup
subway-mapTransit diagram, colored lines
ikea-manualMinimal line art, assembly style
knollingOrganized flat-lay, top-down
lego-brickToy brick construction, playful

Style Previews:

craft-handmadeclaymationkawaii
craft-handmadeclaymationkawaii
storybook-watercolorchalkboardcyberpunk-neon
storybook-watercolorchalkboardcyberpunk-neon
bold-graphicaged-academiacorporate-memphis
bold-graphicaged-academiacorporate-memphis
technical-schematicorigamipixel-art
technical-schematicorigamipixel-art
ui-wireframesubway-mapikea-manual
ui-wireframesubway-mapikea-manual
knollinglego-brick
knollinglego-brick

baoyu-diagram

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:

OptionDescription
--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:

TypeReader needVerbs that trigger it
flowchartWalk me through the steps in orderwalk through, steps, process, lifecycle, workflow, state machine
sequenceWho talks to whom, in what orderprotocol, handshake, auth flow, OAuth, TCP, request/response
structuralShow me what's inside what, how it's organisedarchitecture, components, topology, layout, what's inside
illustrativeGive me the intuition — draw the mechanismhow does X work, explain X, intuition for, why does X do Y
classWhat are the types and how are they relatedclass 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.

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.

# 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.

# 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:

OptionDescription
--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-onlyGenerate outline only, skip images
--prompts-onlyGenerate outline + prompts, skip images
--images-onlyGenerate 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

DimensionOptions
Textureclean, grid, organic, pixel, paper
Moodprofessional, warm, cool, vibrant, dark, neutral
Typographygeometric, humanist, handwritten, editorial, technical
Densityminimal, balanced, dense

Presets (pre-configured dimension combinations):

PresetDimensionsBest For
blueprint (default)grid + cool + technical + balancedArchitecture, system design
chalkboardorganic + warm + handwritten + balancedEducation, tutorials
corporateclean + professional + geometric + balancedInvestor decks, proposals
minimalclean + neutral + geometric + minimalExecutive briefings
sketch-notesorganic + warm + handwritten + balancedEducational, tutorials
watercolororganic + warm + humanist + minimalLifestyle, wellness
dark-atmosphericclean + dark + editorial + balancedEntertainment, gaming
notionclean + neutral + geometric + denseProduct demos, SaaS
bold-editorialclean + vibrant + editorial + balancedProduct launches, keynotes
editorial-infographicclean + cool + editorial + denseTech explainers, research
fantasy-animationorganic + vibrant + handwritten + minimalEducational storytelling
intuition-machineclean + cool + technical + denseTechnical docs, academic
pixel-artpixel + vibrant + technical + balancedGaming, developer talks
scientificclean + cool + technical + denseBiology, chemistry, medical
vector-illustrationclean + vibrant + humanist + balancedCreative, children's content
vintagepaper + warm + editorial + balancedHistorical, heritage

Style Previews:

blueprintchalkboardbold-editorial
blueprintchalkboardbold-editorial
corporatedark-atmosphericeditorial-infographic
corporatedark-atmosphericeditorial-infographic
fantasy-animationintuition-machineminimal
fantasy-animationintuition-machineminimal
notionpixel-artscientific
notionpixel-artscientific
sketch-notesvector-illustrationvintage
sketch-notesvector-illustrationvintage
watercolor
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.

# 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:

OptionValues
--artligne-claire (default), manga, realistic, ink-brush, chalk
--toneneutral (default), warm, dramatic, romantic, energetic, vintage, action
--styleohmsha, wuxia, shoujo (presets with special rules)
--layoutstandard (default), cinematic, dense, splash, mixed, webtoon
--aspect3:4 (default, portrait), 4:3 (landscape), 16:9 (widescreen)
--langauto (default), zh, en, ja, etc.

Art Styles (rendering technique):

Art StyleDescription
ligne-claireUniform lines, flat colors, European comic tradition (Tintin, Logicomix)
mangaLarge eyes, manga conventions, expressive emotions
realisticDigital painting, realistic proportions, sophisticated
ink-brushChinese brush strokes, ink wash effects
chalkChalkboard aesthetic, hand-drawn warmth

Tones (mood/atmosphere):

ToneDescription
neutralBalanced, rational, educational
warmNostalgic, personal, comforting
dramaticHigh contrast, intense, powerful
romanticSoft, beautiful, decorative elements
energeticBright, dynamic, exciting
vintageHistorical, aged, period authenticity
actionSpeed lines, impact effects, combat

Presets (art + tone + special rules):

PresetEquivalentSpecial Rules
ohmshamanga + neutralVisual metaphors, NO talking heads, gadget reveals
wuxiaink-brush + actionQi effects, combat visuals, atmospheric elements
shoujomanga + romanticDecorative elements, eye details, romantic beats

Layouts (panel arrangement):

LayoutPanels/PageBest for
standard4-6Dialogue, narrative flow
cinematic2-4Dramatic moments, establishing shots
dense6-9Technical explanations, timelines
splash1-2 largeKey moments, revelations
mixed3-7 variesComplex narratives, emotional arcs
webtoon3-5 verticalOhmsha tutorials, mobile reading

Layout Previews:

standardcinematicdense
standardcinematicdense
splashmixedwebtoon
splashmixedwebtoon

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.

# 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):

TypeDescriptionBest For
infographicData visualization, charts, metricsTechnical articles, data analysis
sceneAtmospheric illustration, mood renderingNarrative, personal stories
flowchartProcess diagrams, step visualizationTutorials, workflows
comparisonSide-by-side, before/after contrastProduct comparisons
frameworkConcept maps, relationship diagramsMethodologies, architecture
timelineChronological progressionHistory, project progress

Styles (rendering approach):

StyleDescriptionBest For
notion (default)Minimalist hand-drawn line artKnowledge sharing, SaaS, productivity
elegantRefined, sophisticatedBusiness, thought leadership
warmFriendly, approachablePersonal growth, lifestyle
minimalUltra-clean, zen-likePhilosophy, minimalism
blueprintTechnical schematicsArchitecture, system design
watercolorSoft artistic with natural warmthLifestyle, travel, creative
editorialMagazine-style infographicTech explainers, journalism
scientificAcademic precise diagramsBiology, chemistry, technical

Palettes (optional color override):

PaletteDescriptionBest For
macaronSoft pastel blocks (blue, mint, lavender, peach) on warm creamEducational, knowledge, tutorials
warmWarm earth tones on soft peach, no cool colorsBrand, product, lifestyle
neonVibrant neon on dark purpleGaming, retro, pop culture

Style Previews:

notionelegantwarm
notionelegantwarm
minimalblueprintwatercolor
minimalblueprintwatercolor
editorialscientific
editorialscientific

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.

# 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

baoyu-post-to-wechat

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:

MethodSpeedRequirements
API (Recommended)FastAPI credentials (local IP allowlisted in WeChat)
BrowserSlowChrome, login session
Remote APIFastAPI 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:

  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).

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 configuredBehavior
No accounts blockSingle-account mode (backward compatible)
1 accountAuto-select, no prompt
2+ accountsPrompt to select, or use --account <alias>
1 account has default: truePre-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):

# 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:

OptionDescription
--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 Generation Skills

AI-powered generation backends.

baoyu-image-gen

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:

OptionDescription
--prompt, -pPrompt text
--promptfilesRead prompt from files (concatenated)
--imageOutput image path (required)
--batchfileJSON batch file for multi-image generation
--jobsWorker count for batch mode
--providergoogle, openai, azure, openrouter, dashscope, zai, minimax, jimeng, seedream, replicate, or agnes
--model, -mModel 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
--arAspect ratio (e.g., 16:9, 1:1, 4:3)
--sizeSize (e.g., 1024x1024; gpt-image-2 accepts valid custom sizes up to 3840px max edge)
--qualitynormal or 2k (default: 2k)
--imageSize1K, 2K, or 4K for Google/OpenRouter
--imageApiDialectopenai-native or ratio-metadata for OpenAI-compatible gateways
--refReference images (Google, OpenAI, Azure OpenAI, OpenRouter, Replicate supported families, MiniMax, or Seedream 5.0/4.5/4.0)
--nNumber of images per request (replicate currently requires --n 1)
--jsonJSON output

Environment Variables (see Environment Configuration for setup):

VariableDescriptionDefault
OPENAI_API_KEYOpenAI API key-
AZURE_OPENAI_API_KEYAzure OpenAI API key-
OPENROUTER_API_KEYOpenRouter API key-
GOOGLE_API_KEYGoogle API key-
GEMINI_API_KEYAlias for GOOGLE_API_KEY-
DASHSCOPE_API_KEYDashScope API key (Aliyun)-
ZAI_API_KEYZ.AI API key-
BIGMODEL_API_KEYBackward-compatible alias for Z.AI API key-
MINIMAX_API_KEYMiniMax API key-
REPLICATE_API_TOKENReplicate API token-
JIMENG_ACCESS_KEY_IDJimeng Volcengine access key-
JIMENG_SECRET_ACCESS_KEYJimeng Volcengine secret key-
ARK_API_KEYSeedream Volcengine ARK API key-
OPENAI_IMAGE_MODELOpenAI modelgpt-image-2
AZURE_OPENAI_DEPLOYMENTAzure default deployment name-
AZURE_OPENAI_IMAGE_MODELBackward-compatible Azure deployment/model aliasgpt-image-2
OPENROUTER_IMAGE_MODELOpenRouter modelgoogle/gemini-3.1-flash-image
GOOGLE_IMAGE_MODELGoogle modelgemini-3-pro-image
DASHSCOPE_IMAGE_MODELDashScope modelqwen-image-2.0-pro
ZAI_IMAGE_MODELZ.AI modelglm-image
BIGMODEL_IMAGE_MODELBackward-compatible alias for Z.AI modelglm-image
MINIMAX_IMAGE_MODELMiniMax modelimage-01
REPLICATE_IMAGE_MODELReplicate modelgoogle/nano-banana-2
JIMENG_IMAGE_MODELJimeng modeljimeng_t2i_v40
SEEDREAM_IMAGE_MODELSeedream modeldoubao-seedream-5-0-260128
OPENAI_BASE_URLCustom OpenAI endpoint-
OPENAI_IMAGE_API_DIALECTOpenAI-compatible image API dialect (openai-native or ratio-metadata)openai-native
OPENAI_IMAGE_USE_CHATUse /chat/completions for OpenAI image generationfalse
AZURE_OPENAI_BASE_URLAzure resource or deployment endpoint-
AZURE_API_VERSIONAzure image API version2025-04-01-preview
OPENROUTER_BASE_URLCustom OpenRouter endpointhttps://openrouter.ai/api/v1
OPENROUTER_HTTP_REFEREROptional app/site URL for OpenRouter attribution-
OPENROUTER_TITLEOptional app name for OpenRouter attribution-
GOOGLE_BASE_URLCustom Google endpoint-
DASHSCOPE_BASE_URLCustom DashScope endpoint-
ZAI_BASE_URLCustom Z.AI endpointhttps://api.z.ai/api/paas/v4
BIGMODEL_BASE_URLBackward-compatible alias for Z.AI endpoint-
MINIMAX_BASE_URLCustom MiniMax endpointhttps://api.minimaxi.com
REPLICATE_BASE_URLCustom Replicate endpoint-
JIMENG_BASE_URLCustom Jimeng endpointhttps://visual.volcengineapi.com
JIMENG_REGIONJimeng regioncn-north-1
SEEDREAM_BASE_URLCustom Seedream endpointhttps://ark.cn-beijing.volces.com/api/v3
BAOYU_IMAGE_GEN_MAX_WORKERSOverride batch worker cap10
BAOYU_IMAGE_GEN_<PROVIDER>_CONCURRENCYOverride provider concurrencyprovider-specific
BAOYU_IMAGE_GEN_<PROVIDER>_START_INTERVAL_MSOverride provider request start gapprovider-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.
  • Z.AI: glm-image is recommended for posters, diagrams, and text-heavy Chinese/English images. Reference images are not supported.
  • 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.
  • Replicate defaults to 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.
  • Replicate currently saves exactly one output image per request. --n > 1 is blocked locally instead of silently dropping extra results.
  • Replicate model behavior is family-specific: nano-banana uses --quality / --ar, Seedream uses validated --size / --ar, and Wan uses validated --size (with --ar converted locally to a concrete size).

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, MiniMax, and finally Agnes
  3. If only one API key is available → use that provider
  4. If multiple providers are available → default to Google, then OpenAI, Azure, OpenRouter, DashScope, Z.AI, MiniMax, Replicate, Jimeng, Seedream, Agnes

baoyu-danger-gemini-web

Interacts 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 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.

# 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:

OptionDescriptionDefault
<url-or-id>YouTube URL or video IDRequired
--languages <codes>Language codes, comma-separateden
--format <fmt>Output format: text, srttext
--translate <code>Translate to specified language
--chaptersChapter segmentation from video description
--speakersSpeaker identification (requires AI post-processing)
--no-timestampsDisable timestamps
--listList available transcripts
--refreshForce 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.

# 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:

ModeDescriptionBest For
Auto (default)Captures immediately after page loadPublic pages, static content
Wait (--wait)Waits for user signal before captureLogin-required, dynamic content

Options:

OptionDescription
<url>URL to fetch
-o <path>Output file path
--waitWait for user signal before capturing
--timeout <ms>Page load timeout (default: 30000)

baoyu-danger-x-to-markdown

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.

baoyu-compress-image

Compress images to reduce file size while maintaining quality.

/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.

# 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:

FieldProcessing
titleUse existing, extract H1, or generate candidates
slugInfer from file path or generate from title
summaryGenerate engaging summary (100-150 chars)
coverImageCheck for imgs/cover.png in same directory

Formatting Rules:

ElementFormat
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.

# 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).

# 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:

OptionDescription
<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:

ModeStepsUse Case
QuickTranslateShort texts, informal content
NormalAnalyze → TranslateArticles, blog posts
RefinedAnalyze → Translate → Review → PolishPublication-quality documents

After normal mode completes, you can reply "继续润色" or "refine" to continue with review and polish steps.

Audience Presets:

ValueDescription
generalGeneral readers (default) — plain language, more translator's notes
technicalDevelopers / engineers — less annotation on common tech terms
academicResearchers / scholars — formal register, precise terminology
businessBusiness professionals — business-friendly tone

Custom audience descriptions are also accepted, e.g., --audience "AI-interested general readers".

Style Presets:

ValueDescription
storytellingEngaging narrative flow (default) — smooth transitions, vivid phrasing
formalProfessional, structured — neutral tone, no colloquialisms
technicalPrecise, documentation-style — concise, terminology-heavy
literalClose to original structure — minimal restructuring
academicScholarly, rigorous — formal register, complex clauses OK
businessConcise, results-focused — action-oriented, executive-friendly
humorousPreserves and adapts humor — witty, recreates comedic effect
conversationalCasual, spoken-like — friendly, as if explaining to a friend
elegantLiterary, polished prose — aesthetically refined, carefully crafted

Custom style descriptions are also accepted, e.g., --style "poetic and lyrical".

Features:

  • Custom glossaries via EXTEND.md with built-in EN→ZH glossary
  • Audience-aware translation with adjustable annotation depth
  • Automatic chunking for long documents (4000+ words) with parallel subagent translation
  • Figurative language interpreted by meaning, not word-for-word
  • Translator's notes for cultural/domain-specific references
  • Output directory with all intermediate files preserved

baoyu-wechat-summary

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:

  • wx-cli installed (npm install -g @jackwener/wx-cli)
  • WeChat 4.x running and logged in on macOS

Features:

  • Topic extraction with attribution and quotes
  • Message leaderboard and per-user profiles
  • Per-group fact memory: corrections confirmed in chat persist across digests (with injection guardrails)
  • Incremental mode (picks up where last digest left off)
  • Multi-day range splitting for large batches
  • Normal and roast (毒舌) digest versions
  • Profile backfill from historical digests

baoyu-electron-extract

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:

OptionDescriptionDefault
<app>App name or absolute path (required unless --asar)—
--output, -oOutput directory~/Downloads/<AppName>-electron-extract
--asarOverride the resolved .asar pathauto-discovered
--force, -fAllow writing into a non-empty existing output dirfalse
--skip-formatSkip Prettier formattingfalse
--skip-restoreSkip source-map restorationfalse
--no-unpackedDon't copy app.asar.unpacked/ alongsidefalse
--dry-runPrint resolved paths and exit without writingfalse
--jsonEmit one JSON-line summary on stdoutfalse

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).

Environment Configuration

Some skills require API keys or custom configuration. Environment variables can be set in .env files:

Load Priority (higher priority overrides lower):

  1. CLI environment variables (e.g., OPENAI_API_KEY=xxx /baoyu-image-gen ...)
  2. process.env (system environment)
  3. <cwd>/.baoyu-skills/.env (project-level)
  4. ~/.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

Customization

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):

  1. .baoyu-skills/<skill-name>/EXTEND.md - Project-level (for team/project-specific settings)
  2. ~/.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.

Disclaimer

baoyu-danger-gemini-web

This skill uses the Gemini Web API (reverse-engineered).

Warning: This project uses unofficial API access via browser cookies. Use at your own risk.

  • First run opens a browser to authenticate with Google
  • Cookies are cached for subsequent runs
  • No guarantees on API stability or availability

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"

baoyu-danger-x-to-markdown

This skill uses a reverse-engineered X (Twitter) API.

Warning: This is NOT an official API. Use at your own risk.

  • May break without notice if X changes their API
  • Account restrictions possible if API usage detected
  • First use requires consent acknowledgment
  • Authentication via environment variables or Chrome login

Credits

This project was inspired by and builds upon the following open source projects:

License

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.

Star History

Star History Chart

其他

中风险

  • 来源需自行核对维护者身份。
  • 未检测到明显脚本安装指令。
  • 可能需要外部 token、网络权限或第三方服务。
  • 未检测到高风险命令。
  • 扫描发现:2 条。

Codex — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/JimLiu/baoyu-skills.git
  3. 将 "skills/baoyu-article-illustrator" 文件夹复制到 Codex 的 skills 目录中。
  4. 重启 Codex 让新的 skill 生效。

Codex — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Codex 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Codex 让新的 skill 生效。

Claude Code — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/JimLiu/baoyu-skills.git
  3. 将 "skills/baoyu-article-illustrator" 文件夹复制到 Claude Code 的 skills 目录中。
  4. 重启 Claude Code 让新的 skill 生效。

Claude Code — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Claude Code 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Claude Code 让新的 skill 生效。

Cursor — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/JimLiu/baoyu-skills.git
  3. 将 "skills/baoyu-article-illustrator" 文件夹复制到 Cursor 的 skills 目录中。
  4. 重启 Cursor 让新的 skill 生效。

Cursor — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Cursor 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Cursor 让新的 skill 生效。

GitHub Copilot — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/JimLiu/baoyu-skills.git
  3. 将 "skills/baoyu-article-illustrator" 文件夹复制到 GitHub Copilot 的 skills 目录中。
  4. 重启 GitHub Copilot 让新的 skill 生效。

GitHub Copilot — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 GitHub Copilot 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 GitHub Copilot 让新的 skill 生效。

Windsurf — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/JimLiu/baoyu-skills.git
  3. 将 "skills/baoyu-article-illustrator" 文件夹复制到 Windsurf 的 skills 目录中。
  4. 重启 Windsurf 让新的 skill 生效。

Windsurf — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Windsurf 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Windsurf 让新的 skill 生效。
查看 SKILL.md 原文
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-illustrator

Article Illustrator

Analyze articles, identify illustration positions, generate images with Type × Style × Palette consistency.

User Input Tools

When this skill prompts the user, follow this tool-selection rule (priority order):

  1. Prefer built-in user-input tools exposed by the current agent runtime — e.g., AskUserQuestion, request_user_input, clarify, ask_user, or any equivalent.
  2. Fallback: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question.
  3. Batching: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.

Concrete AskUserQuestion references below are examples — substitute the local equivalent in other runtimes.

Image Generation Tools

When this skill needs to render an image, resolve the backend in this order:

  1. Current-request override — if the user names a specific backend in the current message, use it.
  2. Saved preference — if EXTEND.md sets preferred_image_backend to a backend available right now, use it.
  3. Auto-select (when the preference is auto, unset, or the pinned backend isn't available):
    • Codex (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 via 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.
    • Cursor (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.
    • Other runtime-native tools — if the runtime exposes a different native image tool (e.g., Hermes image_generate), use it the same way.
    • Otherwise, if exactly one non-native backend is installed (e.g., baoyu-image-gen), use it.
    • Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions.
  4. If none are available, tell the user and ask how to proceed.

⛔ 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.

Batch Generation Policy

After every prompt file for the run has been saved and verified, generate images in batches by default.

Priority order:

  1. Use the chosen backend's native batch / multi-task interface if it exists. Each task must keep its own prompt file, output path, aspect ratio, and direct reference images.
  2. If no native batch interface exists but the runtime can issue parallel tool calls, dispatch up to 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.
  3. If neither native batch nor parallel tool calls are available, generate sequentially.

Rules:

  • Never start the first batch until all prompt files for that batch exist on disk.
  • Retry failed items once without regenerating successful items.
  • Do not use subagents merely to parallelize image rendering. Use subagents only for separate prompt iteration or creative exploration.

Confirmation Policy

Default behavior: confirm before generation.

  • Treat explicit skill invocation, a file path, matched signals/presets, and EXTEND.md defaults as recommendation inputs only. None of them authorizes skipping confirmation.
  • Do not start Step 4 or later until the user completes Step 3.
  • Skip confirmation only when the current request explicitly says to do so, for example: "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent wording.
  • If confirmation is skipped explicitly, state the assumed type / density / style / palette / language / backend in the next user-facing update before generating.

Reference Images

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).

Three Dimensions

DimensionControlsExamples
TypeInformation structureinfographic, scene, flowchart, comparison, framework, timeline
StyleRendering approachnotion, warm, minimal, blueprint, watercolor, elegant
PaletteColor 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.

Types

TypeBest For
infographicData, metrics, technical
sceneNarratives, emotional
flowchartProcesses, workflows
comparisonSide-by-side, options
frameworkModels, architecture
timelineHistory, evolution

Styles

See references/styles.md for Core Styles, full gallery, and Type × Style compatibility.

Workflow

- [ ] 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

Step 1: Pre-check

1.5 Load Preferences (EXTEND.md) ⛔ BLOCKING

Check EXTEND.md in priority order — the first one found wins:

PriorityPathScope
1.baoyu-skills/baoyu-article-illustrator/EXTEND.mdProject
2${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-article-illustrator/EXTEND.mdXDG
3$HOME/.baoyu-skills/baoyu-article-illustrator/EXTEND.mdUser home
ResultAction
FoundRead, parse, display summary
Not found⛔ Run first-time-setup

Full procedures: references/workflow.md

Step 2: Analyze

AnalysisOutput
Content typeTechnical / Tutorial / Methodology / Narrative
Purposeinformation / visualization / imagination
Core arguments2-5 main points
PositionsWhere illustrations add value

CRITICAL: Metaphors → visualize underlying concept, NOT literal image.

Full procedures: references/workflow.md

Step 3: Confirm Settings ⚠️

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.

QOptions
Q1: Preset or Type[Recommended preset], [alt preset], or manual: infographic, scene, flowchart, comparison, framework, timeline, mixed
Q2: Densityminimal (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: PaletteDefault (style colors), macaron, warm, neon — skip if preset includes palette or preferred_palette set
Q5: LanguageWhen article language ≠ EXTEND.md setting

Full procedures: references/workflow.md

Step 4: Generate Outline

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

Step 5: Generate Images

⛔ 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.

  1. For each illustration, create a prompt file per references/prompt-construction.md
  2. Save to prompts/NN-{type}-{slug}.md with YAML frontmatter
  3. Prompts MUST use type-specific templates with structured sections (ZONES / LABELS / COLORS / STYLE / ASPECT)
  4. LABELS MUST include article-specific data: actual numbers, terms, metrics, quotes
  5. DO NOT pass ad-hoc inline prompts to --prompt without saving prompt files first
  6. Select the backend via the ## 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).
  7. Execution strategy: Generate in batches per the ## 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.
  8. Process references (direct/style/palette) per prompt frontmatter
  9. Apply watermark if EXTEND.md enabled
  10. Generate from saved prompt files; retry once on failure

Full procedures: references/workflow.md

Step 6: Finalize

Insert ![description]({relative-path}/NN-{type}-{slug}.png) 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

Output directory is determined by default_output_dir in EXTEND.md (set during first-time setup):

default_output_dirOutput PathMarkdown 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
independentillustrations/{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.

Modification

ActionSteps
EditUpdate prompt → Regenerate → Update reference
AddPosition → Prompt → Generate → Update outline → Insert
DeleteDelete files → Remove reference → Update outline

Text correction policy:

  • If any rendered text (labels, captions, etc.) is misspelled, garbled, hard to read, or visually weak, do not patch the bitmap with code.
  • For text-correction regenerations, write a new prompt file and a new output path so the flawed candidate is preserved for comparison.
  • Post-processing is limited to crop, resize, compression, or format conversion that does not alter text or the main composition.

References

FileContent
references/workflow.mdDetailed procedures
references/usage.mdCommand syntax
references/styles.mdStyle gallery + Palette gallery
references/style-presets.mdPreset shortcuts (type + style + palette)
references/prompt-construction.mdPrompt templates
references/config/first-time-setup.mdFirst-time setup

Changing Preferences

EXTEND.md lives at the first matching path listed in Step 1.5. Three ways to change it:

  • Edit directly — open EXTEND.md and change fields. Full schema: references/config/preferences-schema.md.
  • Reconfigure interactively — delete EXTEND.md (or ask "reconfigure baoyu-article-illustrator preferences" / "重新配置"). The next run re-triggers first-time setup.
  • Common one-line edits:
    • 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)

暂无评论,成为第一个评论者吧!