nicepkg/nano-banana
REQUIRED for all image generation requests. Generate and edit images using Nano Banana (Gemini CLI). Handles blog featured images, YouTube thumbnails, icons, diagrams, patterns, illustrations, photos, visual assets, graphics, artwork, pictures. Use this skill whenever the user asks to create, generate, make, draw, design, or edit any image or visual content.
npx skills add https://github.com/nicepkg/ai-workflow --skill nano-banana
Generate professional images via the Gemini CLI's nanobanana extension.
ALWAYS use this skill when the user:
Do NOT attempt to generate images through any other method.
gemini extensions list | grep nanobanana
gemini extensions install https://github.com/gemini-cli-extensions/nanobanana
[ -n "$GEMINI_API_KEY" ] && echo "API key configured" || echo "Missing GEMINI_API_KEY"
| User Request | Command |
|--------------|---------|
| "make me a blog header" | /generate |
| "create an app icon" | /icon |
| "draw a flowchart of..." | /diagram |
| "fix this old photo" | /restore |
| "remove the background" | /edit |
| "create a repeating texture" | /pattern |
| "make a comic strip" | /story |
Note: Always use the --yolo flag to automatically approve all tool actions.
| Command | Use Case |
|---------|----------|
| gemini --yolo "/generate 'prompt'" | Text-to-image generation |
| gemini --yolo "/edit file.png 'instruction'" | Modify existing image |
| gemini --yolo "/restore old_photo.jpg 'fix scratches'" | Repair damaged photos |
| gemini --yolo "/icon 'description'" | App icons, favicons, UI elements |
| gemini --yolo "/diagram 'description'" | Flowcharts, architecture diagrams |
| gemini --yolo "/pattern 'description'" | Seamless textures and patterns |
| gemini --yolo "/story 'description'" | Sequential/narrative images |
| gemini --yolo "/nanobanana prompt" | Natural language interface |
--yolo - Required. Auto-approve all tool actions (no confirmation prompts)--count=N - Generate N variations (1-8)--preview - Auto-open generated images--styles="style1,style2" - Apply artistic styles--format=grid|separate - Output arrangement| Use Case | Dimensions | Notes |
|----------|------------|-------|
| YouTube thumbnail | 1280x720 | --aspect=16:9 |
| Blog featured image | 1200x630 | Social preview friendly |
| Square social | 1080x1080 | Instagram, LinkedIn |
| Twitter/X header | 1500x500 | Wide banner |
| Vertical story | 1080x1920 | --aspect=9:16 |
Default: gemini-2.5-flash-image (~$0.04/image)
For higher quality (4K, better reasoning):
export NANOBANANA_MODEL=gemini-3-pro-image-preview
# Modern illustration style
gemini --yolo "/generate 'modern flat illustration of developer coding at laptop, purple and blue gradient background, minimalist style, no text' --preview"
# Professional photography style
gemini --yolo "/generate 'professional editorial photo of coffee cup next to laptop on wooden desk, morning sunlight, shallow depth of field, no text' --count=3"
# Tech/abstract
gemini --yolo "/generate 'abstract visualization of neural network connections, dark background with glowing blue nodes, futuristic style' --preview"
gemini --yolo "/icon 'minimalist app logo for productivity tool' --sizes='64,128,256,512' --type='app-icon' --corners='rounded'"
gemini --yolo "/diagram 'user authentication flow with OAuth' --type='flowchart' --style='modern'"
All generated images are saved to ./nanobanana-output/ in the current directory.
After generation completes:
./nanobanana-output/ to find generated filesWhen the user asks for changes:
--count=3gemini --yolo "/edit nanobanana-output/filename.png 'adjustment'"--styles="requested_style" to the command| Problem | Solution |
|---------|----------|
| GEMINI_API_KEY not set | export GEMINI_API_KEY="your-key" |
| Extension not found | Run install command from setup section |
| Quota exceeded | Wait for reset or switch to flash model |
| Image generation failed | Check prompt for policy violations, simplify request |
| Output directory missing | Will be created automatically on first run |
Take nicepkg/nano-banana from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.