Diagnose and fix Windows Terminal startup errors caused by missing resource files (icons, backgroundImages, etc.) referenced in settings.json. Use this skill whenever the user mentions Windows Terminal showing an error like "One or more resources (such as icon or backgroundImage) specified in your settings could not be found", or any variant of a missing icon/resource warning when opening a terminal or command prompt. Also trigger when the user says their Windows Terminal profile has a broken icon, or that a profile they deleted (e.g. Multipass, Docker, WSL distro) is still causing errors. Don't wait for the user to say "skill" — if the problem sounds like a Windows Terminal settings file with broken resource paths, use this skill.
Windows Terminal stores its configuration in a settings.json file. Profiles can reference
external files for things like icons and background images. When those external files no longer
exist (e.g. an app was uninstalled, a file was moved), Windows Terminal shows a warning on
every launch. This skill finds and removes those broken references so the warning goes away,
without affecting any other settings.
The settings.json is almost always at:
C:\Users\<username>\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
You already know the username from the mounted folder path — use it. Request access to that
exact path via request_cowork_directory. If access fails (e.g. wrong username), ask the user
to select the LocalState folder manually.
Read the file. Confirm it's valid JSON before proceeding. If parsing fails, stop and tell the user their settings.json has a syntax error — share the line/column of the issue so they can fix it manually.
Scan every profile in profiles.list for these fields:
"icon" — path to an .ico or image file"backgroundImage" — path to an image file/, C:/, %, or similar)Skip null values and empty strings — those are fine and not causing errors.
The Linux VM cannot directly access the user's Windows filesystem, so you cannot verify whether a Windows path actually exists. The rule is simple:
Remove every absolute Windows path — any value starting with a drive letter like
C:/, D:/, or a Windows environment variable like %USERPROFILE%. This includes:
Program Files (e.g. installed apps like Multipass, Docker)C:/Users/alice/Pictures/bg.png)C:/Users/alice/OneDrive/...)The reason: you cannot verify these files exist from the VM, and a path that looks plausible may still be broken. The user is asking you to fix the error, so when in doubt, remove it. They can easily re-add a working path later via Windows Terminal's settings UI.
Only leave a path in place if it maps to one of the user's currently mounted folders
(visible under /sessions/.../mnt/) and you can confirm the file exists with test -f.
For each broken reference:
null — a missing field is cleaner than an
explicit null, since null can still be interpreted as a resource reference in some versions).While you're in there, also clean up any "icon": null or "backgroundImage": null entries,
since these are explicitly setting a resource to nothing and are generally unnecessary clutter.
Before writing, serialize the modified JSON with the same indentation style as the original (4 spaces). Do a final parse of the output string to confirm it's still valid JSON — if not, stop and report the error rather than writing a broken file.
Write the fixed settings.json back to the same path.
Tell the user:
Multiple broken references in one profile: Fix them all — don't stop after the first one.
The default profile itself has a broken icon: That's fine to fix — the default profile will just use the built-in Windows Terminal icon instead.
Settings.json doesn't exist at the expected path: The user may have Windows Terminal installed differently (e.g. from GitHub releases rather than the Store). Ask them to navigate to their settings via Windows Terminal → Settings → "Open JSON file" button, then note the path and ask you to request access to that folder.
Multipass, Docker Desktop, WSL distros: These are the most common source of broken icons when users uninstall or update these tools. Mention this if relevant so the user understands why the icon was missing.