Make Your AutoHotkey Tray Icon Tell Users What Your Script Is Doing
Your script is busy crunching files. Is it working? Stuck? Finished? Waiting for you? From the outside, a static tray icon looks exactly the same in every one of those moments, so your users keep guessing (or keep opening the window to check).
IconAnimate fixes that. It animates your script’s tray icon, its title bar icon, or both, so a spinner says “busy”, a check mark says “done”, and a red shake says “something went wrong”. You pick the animation, tune it in a live preview, and the Syntax Writer hands you the exact AutoHotkey v2 code to paste into your script.

Why an Animated Icon?
Most tray icons live in the overflow area and get glanced at, not studied. A small animation is the fastest way to answer the one question users actually have: “what is my script doing right now?”
- Status at a glance: busy, waiting, success, failure, recording, paused and more.
- Errors can’t hide: give an error animation a higher priority and a routine status update can never paint over it.
- No flicker: frames are loaded once up front, so playback is smooth.
- Tray, title bar, or both: animate the system tray, your window’s title bar and taskbar button, or all of them at once.
38 Ready-Made Animations
You don’t need to draw a single icon to get started. IconAnimate ships with 38 status animations designed to stay readable at the tiny 16 pixel size of a tray icon:
| Your script is… | Example animations |
|---|---|
| Working | SpinBraille, SpinQuadrant, Equalizer, Marquee |
| Showing progress | BarGrow, Fill3, PixelBar, HexStep |
| Done or failed | OKStamp, XStamp, ShakeX |
| Waiting on you | NeedsInput (amber, never red), BlinkBang, Ellipsis |
| Other states | RecDot, PauseBlink, Heartbeat, SyncArrows, Zzz, MoonCycle, counters and more |
Bring Your Own Animation: GIF, WebP or PNG
Found the perfect animation on LottieFiles or anywhere else? Export it as a GIF, WebP or PNG sequence, click Import frames, give it a name, and it’s turned into crisp 16 and 32 pixel icons ready to play. No Python, no extra installs: everything runs inside AutoHotkey, and the WebP decoder is included.
The Code Writes Itself
Tune the speed, the number of cycles, ping-pong playback and “hold the last frame” in the live demo until it looks right. Then click Write the syntax. You get a short snippet like this, already on your clipboard:
IconAnim := IconAnim_CreateState(“C:\YourIcons”, “Busy”)
if IconAnim {
IconAnim.states[“Busy”].cycles := 5
IconAnim.Start(false, false)
OnExit((*) => IconAnim.Dispose())
}
; —- Trigger it from anywhere in your script —-
IconAnim.Notify(“Busy”) ; work starts
IconAnim.SetIdle() ; work ends
That’s the whole idea: call Notify when work begins and SetIdle when it ends.
More Than Just Pretty Pixels
- Click actions per state: a click on the “error” icon can open your log, while a click on the “done” icon opens the results. One line per state.
- Tooltips that follow the state: hover the tray icon and read what’s happening. Screen readers read it too.
- Idle watchdog: forgot to call SetIdle on an error path? The watchdog puts the icon back to rest so it never lies about a job that ended long ago.
- Hover and random bursts: an optional little flourish when the mouse passes over the icon, so your tool feels alive.
- Survives Explorer restarts: if Windows Explorer restarts, the tray icon comes back on its own.
What You Get
- The IconAnimate library for AutoHotkey v2, ready to #Include in your own scripts
- The Syntax Writer tool with live demo and code generator
- 38 ready-made status animations
- A full user guide (web page and PDF)
Give your tray icon something to say
IconAnimate is just $4.99
A tray icon that moves is a tray icon people notice. Whether it’s a spinner while your backup runs, a check mark when the report is ready, or an amber pulse when the script needs a decision from you, IconAnimate lets your script speak up without a single pop-up.
Questions? Visit the-Automator.com/AnimateIcon.

