
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
garmin-scripts
Advanced tools
A collection of scripts for building Garmin Connect IQ applications within the terminal.
A collection of scripts for building Garmin Connect IQ applications within the Windows terminal.
It's using the SDK version which is configured in the Connect IQ SDK Manager.
package.json example{
"scripts": {
"build:debug": "npx -y -p=garmin-scripts build --debug",
"build:beta": "npx -y -p=garmin-scripts build --beta",
"build:release": "npx -y -p=garmin-scripts build --release",
"build:simulator": "npx -y -p=garmin-scripts build --simulator fr645m",
"era:live": "npx -y -p=garmin-scripts era 01234567-89ab-cdef-0123-456789abcdef",
"era:beta": "npx -y -p=garmin-scripts era fedcba98-7654-3210-fedc-ba9876543210",
"list-models-by-memory-usage": "npx -y -p=garmin-scripts list-models-by-memory-usage",
"list-models-by-bits-per-pixel": "npx -y -p=garmin-scripts list-models-by-bits-per-pixel",
"list-unused-models": "npx -y -p=garmin-scripts list-unused-models",
"get-model-by-product-id": "npx -y -p=garmin-scripts get-model-by-product-id 006-B3990-00"
}
}
developer_keyCreate a developer key and store it in a file named developer_key in the root of your project.
⚠️ Don't upload your key file to a public Git repository. Add this file name to your .gitignore!
.storeCreate a JSON file named .store in the root of your project.
This file can have 3 properties: "release", "beta" and "debug". Each of them represents the application ID which is injected into your manifest.xml, if you build of of these versions.
{
"release": "01234567-89ab-cdef-0123-456789abcdef",
"beta": "01234567-89ab-cdef-0123-456789abcdef",
"debug": "01234567-89ab-cdef-0123-456789abcdef"
}
If the application ID for a specific version is missing "00000000-0000-0000-0000-000000000000" is used.
npx -y -p=garmin-scripts build --debug
npx -y -p=garmin-scripts build --beta
npx -y -p=garmin-scripts build --release
npx -y -p=garmin-scripts build --simulator fr645m
--debug and --simulatorFor --debug amd --simulator a device can specified. If the device name is omitted, the script will falls back to fenix7.
manifest.xmlAs described above, the application IDs from the .store are injected into the manifest.xml, while running a build.
After the build is finished, the ID is unset.
It's important to have atleast id="" in the iq:application tag of your manifest.xml, as this is the place where the ID is injected.
For example:
<iq:application id="" type="datafield" name="@Strings.AppName" entry="App" launcherIcon="@Drawables.LauncherIcon" minApiLevel="3.0.0">
⚠️ Remember not to change or commit this file while the build is running, otherwise the automatic reverting of the ID after the build has been finished could lead to unexpected results.
While compiling using --debug and --beta, the script will crawl through all XML files and searches for such a tag:
<string id="AppName">[YOUR APPLICATION NAME]</string>
If it find one, it will append " (debug)" to the app name string in --debug mode, and " (beta)" to the app name string in --beta mode.
⚠️ Remember not to change or commit these files while the build is running, otherwise the automatic reverting of these changes after the build has been finished could lead to unexpected results.
It is possible to include source code files only in debug mode or only in release/beta mode. To achieve this, give the respective files the extension ".debug.mc" or ".release.mc".
In debug mode, *.release.mc files will be renamed to *.release.mc-, while in release/beta mode *.debug.mc filess will be renamed to *.debug.mc- to force the compiler to ignore these files.
After the compilation is done, the files are renamed back to their original file name.
This can be helpful to create 2 versions of a module, one with logging of debug information or which mocks data, and one for the release version.
⚠️ Remember not to change or commit files while the build is running, otherwise this renaming could lead to unexpected results.
npx -y -p=garmin-scripts era 01234567-89ab-cdef-0123-456789abcdef
npx -y -p=garmin-scripts list-models-by-memory-usage
⚠️ Only devices which are installed by the Connect IQ SDK Manager are covered.
npx -y -p=garmin-scripts list-models-by-bits-per-pixel
⚠️ Only devices which are installed by the Connect IQ SDK Manager are covered.
manifest.xmlnpx -y -p=garmin-scripts list-unused-models
⚠️ Only devices which are installed by the Connect IQ SDK Manager are covered.
Error reports may only contain a Product ID. To get it's name, you can use this script.
npx -y -p=garmin-scripts get-model-by-product-id 006-B3990-00
⚠️ Only devices which are installed by the Connect IQ SDK Manager are covered.
FAQs
A collection of scripts for building Garmin Connect IQ applications within the terminal.
We found that garmin-scripts demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.