Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate iOS app icons as PNG imagesets for Xcode asset catalogs from SF Symbols (5000+ Apple-native) or Iconify API (275k+ open source icons from 200+ collections). Use when generating icons, creating icon assets, adding icons to asset catalog, or searching for icons for iOS projects.
.claude/skills/ios-icon-gen/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | — | — |
| case-07 | ✗→✓ | ▲ Improved | — | — |
| case-20 | ✗→✓ | ▲ Improved | — | — |
| case-23 | ✗→✓ | ▲ Improved | — | — |
| case-22 | ✗→✓ | ▲ Improved | — | — |
Generate PNG icon imagesets for Xcode asset catalogs from two sources.
Both sources produce identical Xcode-compatible imagesets. Choose based on need:
| Source | Icons | Requires | Best for | |--------|-------|----------|----------| | Iconify API | 275,000+ from 200+ collections | Internet | Wide selection, specific styles, open source icons | | SF Symbols | 5,000+ Apple symbols | macOS only | Apple-native style, offline use |
Before generating, check the project's existing icons for size, color, and weight consistency.
Both methods produce a complete Xcode imageset:
<output-dir>/<asset-name>.imageset/
Contents.json
<asset-name>.png # 1x (68px default)
<asset-name>@2x.png # 2x (136px default)
<asset-name>@3x.png # 3x (204px default)Determine icon needs: what the icon represents, preferred style, target color, and size.
If the project already has icons, check existing style:
bash# Check dimensions of existing icon sips -g pixelWidth -g pixelHeight path/to/existing@2x.png
Iconify API (recommended for wide selection):
bash# Search all collections $SKILL_DIR/scripts/iconify_gen.sh search "receipt" # Search within a specific collection $SKILL_DIR/scripts/iconify_gen.sh search "business card" --prefix mdi # List available collections $SKILL_DIR/scripts/iconify_gen.sh collections
SF Symbols (for Apple-native style): Browse the SF Symbols app or reference common names:
| Use Case | Symbol Name | |----------|-------------| | Document | doc.text, doc.fill | | Receipt | doc.text.below.ecg, receipt | | Person | person.crop.rectangle, person.text.rectangle | | Camera | camera, camera.fill | | Scan | doc.viewfinder, qrcode.viewfinder | | Settings | gearshape, slider.horizontal.3 |
bash# Iconify preview $SKILL_DIR/scripts/iconify_gen.sh preview mdi:receipt-text-outline
Iconify API:
bash# Basic generation $SKILL_DIR/scripts/iconify_gen.sh mdi:receipt-text-outline editTool_expenseReport # Custom color and output location $SKILL_DIR/scripts/iconify_gen.sh mdi:receipt-text-outline myIcon --color 007AFF --output ./Assets.xcassets/icons
Options: --size <pt> (default: 68), --color <hex> (default: 8E8E93), --output <dir> (default: /tmp/icons)
SF Symbols:
bash# Basic generation swift $SKILL_DIR/scripts/generate_icons.swift doc.text.below.ecg editTool_expenseReport # Custom color, weight, and output swift $SKILL_DIR/scripts/generate_icons.swift person.crop.rectangle myIcon --color 007AFF --weight regular --output ./Assets.xcassets/icons
Options: --size <pt> (default: 68), --color <hex> (default: 8E8E93), --weight <name> (default: thin), --output <dir> (default: /tmp/icons)
bash cp -r /tmp/icons/<name>.imageset path/to/Assets.xcassets/<group>/
| Prefix | Name | Count | Style | |--------|------|-------|-------| | mdi | Material Design Icons | 7400+ | Filled + outline variants | | ph | Phosphor | 9000+ | 6 weights per icon | | solar | Solar | 7400+ | Bold, linear, outline | | tabler | Tabler Icons | 6000+ | Consistent stroke width | | lucide | Lucide | 1700+ | Clean, minimal | | ri | Remix Icon | 3100+ | Filled + line variants | | carbon | Carbon | 2400+ | IBM design language | | heroicons | HeroIcons | 1200+ | Tailwind CSS companion |
Browse all: <https://icon-sets.iconify.design/>
| Script | Source | Path | |--------|--------|------| | iconify_gen.sh | Iconify API (275k+ icons) | $SKILL_DIR/scripts/iconify_gen.sh | | generate_icons.swift | SF Symbols (5k+ icons) | $SKILL_DIR/scripts/generate_icons.swift |
--output ./Assets.xcassets/icons to skip manual copying| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-23 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 21 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +43 percentage points is the difference between those two pass rates over the 21 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.