Mahope tools: EUComply Clean Copy DeskUptime Transmute BugBottle All tools
New Tool

Every icon your site needs, from one SVG

Favicons, OG images, PWA icons, Apple touch icons, web app manifest — from a single command.

Download (tar.gz) Quick start →

How it works

$ site-icons logo.svg -o my-icons
site-icons v1.0.0 — Free tier
Generated 4 files in my-icons/
favicon-16x16.png 639 bytes
favicon-32x32.png 719 bytes
favicon-48x48.png 749 bytes
favicon.ico 2,161 bytes
snippet.html 1,097 bytes

$ site-icons logo.svg -o my-icons --pro
site-icons v1.0.0 — Pro tier
Generated 17 files in my-icons/
(favicons + OG image + PWA + Apple + tile icons + manifest + XML + HTML)

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).

$ pip install Pillow
$ curl -O /downloads/site-icons/site-icons-1.0.0.tar.gz
$ tar xzf site-icons-1.0.0.tar.gz
$ cd site-icons-1.0.0
$ python3 site_icons.py your-logo.svg -o icons --pro

Or just download the single file:

$ curl -O /downloads/site-icons/site_icons.py
$ python3 site_icons.py logo.svg -o icons

Tiers

Free

$0
  • 3 favicon PNGs (16, 32, 48)
  • favicon.ico
  • HTML <head> snippet
  • SVG + PNG input
Download free →

Pro — not for sale yet

No price
there is no Pro licence for Site Icons today
  • 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?

Output structure

icons/
├── favicon.ico (multi-res: 16, 32, 48)
├── favicon-16x16.png
├── favicon-32x32.png
├── favicon-48x48.png
├── apple-touch-icon-152x152.png (Pro)
├── apple-touch-icon-167x167.png (Pro)
├── apple-touch-icon-180x180.png (Pro)
├── icon-192x192.png (Pro, PWA)
├── icon-512x512.png (Pro, PWA)
├── icon-70x70.png (Pro, tile)
├── icon-150x150.png (Pro, tile)
├── icon-310x310.png (Pro, tile)
├── mstile-256x256.png (Pro, tile)
├── og-image.png (Pro, 1200×630)
├── manifest.json (Pro)
├── browserconfig.xml (Pro)
└── snippet.html (copy-paste into <head>)

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.