SEO Image Generator
AgriciDaniel/claude-seo
Generates Open Graph previews, blog hero images, product photos and infographics for SEO use through Gemini image tools and the banana extension.
Dedicated YouTube thumbnail generator — interviews you for exactly the style elements you want (environment, text budget, extras, accent color), then renders high-contrast, vibrant, face-consistent…
$ npx skills add hassancs91/claude-youtube-editor --skill youtube-thumbnail -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hassancs91/claude-youtube-editor youtube-thumbnail --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hassancs91/claude-youtube-editor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/thumbnail .claude/skills/youtube-thumbnail && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "youtube-thumbnail" agent skill from https://github.com/hassancs91/claude-youtube-editor/tree/main/.claude/skills/thumbnail into .claude/skills/youtube-thumbnail/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-thumbnail", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hassancs91/claude-youtube-editor/tree/main/.claude/skills/thumbnailType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hassancs91/claude-youtube-editor --skill youtube-thumbnail -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hassancs91/claude-youtube-editor youtube-thumbnail --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hassancs91/claude-youtube-editor.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/thumbnail .agents/skills/youtube-thumbnail && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "youtube-thumbnail" agent skill from https://github.com/hassancs91/claude-youtube-editor/tree/main/.claude/skills/thumbnail into .agents/skills/youtube-thumbnail/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-thumbnail", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hassancs91/claude-youtube-editor --skill youtube-thumbnail -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hassancs91/claude-youtube-editor youtube-thumbnail --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hassancs91/claude-youtube-editor.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/thumbnail .cursor/skills/youtube-thumbnail && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "youtube-thumbnail" agent skill from https://github.com/hassancs91/claude-youtube-editor/tree/main/.claude/skills/thumbnail into .cursor/skills/youtube-thumbnail/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-thumbnail", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hassancs91/claude-youtube-editor.git --path .claude/skills/thumbnail--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hassancs91/claude-youtube-editor --skill youtube-thumbnail -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hassancs91/claude-youtube-editor youtube-thumbnail --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hassancs91/claude-youtube-editor.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/thumbnail .gemini/skills/youtube-thumbnail && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "youtube-thumbnail" agent skill from https://github.com/hassancs91/claude-youtube-editor/tree/main/.claude/skills/thumbnail into .gemini/skills/youtube-thumbnail/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-thumbnail", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hassancs91/claude-youtube-editor youtube-thumbnailInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hassancs91/claude-youtube-editor --skill youtube-thumbnail -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hassancs91/claude-youtube-editor.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/thumbnail .github/skills/youtube-thumbnail && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "youtube-thumbnail" agent skill from https://github.com/hassancs91/claude-youtube-editor/tree/main/.claude/skills/thumbnail into .github/skills/youtube-thumbnail/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-thumbnail", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hassancs91/claude-youtube-editor --skill youtube-thumbnail -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hassancs91/claude-youtube-editor youtube-thumbnail --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hassancs91/claude-youtube-editor.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/thumbnail .opencode/skills/youtube-thumbnail && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "youtube-thumbnail" agent skill from https://github.com/hassancs91/claude-youtube-editor/tree/main/.claude/skills/thumbnail into .opencode/skills/youtube-thumbnail/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-thumbnail", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
youtube-thumbnailDedicated YouTube thumbnail generator — interviews you for exactly the style elements you want (environment, text budget, extras, accent color), then renders high-contrast, vibrant, face-consistent…
Youtube Thumbnail is an agent skill from hassancs91/claude-youtube-editor. Dedicated YouTube thumbnail generator — interviews you for exactly the style elements you want (environment, text budget, extras, accent color), then renders high-contrast, vibrant, face-consistent thumbnails with Nano Banana Pro and verifies every frame before showing it. Use whenever you want to create, redo, or iterate thumbnail variants for a video — "make a thumbnail", "new version of B", "more realistic", "less text", "put the app on the screen", "another angle for the test". Renders into…
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/style-elements.md`).
It sits in Media & Creative, covering Social media graphics, Image generation and Video production. It works with YouTube and Google Gemini. The repository describes itself as: Record the talking head, Claude Code does the rest: the cut, the visuals, the voice, the sound effects, the thumbnail, and the YouTube upload. Every screen moment is built as… The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a6ac742. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GEMINI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Youtube Thumbnail loads about 2.1k tokens when it runs, and up to ~4.2k if it reads all its reference files. Until then it costs about 166 tokens; SKILL.md has 1,054 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
/faces/README.md`), `GEMINI_API_KEY` in `.env`.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from hassancs91/claude-youtube-editor at commit a6ac742, republished under its MIT licence (© hassancs91). 1,054 words, ~2,149 tokens.
.claude/skills/youtube-thumbnail/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Turns a thumbnail concept into rendered, verified frames — with the style built from an element menu you pick from, not a fixed template. One number matters: CTR.
Division of labor: /packaging decides what to bet on (one fixed title, 3 distinct
thumbnail levers, honesty checks). This skill decides what the frame looks like and renders
it. Run standalone for iteration ("give me a new B"), or let packaging Stage 5 delegate here.
Both inherit two non-negotiables from packaging:
brand.md. Never tone down to
match the in-video brand.Every render, regardless of selections: high contrast (deep darks OR clean brights, never
flat) · vibrant saturated color with one accent doing the work · clear focal hierarchy
(headline → hero object → face, three steps max) · big high-energy positive face from the
media/library/faces/ kit · premium, clickable finish — crisp edges, no clutter · every
text element perfectly spelled and razor sharp.
These came from a real before/after CTR comparison (the "Image 13" guide, 2026-08): the flat, low-contrast, no-hierarchy frame lost to the bold high-contrast hierarchical one ~4.4x on views. The axes are always-on; the decorations below are strictly opt-in.
Exact prompt language for every element lives in references/style-elements.md. Summary:
| Element | What it is | Cost |
|---|---|---|
single-hook | ONE text element, huge (word or number) | the default; cleanest |
tiered-headline | small white italic context line + huge green grunge power line | +1 text block |
sticker | tilted yellow badge, black caps, red underline, arrow to the hero | +1; ≤2 short words or it garbles |
checkstrip | slim bottom strip, 3 green-check benefits | +3 micro-texts; busy fast |
brush-tag | brush-stroke tag at strip end (e.g. WITH CLAUDE) | +1 |
results-fan | fan/burst of result cards from the hero (pure imagery, no lettering) | busy-frame risk |
glow-burst | neon energy + particles radiating from the hero | cheap, usually worth it |
real-logo | pass the actual logo file as a --ref so it renders faithfully | extra ref |
real-app-screen | pass a real UI screenshot as a --ref for the on-screen app | extra ref; micro-text caveat |
Environments (pick one): dark-studio (neon-on-black, dramatic) · real-office (candid
DSLR look, anchored to the real room visible in the face refs) · bright-graphic (saturated
studio composite, the classic loud style).
Project dir, existing packaging/thumbs/ (what letters/versions exist), the locked title if
packaging ran (thumbnail text must never repeat it), face kit present (no kit → stop and ask,
see media/library/faces/README.md), GEMINI_API_KEY in .env.
Ask before generating — one AskUserQuestion round. Skip any axis the user already
specified in their request; ask only what's still open.
single-hook (recommended default) / headline-plus-one (tiered
headline + at most ONE accent element) / full-kit (headline + sticker + checkstrip +
tag — warn that it's the busy end; opt-in only).Calibration note (real creator feedback, 2026-08): the default is MINIMAL text. The full-kit look was tried and rejected as "too much text"; high contrast + vibrant were explicitly kept. Never stack every element just because the guide contains them — each text block after the first must earn its slot.
Echo the exact hook text (and sticker/strip words if selected) before rendering. Check against the locked title: thumbnail text never repeats title words — the two combine into one message.
Assemble from references/style-elements.md blocks: labeled brief (Reference roles → Subject
& Action → Composition & Hierarchy → Setting & Lighting → Text → Style), letter-by-letter
spelling for every rendered word, positive framing with the one earned negation (sub-images
carry no lettering/logos). Hardware rule: laptops/phones are "generic, plain dark bezel, no
logos or lettering on the hardware" — otherwise you get a MacBook.
venv/Scripts/python tools/gen_thumbnail.py --prompt-file videos/<p>/packaging/thumbs/<X>.txt \
--out videos/<p>/packaging/thumbs/<X>.png --jpg --seed <N>--ref replaces that default — when
passing a logo or app screenshot, re-include the face ref explicitly, and name each
image's role in the prompt ("Image 1 = identity, Image 2 = the app").real-app-screen source: pull a frame from the project's baked preview with ffmpeg, crop
to the window, save to media/projects/<p>/ (reusable, committed path) — never screenshot
by hand if the beat already exists in the video.Read the image back: hook spelled right + legible · face reads as the creator · one dominant focal element · bright/saturated/positive expression · hands sane (count fingers, no phantom limbs) · no stray lettering in sub-images · hardware unbranded · honesty (screen/props match the real product) · 16:9, JPG <2MB. Fix-and-rerender before surfacing; flag anything borderline honestly (e.g. micro-text garble in a real-app screen).
<X>.txt/.png, preserve the old one as <X>-v1.*.--seed to iterate composition-stable; change seed to explore. Change one thing at a
time.thumbs/_ABC-set.jpg) after every accepted render so
the set is always comparable at browse-wall scale.| Symptom | Fix |
|---|---|
| Sticker/badge word garbled | ≤2 short words per badge, letters spelled out (L-I-F-E-T-I-M-E); re-render |
| Checkstrip drops a checkmark | phrase as "each item a green circular checkmark immediately followed by…" |
| MacBook bezel / brand on hardware | "generic slim laptop, plain dark bezel, no logos or lettering on the hardware" |
| Real app screen: micro-text garbles | expected — invisible at browse size; if it matters, blur-text reroll or perspective-warp the real screenshot in post |
| Face color cast (purple/green hand or skin) | name the light: "warm skin tones preserved; the screen adds only a faint cool glow" |
| Clone/double renders a stranger | "BOTH men in this image are this exact man" + give the double a distinct material (wireframe, hologram) |
| Office looks generic | anchor it: describe the real room visible in the face ref (wall color, plant) and say "match the real office behind him in Image 1" |
| Word spelled right but flat/pasted | grunge texture + soft outer glow + hard drop shadow, restate "razor sharp" |
Model ids, API details, template history: .claude/skills/packaging/references/thumbnail-generation.md.
Worked examples (proven prompts): videos/video-1/packaging/thumbs/*.txt — A2 (bright-graphic
© hassancs91, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in .claude/skills/thumbnail of hassancs91/claude-youtube-editor.
Open the folder on GitHubat commit a6ac742
Youtube Thumbnail next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Youtube Thumbnail this skillhassancs91/claude-youtube-editor | 328 | — | ~2.1k | Automated safety check: Notes | MIT | |
| SEO Image GeneratorAgriciDaniel/claude-seo | 19k | 2 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Nano Bananakkoppenhaver/cc-nano-banana | 378 | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Smart Illustratoraxtonliu/smart-illustrator | 564 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Xiaohongshu Cover GeneratorVivixiao980/xhs-cover-skill | 204 | — | ~2.9k | Automated safety check: Pass | None | |
| Generate Youtube Thumbnailkrusemediallc/arcads-claude-code | 1.6k | — | ~2.4k | Automated safety check: Notes | MIT |
AgriciDaniel/claude-seo
Generates Open Graph previews, blog hero images, product photos and infographics for SEO use through Gemini image tools and the banana extension.
kkoppenhaver/cc-nano-banana
REQUIRED for all image generation requests. An agent skill from kkoppenhaver/cc-nano-banana.
axtonliu/smart-illustrator
Generates article illustrations, batch slide infographics and cover images from your text, using Gemini, Mermaid or Excalidraw engines and a prompt-only mode.
Vivixiao980/xhs-cover-skill
Creates and edits Xiaohongshu (RedNote) cover images from a portrait photo and text, using GPT Image 2 first and a Gemini CLI script as fallback.
krusemediallc/arcads-claude-code
Generate high-CTR YouTube thumbnails using Nano Banana 2 via the Arcads external API.
geongeorge/picture-it
Generate and edit images from the CLI using picture-it. An agent skill from geongeorge/picture-it.
hassancs91/claude-youtube-editor
Makes this repo's videos look like YOUR channel instead of the house default — interviews you for palette, fonts, wordmark, motion energy, delivery specs and SFX taste, then rewrites brand.md +…
hassancs91/claude-youtube-editor
Step 1 of the AI Video Editor pipeline — turn raw talking-head footage into a clean master cut.
hassancs91/claude-youtube-editor
Turn static SCREENSHOTS into a simulated screen recording (TSX) — a fake screencast with an animated cursor that eases to targets and clicks, a browser URL bar that updates per page, hard-cut…
hassancs91/claude-youtube-editor
Step 2 of the AI Video Editor pipeline — build the visual beats (Remotion TSX shots) over a project's master cut and bake a composited preview.
hassancs91/claude-youtube-editor
Step 4 of the AI Video Editor pipeline — the SFX pass. An agent skill from hassancs91/claude-youtube-editor.
hassancs91/claude-youtube-editor
Generates click-optimized YouTube packaging — 3 thumbnail bets under one fixed title, engineered for YouTube's built-in A/B/C thumbnail test, plus a value-forward description, then renders the…
Works with
Categories
Dedicated YouTube thumbnail generator — interviews you for exactly the style elements you want (environment, text budget, extras, accent color), then renders high-contrast, vibrant, face-consistent…. Youtube Thumbnail is an agent skill from hassancs91/claude-youtube-editor. Dedicated YouTube thumbnail generator — interviews you for exactly the style elements you want (environment, text budget, extras, accent color), then renders high-contrast, vibrant, face-consistent thumbnails with Nano Banana Pro and verifies every frame before showing it.
Youtube Thumbnail fits situations like: you want to create; iterate thumbnail variants for a video — make a thumbnail; new version of B; put the app on the screen.
Run `npx skills add hassancs91/claude-youtube-editor --skill youtube-thumbnail -a claude-code`. Or copy the skill folder (.claude/skills/thumbnail in hassancs91/claude-youtube-editor) into .claude/skills/youtube-thumbnail in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hassancs91/claude-youtube-editor --skill youtube-thumbnail -a codex`. Or copy the skill folder (.claude/skills/thumbnail in hassancs91/claude-youtube-editor) into .agents/skills/youtube-thumbnail in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hassancs91/claude-youtube-editor --skill youtube-thumbnail -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/youtube-thumbnail, .gemini/skills/youtube-thumbnail, .github/skills/youtube-thumbnail and .opencode/skills/youtube-thumbnail in your project.
Going by SKILL.md and its folder, Youtube Thumbnail needs the command-line tools its instructions call (python) and credentials named GEMINI_API_KEY. Our summary lists: Python 3; A credential in GEMINI_API_KEY.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Youtube Thumbnail is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Youtube Thumbnail: SEO Image Generator (AgriciDaniel/claude-seo, 19k stars), Nano Banana (kkoppenhaver/cc-nano-banana, 378 stars), Smart Illustrator (axtonliu/smart-illustrator, 564 stars) and Xiaohongshu Cover Generator (Vivixiao980/xhs-cover-skill, 204 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hassancs91 (a GitHub user) maintains it in hassancs91/claude-youtube-editor, which has 328 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on August 18, 2026.
Source: hassancs91/claude-youtube-editor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.