---
name: icon
description: Generate icons, stickers, and app assets using AI. Use when user wants to create icons, stickers, logos, or visual assets.
disable-model-invocation: false
user-invocable: true
allowed-tools: Bash, Read, Write, Glob
argument-hint: "<description> [--ref <reference-image>] [--style <style>] [--output <path>]"
---

# Claude Icons

Generate icons, stickers, and visual assets using Google's Imagen (nano-banana) model.

## Arguments

Parse the user's request from: $ARGUMENTS

Expected formats:
- `/icon a happy cloud mascot` - Generate icon with description
- `/icon a cat waving --ref ./style.png` - Match style of reference image
- `/icon app logo --style flat-minimal --output ./assets/logo.png` - With style preset and output path
- `/icon --setup` - Configure API key

## Setup Flow

If user runs `/icon --setup` or if GEMINI_API_KEY is not configured:

1. Ask user for their Google AI Studio API key (get one at https://aistudio.google.com/apikey)
2. Save it using the Bash tool:
   ```bash
   security add-generic-password -a "$USER" -s "gemini-api-key" -w "THE_API_KEY" -U
   ```
3. Confirm setup is complete

## Generation Flow

1. **Check API key exists:**
   ```bash
   security find-generic-password -a "$USER" -s "gemini-api-key" -w 2>/dev/null
   ```
   If not found, guide user through setup.

2. **Determine output path:**
   - If `--output` specified, use that
   - If in Xcode project, suggest `Assets.xcassets/`
   - Otherwise use `./generated-icons/`

3. **Run the generator script:**
   ```bash
   python3 "$(dirname "$0")/../../scripts/generate_icon.py" \
     --description "USER_DESCRIPTION" \
     --reference "REFERENCE_PATH_IF_ANY" \
     --style "STYLE_IF_SPECIFIED" \
     --output "OUTPUT_PATH"
   ```

4. **Show the result:**
   - Display the generated image path
   - If macOS, offer to open in Preview: `open OUTPUT_PATH`
   - If Xcode project detected, offer to add to asset catalog

## Style Presets

Available styles (use with `--style`):
- `flat-minimal` - Clean, flat design with minimal details
- `3d-glossy` - 3D look with glossy highlights
- `hand-drawn` - Sketch/illustration style
- `pixel-art` - Retro pixel art style
- `gradient` - Modern gradient style
- `outline` - Line art / outline only
- `sticker` - Sticker style with white border (auto-removes background)

## Examples

User: `/icon a smiling sun for a weather app`
→ Generate cheerful sun icon, save to ./generated-icons/

User: `/icon matching this style --ref ./my-icons/home.png a settings gear`
→ Analyze reference, generate gear icon in same style

User: `/icon --setup`
→ Guide through API key configuration

## Error Handling

- If generation fails, show the error and suggest:
  - Check API key is valid
  - Try a simpler description
  - Check internet connection
- If rembg not installed for sticker style, offer to install: `pip install rembg`
