Prod0

Free tool

Tauri app
icon generator.

Drop in one image and get the complete src-tauri/icons/ directory, named exactly the way Tauri reads it, with proper macOS padding and squircle corners.

Drop a PNG, or click to choose

1024x1024 recommended. PNG, JPEG, WebP, or SVG.

Platforms

macOS padding

macOS shadow

Where the files go

Unzip the download into src-tauri/. The filenames are not cosmetic: Tauri resolves several of them by exact name, so renaming 128x128@2x.png will break the build rather than fall back.

tree
src-tauri/
  icons/
    icon.icns          macOS bundle
    icon.ico           Windows
    icon.png           512px, window and tray icon
    128x128@2x.png     256px
    128x128.png
    32x32.png

Then point tauri.conf.json at them. Paths in the bundle icon array are relative to src-tauri/, not to the config file's directory.

tauri.conf.json
{
  "bundle": {
    "icon": [
      "icons/32x32.png",
      "icons/128x128.png",
      "icons/128x128@2x.png",
      "icons/icon.icns",
      "icons/icon.ico"
    ]
  }
}

How this differs from tauri icon

Tauri ships its own command. Running npm run tauri icon app-icon.png generates the same directory, and if you want a CLI in your build script, use it. We are not pretending otherwise.

The difference is what happens to the artwork. The built-in command resizes your source and writes it out at each size, full-bleed. That is correct for Windows and Linux. On macOS it means your icon fills its entire box while every native app around it sits inside a rounded square with margin, so yours renders visibly oversized in the Dock.

This tool keeps a separate macOS version of your artwork: squircle mask, then roughly 10% margin per side, matching what shipped apps actually do. Windows and Linux still get the full-bleed version. If your source already accounts for the margin, switch padding to none and only the corner shaping is applied.

The other difference is that this needs no toolchain. No Rust, no Node, no install, and nothing leaves your browser.

Common questions

Where do Tauri app icons go?

In src-tauri/icons/. Tauri looks for icon.icns for the macOS bundle, icon.ico for Windows, and the PNG set for the window icon, the tray icon and Linux packaging. Unzip the download straight into src-tauri/ and the paths line up.

Why does Tauri need 128x128@2x.png specifically?

Tauri resolves that file by exact name for retina window and tray icons. It is a 256x256 image with a filename that describes the point size and scale factor rather than the pixel size, which trips people up. Rename it and the build errors rather than falling back to another size.

Do I still need to run tauri icon?

No. This produces the same directory with the same filenames, so once you have unzipped it into src-tauri/ you can build directly. Use the built-in command instead if you want icon generation to happen inside your build script rather than as a one-time step.

What source image should I use for a Tauri app?

A 1024x1024 PNG with a transparent background. That is the largest size macOS asks for, so every other output is a downscale. Avoid baking your own rounded corners into the source, since the tool applies the macOS corner shape itself and doubled corners look wrong.

Is my image uploaded anywhere?

No. The .icns and .ico encoding both run in your browser in a web worker, so your artwork never leaves the machine. Nothing is stored and nothing is sent.