windows-tray-icons
Skill0 starsChanged 4 months agoMITView on GitHub
Fix Windows system tray icons that keep getting hidden, especially icons that reset to hidden after an app update creates a new entry for it. Use when the user says a notification area icon keeps disappearing, has to be manually re-enabled in Settings after every update, or asks to make all system tray icons show by default. Also use if the user references "Other system tray icons" resetting, or invokes this skill by name.
In this repository5 other files it gives its agents.
- blurb-writerSkill
- exec-friendlySkill
- podcast-writingSkill
- skill-exporterSkill
- update-project-memorySkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 39
Do not trigger for an icon that's missing because its app isn't running, or for taskbar problems unrelated to notification area icon …
- Distinctive: line 79
No sweep, scheduled or otherwise, can catch a newly created icon entry the instant it appears.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Windows Tray Icon Fix
Windows 11 tracks each notification area icon's visibility separately,
under HKCU:\Control Panel\NotifyIconSettings. When an app updates, it's
often registered under a brand new subkey there and defaults back to
hidden, which is why the "Other system tray icons" list keeps needing to
be re-checked by hand after updates. There's no supported Windows setting
that makes a new icon entry default to visible, so this skill works by
sweeping the entries that currently exist and, on request, keeping that
sweep running at every logon.
This skill runs Show-AllTrayIcons.ps1, bundled alongside this file, in
place of a third party "fix all tray icons" script. Those tend to bundle
far more than the job needs (self-updaters pulling unsigned code straight
from GitHub, Group Policy machinery, all-users backup and rollback
systems) for what is fundamentally one registry value swept across a
handful of keys. Keep it that way: don't add features to the script that a
specific request here doesn't call for.
When to use
Trigger when the user says a tray icon keeps disappearing or getting hidden, has to be manually re-enabled in Settings > Personalization > Taskbar > Other system tray icons after an update, or asks to make all system tray icons show by default. Also trigger on an explicit request to run this skill.
Do not trigger for an icon that's missing because its app isn't running, or for taskbar problems unrelated to notification area icon visibility. This only does anything on Windows.
Procedure
Work out how you can actually reach the user's Windows machine. This differs by how you're running:
- Claude Code, running locally on the user's own Windows machine:
your own shell already executes directly on that machine. Run
Show-AllTrayIcons.ps1with PowerShell yourself (powershell -ExecutionPolicy Bypass -File Show-AllTrayIcons.ps1). - Cowork, with a Windows machine linked through a connected folder:
the device-bridge shell reaches a Linux VM on that machine with the
connected folder mounted, not the Windows host's own shell. You can
write or update the script inside the connected folder from there,
but you cannot run PowerShell or touch the registry through it. Write
the script into the connected folder (or confirm the copy there is
current), then tell the user exactly how to run it themselves (see
INSTALLATION.md). Only run it yourself, via Computer use, if the user has separately turned that on for the device. - Cowork, with no Windows machine linked: you can't place or run anything. Give the user the script's contents to run themselves.
- Claude Code, running locally on the user's own Windows machine:
your own shell already executes directly on that machine. Run
- Run the sweep. With no arguments,
Show-AllTrayIcons.ps1promotes every current tray icon to visible and restarts Explorer to apply it immediately. Warn the user first (or before they run it themselves) that restarting Explorer closes and reopens any open Explorer windows, resetting them to their default view. That's expected, not a bug. - Offer persistence, don't default to it. A one-time sweep only fixes
icons that exist right now; a future app update will reset itself
again regardless. After confirming the sweep worked, mention
-InstallLogonTaskas an option that re-runs the sweep at every logon (no administrator rights required), rather than installing it unasked.-RemoveLogonTaskuninstalls it later if the user wants that.
Known limitations
- No sweep, scheduled or otherwise, can catch a newly created icon entry the instant it appears; the logon task only catches it at the next sign-in.
- Restarting Explorer closes all open Explorer windows. Closing them
first, or running with
-NoRestartExplorerand restarting Explorer manually later, avoids the disruption. - This only affects the current user's icons (
HKCU). It does not touch all-users defaults, Group Policy, or anything requiring elevation.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

