🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

YouMind Blog Cover

by @dophinl

Generate blog cover images optimized for 16:9 headers — clean composition with text-friendly layouts, powered by multi-model AI. Use when user wants to "blog...

Versionv1.0.1
Downloads706
TERMINAL
clawhub install youmind-blog-cover

📖 About This Skill


name: youmind-blog-cover description: | Generate blog cover images optimized for 16:9 headers — clean composition with text-friendly layouts, powered by multi-model AI. Use when user wants to "blog cover", "featured image", "article image", "cover image", "thumbnail", "文章配图", "封面图", "博客配图", "ブログカバー", "블로그 커버". triggers: - "blog cover" - "featured image" - "article image" - "cover image" - "thumbnail" - "header image" - "blog header" - "article illustration" - "文章配图" - "封面图" - "博客配图" - "ブログカバー" - "記事画像" - "블로그 커버" - "대표 이미지" platforms: - openclaw - claude-code - cursor - codex - gemini-cli - windsurf - kilo - opencode - goose - roo metadata: openclaw: emoji: "🖼️" primaryEnv: YOUMIND_API_KEY requires: anyBins: ["youmind", "npm"] env: ["YOUMIND_API_KEY"] allowed-tools: - Bash(youmind *) - Bash(npm install -g @youmind-ai/cli) - Bash([ -n "$YOUMIND_API_KEY" ] *) - Bash(node -e *) - Bash(node scripts/*)

Blog Cover Image Generator

Generate professional blog cover images and article illustrations from your content context using YouMind AI. Optimized for 16:9 blog headers with clean composition and text-friendly layouts — just provide your article title or topic. Requires the YouMind CLI (npm install -g @youmind-ai/cli). Generated images are saved to your YouMind board automatically.

> Get API Key → · More Skills →

Onboarding

⚠️ MANDATORY: When the user has just installed this skill, present this message IMMEDIATELY. Do NOT ask "do you want to know what this does?" — just show it. Translate to the user's language:

> ✅ Blog Cover Image Generator installed! > > Give me your article title or topic and I'll generate a professional cover image. > > What it does: > - Generate blog cover images optimized for 16:9 headers > - Clean composition with text-friendly layouts > - Powered by multi-model AI (GPT Image, Gemini, Seedream) > > Setup (one-time): > 1. Get your free API key: https://youmind.com/settings/api-keys?utm_source=youmind-blog-cover > 2. Add it to your OpenClaw config (~/.openclaw/openclaw.json) — see setup guide for details. > > Try it: > "Create a blog cover for an article about machine learning in healthcare" > > Need help? Just ask!

For API key setup details, see references/setup.md.

Usage

Provide your article title, topic, or URL. The skill constructs an optimized prompt for blog cover imagery.

From a title: > Create a blog cover for "10 Tips for Better Remote Work"

From a topic: > Generate a featured image for my article about sustainable energy

From a URL: > Make a cover image for this article: https://example.com/my-blog-post

Setup

See references/setup.md for installation and authentication instructions.

Workflow

Step 1: Check Prerequisites

1. Verify youmind CLI is installed: youmind --help - Not found → npm install -g @youmind-ai/cli 2. Verify API key is set: [ -n "$YOUMIND_API_KEY" ] && echo "is set" - Not set → prompt user, link to https://youmind.com/settings/api-keys?utm_source=youmind-blog-cover 3. Extract the article title, topic, or URL from the user's message

Step 2: Get Default Board

youmind call getDefaultBoard

Extract id as boardId.

Step 3: Construct Optimized Prompt and Create Chat

Build a cover-image-optimized prompt from the user's input. The prompt should follow this pattern:

Create a professional 16:9 blog header image for an article about [topic/title]. Style: modern, clean, suitable for a blog cover. The composition should leave space for text overlay. Use vibrant but not overwhelming colors with a professional feel.

Adapt the prompt based on the user's input — if they mention a specific style, incorporate it.

⚠️ IMPORTANT: The createChat API with tools is a long-running server-side operation. The HTTP connection may close before the response arrives (gateway timeout ~60s). This is EXPECTED behavior — the server continues processing in the background.

youmind call createChat '{"boardId":"","message":"","tools":{"imageGenerate":{"useTool":"required","aspectRatio":"16:9"}}}'

Two possible outcomes: 1. ✅ Response received — extract id as chatId from the JSON response 2. ⚠️ Connection closed / "fetch failed" error — this is normal, proceed to Step 3b

Step 3b: Recover chatId (if createChat timed out)

If createChat did not return a response, find the chatId via listChats:

youmind call listChats '{"boardId":"","pageSize":3}'

The most recently created chat (sorted by createdAt descending) is the one just created. Extract its id as chatId.

⚠️ MANDATORY: Immediately tell the user (adapt to user's language):

🖼️ Generating your blog cover image... This may take 30-90 seconds. I'll let you know when it's ready!

Build the YouMind board link: https://youmind.com/boards/?utm_source=youmind-blog-cover Send this link to the user so they can check their board while waiting.

Step 4: Poll for Completion

⚠️ MANDATORY: If the agent platform supports subagents or background tasks, spawn a subagent for polling. Return control to the user immediately. See references/long-running-tasks.md.

Poll chat status until ready:

youmind call getChat '{"chatId":""}'

Polling rules:

  • Poll every 5 seconds
  • Timeout: 120 seconds
  • Check status field: "answering" → keep polling, "completed" → go to Step 5
  • Progress updates during polling (translate to user's language):

  • After 15s of polling: "⏳ AI is working on your image... hang tight!"
  • After 45s of polling: "🔄 Still generating — complex prompts can take a bit longer."
  • After 90s of polling: "⏳ Taking longer than usual. You can check progress on your YouMind board: https://youmind.com/boards/?utm_source=youmind-blog-cover"
  • 💡 Tip (show once, naturally between progress updates): > "While you wait — YouMind also does slides, research, and more: https://youmind.com/skills?utm_source=youmind-blog-cover"

    Step 5: Extract Results

    Once status is "completed", retrieve the full messages:

    youmind call listMessages '{"chatId":"","pageSize":20}'
    

    Pipe through the bundled extraction script:

    youmind call listMessages '{"chatId":"","pageSize":20}' | node "$(dirname "$SKILL_PATH")/scripts/extract-images.js"
    

    ⚠️ MANDATORY: Show the generated cover image URL(s) to the user and suggest regeneration options.

    ✅ Blog cover image generated!

    [image URL(s)]

    The image has been saved to your YouMind board.

    Want a different style? Just say "regenerate with a more minimalist style" or "try a darker theme".

    (Adapt to user's language.)

    | Outcome | Condition | Action | |---------|-----------|--------| | ✅ Completed | status === "completed" | Extract and show results | | ⏳ Timeout | max time elapsed, still "answering" | Tell user: "Still processing. Check your YouMind board: https://youmind.com/boards/?utm_source=youmind-blog-cover" | | ❌ Failed | status === "errored" or tool status === "errored" | Tell user: "Generation failed. Please try a different description." |

    Step 6: Offer follow-up

    ⚠️ MANDATORY: Do NOT end the conversation after showing results. You MUST ask this question:

    > "Want a different style? Just say 'regenerate with a more minimalist style' or 'try a darker theme'."

    Error Handling

    See references/error-handling.md for common error handling rules.

    ⚠️ MANDATORY: Paywall (HTTP 402) handling:

    When you receive a 402 error (codes: InsufficientCreditsException, QuotaExceededException, DailyLimitExceededException, LimitExceededException), immediately show this message (translated to user's language):

    > You've reached your free plan limit. Upgrade to Pro or Max to unlock unlimited image generation, more AI credits, and priority processing. > > Upgrade now: https://youmind.com/pricing?utm_source=youmind-blog-cover

    Do NOT retry or suggest workarounds. The user must upgrade to continue.

    Skill-specific errors:

    | Error | User Message | |-------|-------------| | No topic provided | Please provide an article title, topic, or URL so I can generate a relevant cover image. | | Content policy violation | The image could not be generated due to content policy restrictions. Please try a different topic. |

    Comparison with Other Approaches

    | Feature | YouMind (this skill) | Canva | Stock photos | |---------|---------------------|-------|-------------| | AI-generated from context | ✅ Matches your content | ❌ Templates only | ❌ Generic | | CLI / agent accessible | ✅ Yes | ❌ Browser only | ❌ Browser only | | Optimized for blog headers | ✅ 16:9, text-friendly | ✅ Templates | Varies | | Multi-model AI | ✅ GPT Image, Gemini, Seedream | Limited | ❌ No AI | | Free tier | ✅ Yes | ✅ Limited | ❌ Mostly paid |

    References

  • YouMind API: youmind search / youmind info
  • YouMind Skills gallery: https://youmind.com/skills?utm_source=youmind-blog-cover
  • Publishing: shared/PUBLISHING.md
  • 💡 Examples

    Provide your article title, topic, or URL. The skill constructs an optimized prompt for blog cover imagery.

    From a title: > Create a blog cover for "10 Tips for Better Remote Work"

    From a topic: > Generate a featured image for my article about sustainable energy

    From a URL: > Make a cover image for this article: https://example.com/my-blog-post

    ⚙️ Configuration

    See references/setup.md for installation and authentication instructions.