Systems Lab

Agent skill

blog-cover-generator

Use when the user asks to generate a blog cover image, thumbnail, or article header.

activeNeeds a keyActs undeclared555 words

Filed under Content and SEO.

From Varnan-Tech/opendirectory · 57 skills · 626 · pushed 2026-08-16

What it does when it runs

Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.

Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
  • YOUR_GEMINI_API_KEY
Hosts it reaches
  • download-directory.github.io
  • manus.im
  • opendirectory.dev
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
shell

Ask about blog-cover-generator

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/Varnan-Tech/opendirectory.git /tmp/opendirectory
git -C /tmp/opendirectory sparse-checkout set "skills/blog-cover-image-cli"
mkdir -p ~/.claude/skills/blog-cover-generator
cp -R "/tmp/opendirectory/skills/blog-cover-image-cli/." ~/.claude/skills/blog-cover-generator/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

Or take the whole library

This repo ships a .claude-plugin manifest, so Claude Code can install all 57 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.

/plugin marketplace add Varnan-Tech/opendirectory
/plugin

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Before you install: this skill will not complete its job on a bare agent. It needs YOUR_GEMINI_API_KEY, which you have to obtain separately.

Reproduced in full from Varnan-Tech/opendirectory/blob/62e437ab13408171805a87d16f5cb0151f96ea3c/skills/blog-cover-image-cli/SKILL.md, which is licensed MIT (repository). 555 words, 10 headings.

Blog Cover Generator Skill

This skill provides AI agents with the ability to generate stunning, minimalist, technical blog cover images using the blog-cover-image-cli. The CLI leverages Gemini 3.1 Flash Image Preview, automatically fetches brand logos from domains, uses local aesthetic reference images, and employs Google Search grounding to inject real-time context.

Setup & Configuration

Agent Pre-requisites: Before using this tool, verify it is installed. If blog-cover-cli --help fails, install it globally:

npm install -g blog-cover-image-cli

If the user wants you to generate an image and you haven't set up the API key yet, you must first configure the CLI using a Gemini API Key. The CLI stores this securely via the conf package.

# 1. Set your Gemini API Key (Required for image generation)
npx -p blog-cover-image-cli blog-cover-cli config set-key <YOUR_GEMINI_API_KEY>

# 2. Set your Brandfetch Client ID (Required to fetch high-res logos)
npx -p blog-cover-image-cli blog-cover-cli config set-brandfetch-id <YOUR_BRANDFETCH_CLIENT_ID>

# Check your keys (masked)
npx -p blog-cover-image-cli blog-cover-cli config get-key
npx -p blog-cover-image-cli blog-cover-cli config get-brandfetch-id

Usage: Generating an Image

When a user asks for a cover image (e.g., "Create a cover image for my blog about Vercel v0"), you should use the generate command.

npx -p blog-cover-image-cli blog-cover-cli generate -t "The Title of the Blog Post" -l "example.com"

Arguments

  • -t, --title <text>: (Required) The title text to display on the cover image. Do not use excessively long titles (keep it under 3 lines of text visually).
  • -l, --logo <domain>: (Optional but recommended) The domain to fetch the brand logo from (e.g., vercel.com, google.com, cursor.com). The CLI automatically converts WebP/SVG/AVIF to PNG for compatibility.
  • -o, --output <path>: (Optional) The file path where the generated image will be saved. If omitted, the CLI automatically saves it to an output/ directory in the current working folder (e.g., ./output/vercel-cover.png).

Examples

Example 1: Cursor

npx -p blog-cover-image-cli blog-cover-cli generate -t "Why Cursor is the Ultimate AI Code Editor" -l "cursor.com"

Example 2: Lovable

npx -p blog-cover-image-cli blog-cover-cli generate -t "Building Apps in Minutes with Lovable" -l "lovable.dev"

Example 3: Custom Output Path

npx -p blog-cover-image-cli blog-cover-cli generate -t "Mastering React in 2026" -l "reactjs.org" -o "./assets/react-cover.png"

How It Works Under the Hood

As an agent, you should know what the CLI is doing so you can inform the user:

  1. Logo Fetching: It fetches logos from Brandfetch and processes them via sharp.
  2. References: It loads curated reference images from its examples/ directory to ensure the output is always a clean, minimalist white background with bold typography.
  3. Grounding: It has googleSearch tools enabled, meaning if the title relates to a recent event, Gemini can look it up before generating the image.
  4. Text Enforcement: It forces Gemini to output the exact title string using typographic placement rules.

Edge Cases / Troubleshooting

  • No API Key Error: If you see an API key error, run the config set-key command.
  • Logo Fetch Warning: If the CLI says Warning: Could not fetch logo, it will still generate the image but without the logo. You do not need to crash or stop.
  • Strict Modality Limits: Because it uses Gemini's experimental image models, generation may occasionally fail due to strict safety filters. If this happens, notify the user.

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what blog-cover-generator does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.