Writing to the watch uses the File System Access API — Chrome, Edge, Brave and Opera
on the desktop, over https:// or localhost. Firefox and Safari don't
have it: there, use Save file… and copy the file into GARMIN/APPS yourself.
The watch has to show up as a folder. The Instinct 2 connects over MTP on Linux.
Opened in Nautilus the path looks like
/run/user/1000/gvfs/mtp:host=…/Internal storage; jmtpfs ~/garmin is
steadier. On Windows pick the device folder under This PC. Pick the watch root or the
GARMIN folder — the rest is found for you, and the choice is remembered for next time.
Watch out for the double GARMIN. Over MTP the watch volume is itself called GARMIN, so
the real path is GARMIN/GARMIN/APPS. Files dropped in the outer
GARMIN/APPS are simply ignored — no error, the watch face just never appears. This
page picks the folder holding GarminDevice.xml and tells you if stray
.prg files are sitting in the wrong one.
The .prg vanished from the watch after replugging — that's normal. The firmware moves it internally. Find it on the watch: hold MENU → Watch Face → scroll to the end.
Nothing shows up, or you get "IQ!" — the build is almost always for the wrong model.
instinct2, instinct2s, instinct2x and
instinctcrossover are four different devices and a .prg can't be shared between
them. Also check GARMIN/APPS/LOGS/CIQ_LOG.YML, read out below whenever you pick a
watch — an Out Of Memory entry means the design is too heavy for the device.
Called as PROXY + encodeURIComponent(url). Note that a
proxy can't pass the Turnstile either — it only helps for pages that aren't gated. The Worker
source is in the README.