Banner Creator
Generates banner variations via Gemini, previews them, crops to GitHub/Twitter/LinkedIn sizes
Test report
- Verdict
- Works with setup
- Score
- Tested
- Jul 21, 2026
- Environment
- Claude Code 2.x (agent harness)
- Upstream re-checked
- Aug 10, 2026 · d350c72
Cloned the repo, installed into a throwaway HOME (SKILL.md landed at ~/.claude/skills/banner-creator/SKILL.md), parsed the frontmatter with PyYAML (name + 256-char description, both present), and raw-fetched all five body-referenced paths — references/formats.md, scripts/crop_banner.py, templates/preview.html, examples/opc-banner-creation.md, .claude-plugin/plugin.json — all HTTP 200; no hardcoded /Users or /home paths, no curl|sh, base64 blobs or injection text. I could NOT execute the core Step 2: running the sibling nanobanana generate.py printed "Error: GEMINI_API_KEY environment variable not set." and no key is available here, so no banner image was ever generated and no baseline-vs-skill artifact pair exists. I did verify the deterministic tail of the workflow by generating a synthetic 2016x864 PNG and running crop_banner.py — it produced a correct 1280x640 (--ratio 2:1 --width 1280) and 1500x500 (--size 1500x500). Docs are docked because the shipped example claims "Generating at 2:1 ratio for GitHub" while all three github-banner-0*.png examples are actually 1696x2528 portrait (0.67 ratio), and SKILL.md says to generate at 21:9 while every example image is 16:9 or portrait.
Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works
- Installs cleanly 4/5
- Triggers reliably 5/5
- Output vs. baseline 4/10
- Docs & honesty 3/5
What Banner Creator does
Runs a banner design workflow: asks for purpose, ratio, style and colors, batch-generates image variations through the Gemini-backed nanobanana skill, shows them in an HTML preview grid, iterates on user picks, then crops the chosen one to the target platform size. Triggers when someone asks for a banner, header, hero image, cover image, GitHub README banner, or Twitter/X header. Requires a GEMINI_API_KEY and the separate nanobanana skill from the same repo.
How to install Banner Creator
git clone --depth 1 https://github.com/ReScienceLab/opc-skills.git /tmp/banner-creator-src
mkdir -p ~/.claude/skills
cp -R /tmp/banner-creator-src/skills/banner-creator ~/.claude/skills/banner-creator
cp -R /tmp/banner-creator-src/skills/nanobanana ~/.claude/skills/nanobanana
# banner-creator is non-functional on its own: its Step 2 calls the sibling
# `nanobanana` skill's scripts/generate.py and scripts/batch_generate.py,
# so both dirs are copied above.
# Required before use: export GEMINI_API_KEY=... (https://aistudio.google.com/apikey)
# Python deps: pillow (crop_banner.py), google-genai (nanobanana generate.py)
# pip install pillow google-genai
# Marketplace alternative: npx skills add ReScienceLab/opc-skills --skill banner-creator -a claude
# (installs banner-creator only; add --skill nanobanana as a second run)
# Crop step alone runs without any API key:
# python3 ~/.claude/skills/banner-creator/scripts/crop_banner.py in.png out.png --ratio 2:1 --width 1280
Skills live in ~/.claude/skills/ (global) or .claude/skills/
(per-project). Restart Claude Code after installing.
Commands — how to trigger Banner Creator
-
/banner-creatorGenerates banner variations via Gemini, previews them, crops to GitHub/Twitter/LinkedIn sizes
It also activates on plain-language prompts like these:
-
Create a GitHub banner for our repo -
Design a Twitter header for our launch -
Generate a hero image for our README
Frequently asked questions
- Is the Banner Creator skill free?
- Yes. The skill itself is free from ReScienceLab/opc-skills. SkillProof publishes the install command and an independent test verdict at no cost.
- Does Banner Creator work with Claude Code?
- We tested it with Claude Code 2.x (agent harness) on Jul 21, 2026. Verdict: Works with setup. Cloned the repo, installed into a throwaway HOME (SKILL.md landed at ~/.claude/skills/banner-creator/SKILL.md), parsed the frontmatter with PyYAML (name + 256-char description, both present), and raw-fetched all five body-referenced paths — references/formats.md, scripts/crop_banner.py, templates/preview.html, examples/opc-banner-creation.md, .claude-plugin/plugin.json — all HTTP 200; no hardcoded /Users or /home paths, no curl|sh, base64 blobs or injection text. I could NOT execute the core Step 2: running the sibling nanobanana generate.py printed "Error: GEMINI_API_KEY environment variable not set." and no key is available here, so no banner image was ever generated and no baseline-vs-skill artifact pair exists. I did verify the deterministic tail of the workflow by generating a synthetic 2016x864 PNG and running crop_banner.py — it produced a correct 1280x640 (--ratio 2:1 --width 1280) and 1500x500 (--size 1500x500). Docs are docked because the shipped example claims "Generating at 2:1 ratio for GitHub" while all three github-banner-0*.png examples are actually 1696x2528 portrait (0.67 ratio), and SKILL.md says to generate at 21:9 while every example image is 16:9 or portrait.
- What is the Banner Creator SkillProof Score?
- 6.4/10 — installs cleanly 4/5, triggers reliably 5/5, output vs. baseline 4/10, docs & honesty 3/5.
- How do I install Banner Creator?
- Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
- Can I use Banner Creator with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
- The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.