Asking ClaudeCode to decode Suunto Guide files
-
Being a bit frustrated with not being able to upload FIT files without partner access to the API I downloaded a “.gui” file from the watch, originally uploaded by intervals.icu.
Here is Claudes take on the file, enjoy

Next step will be to see if I can extract this information to my own app on the watch.
Claude:
Interesting — this is a Suunto workout guide called “Aerobic Threshold 50” from Intervals.icu. Let me read the step files.The picture is now clear. This is a Suunto workout guide exported from Intervals.icu — a 50-minute aerobic threshold run at 135–145 bpm. A few interesting things:
HR is stored in Hz, not bpm —
step1.jsshows:value: 2.333...Hz = 140 bpmlow: 2.25Hz = 135 bpmhigh: 2.4166...Hz = 145 bpm
That’s exactly why
main.jshas60 * input.HeartRate— converting from Hz to bpm before doing anything with it.step2.js is in Swedish — “SuuntoPlus
-guiden avslutades” = “The SuuntoPlus
guide ended”. Makes sense for your locale.The file structure:
File Purpose manifest.jsnWorkout metadata, sensor subscriptions main.jsRuntime engine (what we were formatting) step0.jsIntro screen (50:00, 135–145bpm) step1.jsMain interval — 50 min HR target step step2.jsEnd screen icon.pxbWatch face icon (300×300, proprietary format) So the
main.jsyou were cleaning up is Suunto’s guide runtime — it dynamically loads eachstep{n}.jsviaevalFile()as the workout progresses. -
You can use Quantified Self for uploading Fit files
-
@Dimitrios-Kanellopoulos
Thank you for the tip. I signed up for a Pro subscription and will try that out. Currently uploading years of training history.
-
@matram Feel free to ping me if you need help. or you want another service connected for autosync, but try the official channels of the app. I made this for me convenience as well and managed to upload history from Strava Garmin and all the stuff I had in the past