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
- 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
- Pro is coming — the free version is complete and MIT-licensed.
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 icons does it find?
Favicons of every declared size and format (ICO, PNG, SVG), Apple touch icons, and the manifest-declared icons used by Android/Chrome when a user installs your site as an app.
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. You enter a URL and the checks read what the site publicly serves. Nothing is stored on our side.
My favicon works in the tab but not elsewhere — why?
Browsers fall back to /favicon.ico even with no HTML tag, but iOS home screens, PWA installs and many link previews only use explicitly linked icons. Add the full set of link tags and manifest entries this tool lists as missing.