apple-appicon
apple-appicon
One source image in, HIG-correct icon sets out. Agent-agnostic: nothing here depends on a specific coding agent — only on a shell. Commands write <skill-dir> for this skill's directory; resolve it to wherever your agent installed the skill (Claude Code exposes it as ${CLAUDE_SKILL_DIR}; otherwise it is the directory containing this SKILL.md). The working directory is the user's project.
Requirements — check the platform first. The native toolchain is macOS: sips, iconutil, swift from Xcode Command Line Tools, no installs. Run uname -s (or equivalent) before promising anything, and on anything other than macOS tell the user up front, in plain terms, what works on their machine and what doesn't — then proceed with what does:
- macOS → everything below, natively.
- Linux / Windows (WSL or Git Bash) → Tauri projects keep full support:
tauri iconis Rust and cross-platform,.icnsincluded, and the margin fix routes through it (references/tauri.md). Asset-catalog PNGs andContents.jsonfiles need ImageMagick 7 — command equivalents are in the "Non-macOS fallbacks" section of references/platform-recipes.md. A bare.icnsoutside a Tauri project is the one thing that genuinely needspng2icns, a Mac, or CI — say so rather than approximating.
Never discover a missing sips mid-run: state the limitation before generating, and never silently drop the macOS margin treatment because the native tool is absent.
Step 0 — establish source and targets
- Source: the image path from the arguments or conversation. No path → ask for one; never invent or generate artwork unless the user asks.
- Targets:
--platformwins. Otherwise detect:src-tauri/tauri.conf.json→ tauri; an.xcodeproj/Assets.xcassets→ the Xcode platforms it targets; neither → ask, defaulting toallwritten under./AppIcons/<platform>/.--outoverrides the destination.ipadosis theiosrecipe (universal appiconset).