Favicon
The app's icon in the browser tab and as a PWA (Flutter Web).
Implementation
Via MCP (recommended): ask your assistant "swap the favicon for [image path]". It runs set_favicon for you. See Kasy MCP.
-
Run:
kasy favicon --image path/to/your-favicon.pngRecommended: a square PNG ≥512×512. Prefer a simple symbol (no long text); at 16×16, text turns into a blur.
The command copies it to
assets/branding/favicon.png, regeneratesweb/favicon.pngand the PWA icons inweb/icons/, and already rounds the corners automatically (22% of the shorter side). To adjust or disable the rounding:kasy favicon --image path/to/your-favicon.png --radius 22--radius 0disables it and keeps sharp corners (useful if the source image is already rounded, or is a circle/monogram that shouldn't get an extra mask). Accepts any value between0and50.Manual alternative:
- Replace
assets/branding/favicon.png dart run flutter_launcher_icons- Hard refresh in the browser
- Replace
-
Force the browser to clear its cache to see the result:
- Mac:
Cmd + Shift + R - Windows:
Ctrl + Shift + R
The old favicon can persist for hours in normal cache.
- Mac:
Information
Rounded corners
Unlike the app icon (iOS/Android apply their own mask when rendering it), the browser and the PWA install draw the favicon PNG pixel-for-pixel, with no rounding at all. That's why the command bakes rounded corners in before generating the sizes: without it, the favicon looks like a hard square next to every other tab.
PWA
The PWA icon (when the user adds the site to their home screen) is also generated by the command. Background colors: web/manifest.json (background_color, theme_color).
Last updated on 08/02/2026

