Skip to main content
skill CX Codex

nanobanana-skill — Claude Code skill: what it does, how to install

Generates and edits images via Google Gemini models directly inside your coding agent. Ideal for creating concept art, logos, or modifying existing graphics.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add feiskyer/claude-code-settings --skill nanobanana-skill -a claude-code
Open on GitHub

What nanobanana-skill does

The skill executes ${CLAUDE_SKILL_DIR}/nanobanana.py, calling the Gemini API to render or edit pictures. It defaults to gemini-3.1-flash-image-preview at 1K resolution and a 9:16 portrait ratio, but accepts prompts with custom sizes from 1:1 square up to 21:9 ultra-wide. You can also switch to gemini-3-pro-image-preview when you need higher fidelity or reasoning.

Image editing works by passing existing files along with revision instructions. Do not use this tool for architecture diagrams or flowcharts; the author explicitly advises rendering those with Mermaid or code instead. Google Search grounding is enabled by default, with an option to disable it via --no-search.

Setup requires a GEMINI_API_KEY inside ~/.nanobanana.env or exported in your shell. You also need Python 3 with google-genai, Pillow, and python-dotenv. Missing credentials will cause the script to fail immediately.

What it helps with

  • Generate images in aspect ratios from 1:1 to 21:9
  • Edit existing image files using text instructions
  • Render graphics at 2K or 4K resolution
  • Ground image prompts with Google Search data

Example prompts for the agent

  • Generate a minimalist startup logo, size 1024x1024, output to logo.png
  • Edit photo.png to add a rainbow in the sky and save as photo-with-rainbow.png
  • Create a futuristic cityscape in 16:9 at 2K resolution

How to install nanobanana-skill

1Skills CLI (Vercel)

npx skills add feiskyer/claude-code-settings --skill nanobanana-skill -a claude-code

2Manually: put the files in place

~/.claude/skills/nanobanana-skill/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/nanobanana-skill/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about nanobanana-skill

How to install nanobanana-skill in Claude Code?

Run npx skills add feiskyer/claude-code-settings --skill nanobanana-skill -a claude-code.

What does nanobanana-skill do?

It connects your agent to Google Gemini via a Python script to generate new pictures or edit existing files from prompts.

What dependencies does nanobanana-skill require?

It requires GEMINI_API_KEY set in the environment or ~/.nanobanana.env, plus Python 3 with google-genai, Pillow, and python-dotenv.

Source text

SKILL.md · MIT
---
name: nanobanana-skill
description: 'Generate or edit images via Google Gemini (nanobanana). This is the DEFAULT image skill — use whenever the user asks to generate, create, or edit an image and does NOT name another provider. Triggers: "nanobanana", "generate image", "create image", "edit image", "图片生成", "生成图片", "AI绘图", "图片编辑". Do NOT use for diagrams (架构图/流程图/时序图) — draw those with Mermaid or code instead.'
allowed-tools: Read, Write, Glob, Grep, Task, Bash(cat:*), Bash(ls:*), Bash(tree:*), Bash(python3:*)
---

# Nanobanana Image Generation Skill

Generate or edit images using Google Gemini API through the nanobanana tool.

## Requirements

1. **GEMINI_API_KEY**: Must be configured in `~/.nanobanana.env` or `export GEMINI_API_KEY=<your-api-key>`
2. **Python3 with dependent packages installed**: google-genai, Pillow, python-dotenv. They could be installed via `python3 -m pip install -r ${CLAUDE_SKILL_DIR}/requirements.txt` if not installed yet.
3. **Executable**: `${CLAUDE_SKILL_DIR}/nanobanana.py`

## Instructions

### For image generation

1. Ask the user for:
   - What they want to create (the prompt)
   - Desired aspect ratio/size (optional, defaults to 9:16 portrait)
   - Output filename (optional, auto-generates UUID if not specified)
   - Model preference (optional, defaults to gemini-3.1-flash-image-preview)
   - Resolution (optional, defaults to 1K)

2. Run the nanobanana script with appropriate parameters:

   ```bash
   python3 ${CLAUDE_SKILL_DIR}/nanobanana.py --prompt "description of image" --output "filename.png"
   ```

3. Show the user the saved image path when complete

### For image editing

1. Ask the user for:
   - Input image file(s) to edit
   - What changes they want (the prompt)
   - Output filename (optional)

2. Run with input images:

   ```bash
   python3 ${CLAUDE_SKILL_DIR}/nanobanana.py --prompt "editing instructions" --input image1.png image2.png --output "edited.png"
   ```

## Available Options

### Aspect Ratios (--size)

- `1024x1024` (1:1) - Square
- `832x1248` (2:3) - Portrait
- `1248x832` (3:2) - Landscape
- `864x1184` (3:4) - Portrait
- `1184x864` (4:3) - Landscape
- `896x1152` (4:5) - Portrait
- `1152x896` (5:4) - Landscape
- `768x1344` (9:16) - Portrait (default)
- `1344x768` (16:9) - Landscape
- `1536x672` (21:9) - Ultra-wide

### Models (--model)

- `gemini-3.1-flash-image-preview` (default) - Latest, fast generation
- `gemini-3-pro-image-preview` - Higher quality, supports thinking/reasoning

### Resolution (--resolution)

- `1K` (default)
- `2K`
- `4K`

### Other Options

- `--no-search` - Disable Google Search grounding (enabled by default)
- `--no-think` - Disable thinking/reasoning mode

## Examples

### Generate a simple image

```bash
python3 ${CLAUDE_SKILL_DIR}/nanobanana.py --prompt "A serene mountain landscape at sunset with a lake"
```

### Generate with specific size and output

```bash
python3 ${CLAUDE_SKILL_DIR}/nanobanana.py \
  --prompt "Modern minimalist logo for a tech startup" \
  --size 1024x1024 \
  --output "logo.png"
```

### Generate landscape image with high resolution

```bash
python3 ${CLAUDE_SKILL_DIR}/nanobanana.py \
  --prompt "Futuristic cityscape with flying cars" \
  --size 1344x768 \
  --resolution 2K \
  --output "cityscape.png"
```

### Edit existing images

```bash
python3 ${CLAUDE_SKILL_DIR}/nanobanana.py \
  --prompt "Add a rainbow in the sky" \
  --input photo.png \
  --output "photo-with-rainbow.png"
```

### Use pro model for higher quality

```bash
python3 ${CLAUDE_SKILL_DIR}/nanobanana.py \
  --prompt "Detailed portrait of a cat in watercolor style" \
  --model gemini-3-pro-image-preview \
  --output "cat-portrait.png"
```

## Error Handling

If the script fails:

- Check that `GEMINI_API_KEY` is exported or set in ~/.nanobanana.env
- Verify input image files exist and are readable
- Ensure the output directory is writable
- If no image is generated, try making the prompt more specific about wanting an image

## Best Practices

1. Be descriptive in prompts - include style, mood, colors, composition
2. For logos/graphics, use square aspect ratio (1024x1024)
3. For social media posts, use 9:16 for stories or 1:1 for posts
4. For wallpapers, use 16:9 or 21:9
5. Start with 1K resolution for testing, upgrade to 2K/4K for final output
6. Use gemini-3-pro-image-preview for best quality, gemini-3.1-flash-image-preview (default) for speed

© feiskyer · MIT · feiskyer/claude-code-settings

Similar skills

Everything for Design →

From the same set2

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor