Icnsify


icnsify: A Lean, Cross-Platform Icon Tool for macOS .icns
Format
Link to heading
Overview Link to heading
icnsify
is a fast, lightweight utility for creating and previewing .icns
files—the proprietary Apple Icon Image format—without relying on macOS.
I built the first version in a Swedish café in 2018 as my first serious open-source contribution. Since then, it has grown into a widely used tool among developers—especially those building cross-platform apps with Gio—to automate icon generation as part of their CI pipelines or local development.
The native Apple tool, iconutil
, is macOS-only, hard to script, and requires a
rigid folder structure with pre-sized PNGs. icnsify
simplifies this:
- Cross-platform (runs on Linux, macOS, Windows)
- CLI-first with support for piping and scripting
- Intelligently resizes a single image to required sizes
- Auto-converts common formats to PNG
- Preview GUI for inspecting
.icns
on any OS
Install with a single Go command: go install github.com/jackmordaunt/icns/cmd/icnsify@latest
My Role Link to heading
I designed and implemented icnsify
from scratch, using the .icns
format
specification and reverse-engineering documentation like the Wikipedia entry.
Key design goals:
- Keep it lean: Minimal dependencies, instant startup, small binary
- Make it ergonomic: Smart defaults, clear CLI, and usable in Unix pipelines
- Simplify a complex task: Resize and convert images automatically
- Support the ecosystem: Designed for developers publishing to macOS from any OS
Results Link to heading
icnsify
is now used in multiple open-source projects targeting macOS,
particularly in the Go/Gio ecosystem. It has become a go-to tool for developers
who value simplicity, cross-platform compatibility, and automation in their
toolchain.