Icnsify

icnsify: A Lean, Cross-Platform Icon Tool for macOS .icns Format Link to heading

GitHub →

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.

Used By Link to heading

Fyne Wails

Platforms Link to heading

Languages Link to heading

Tech Link to heading