kkoppenhaver/cc-skills/featured-image
Claude Code and agent skill by kkoppenhaver/cc-skills
- community
Checking that the SKILL.md file is still in the repository.
Generate branded blog/social featured images by authoring an HTML "card" and rendering it to a PNG with headless Chromium ("HTML first, then to PNG"). Use when the user wants a featured image, hero/header image, OG or social card, or any branded post graphic for a content project. Handles one-time per-project brand setup (colors, fonts, dimensions), then composing and rendering per-post images. Triggers include "make a featured image", "create a blog header/social card", "og image", "render thi…
Install
npx vskill@latest install kkoppenhaver/cc-skills/featured-imageSKILL.md
Featured Image
Author a 1280×720 HTML card, render it to a 2× PNG with headless Chromium. HTML-first gives full layout control and pixel-perfect brand fidelity; the PNG is the deliverable the user uploads.
Workflow
- Locate the project's image directory. Default
infographics/at the repo root. Confirm or detect it.
- Check whether the project is configured. Configured = the image dir contains
export.mjs,featured-image.json, and abrand-template.html.
- If not configured → follow
references/setup.mdto set it up. Do this once per project, then continue.
- Compose the post's card. Copy
brand-template.htmlto<post-slug>-featured.htmlin the image dir, then edit:
- Headline — short, fits two lines.
- Subhead — optional, one line.
- Visual — one supporting graphic that illustrates the post's core idea. Replace the template's example visual.
- Put the brand accent color on the one key phrase only.
- Preview in the browser BEFORE rendering. Always
open <post-slug>-featured.htmlso the user sees the live HTML card and can request tweaks. Wait for their go-ahead (or apply their tweaks and re-open) before exporting the PNG. Never skip straight to the render.
- Render. From the image dir:
node export.mjs <post-slug>-featured→ writes<post-slug>-featured.pngat 2× (1280×720 → 2560×1440).
- Review and deliver. Read the PNG to confirm fonts loaded and the layout reads cleanly; re-render after tweaks. Give the user the PNG path. If they'll upload it by hand, copy it to
~/Desktop.
Design
- Headline ≤ ~8 words, two lines max — the image is glanced at, not read.
- One accent color, on one key phrase. Everything else in the primary text color.
- One visual metaphor (a before/after pair, a single UI mock, an icon trio). Don't crowd it.
- 1280×720 (16:9) by default. Dimensions live in the template CSS, not the script.
- Generous margins; clear hierarchy (large headline, small uppercase label).
Notes
- Rendering needs Playwright's Chromium. Setup installs it in the image dir (
node_modulesis gitignored; the browser binary is cached globally and reused across projects). - WordPress: the MCP/abilities plugin cannot upload media. Featured images and in-body screenshots are added manually in the editor — deliver the PNG path, don't try to push it through the API.
See references/setup.md for one-time per-project brand configuration.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingfeatured-image/SKILL.md
Popularity
- Repository stars
- 6
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/kkoppenhaver/cc-skills/featured-image)