Every icon your site needs, from one SVG
Favicons, OG images, PWA icons, Apple touch icons, web app manifest — from a single command.
How it works
Quick start
You need Python 3.9+ and Pillow installed. For SVG input, you also need rsvg-convert (install via brew install librsvg on macOS, or apt install librsvg2-bin on Linux).
Or just download the single file:
Tiers
Pro — not for sale yet
- Everything in Free, plus:
- Apple touch icons (152, 167, 180)
- PWA icons (192, 512)
- Windows tile icons + browserconfig.xml
- OG image (1200×630) with text overlay
- web app manifest.json
The free version is complete and MIT-licensed, and nothing in it expires. If you need the extra sizes today, the script already generates them with a flag — see the source.
Why use it?
- CLI-first — no web UI, no upload, no clicking. One command, all icons.
- Offline — zero network calls. Your logo never leaves your machine.
- Single source of truth — one SVG generates everything. Change the logo, re-run, done.
- CI-ready — integrate into your build pipeline. Re-generate icons on every deploy.
- Universal — Python 3.9+, works on macOS, Linux, Windows (with rsvg-convert).
Output structure
Frequently asked questions
What files does it generate?
The free tier writes the three favicon PNGs (16, 32, 48), a multi-resolution favicon.ico and an HTML <head> snippet. Adding --pro also writes the Apple touch icons, the PWA icons, the Windows tile icons, browserconfig.xml, a web app manifest.json and a 1200×630 OG image with a text overlay.
Why do I need icons beyond the favicon?
Each context picks its own icon: browser tab (16–32 px), iOS home screen (180 px), Android install/PWA splash (192 and 512 px), and social link previews. Missing sizes get scaled up and look blurry exactly where users notice most.
Does it upload my files?
No. It is a local Python script: it reads the SVG or PNG you point it at and writes the icons to an output folder. There is no network call anywhere in it, so your logo never leaves your machine.
Is there really a Pro licence?
Not today, and the page will not pretend otherwise. The free version is complete and MIT-licensed and nothing in it expires — the --pro flag in the script already produces the extra sizes without a licence file, so you can use them right now.