Workout Coach

I really enjoy fitness and working out. Although dips during the semester do not always reflect this very well, I just enjoy a hard workout or the feeling of my body moving.

This alongisde the fact that I am not wrestling or on a team how I was in high school, means that my fitness has slowed down a decent amount. I'm not able to have someone to push me in the exact same way that I used to.

Solutions could be friends or a new coach. Most of my friends wake up later in the day than when I would want to work out and the other guy, Jack Hammer, is crazy (as of the writing, we're about to go on a super long run soon. I'm very excited)

Regardless, I wanted to see if I could have a coach and visualize my training data. I might actually pair this up with a Raspbery Pi + LCD screen at some point.

As such, right now I am basically vibe-coding an LLM coach integration with this Grafana Dashboard: https://github.com/arpanghosh8453/garmin-grafana.

I started off thinking that I would use the FIT files format that has been used previously, but I'm very aware that these FIT files are based on Garmin's predicted exercise data, which is notoriously bad. I think I would prefer to sync up the workout data and correct the sets if that makes sense. This would be ideal, although it might be a little annoying.

I'm honestly just letting Claude run at this for now. I'll make a Telegram bot that I'll text and it'll use some LLM API key to get a response for an ideal workout.

I've seen that Gemini is free for a limited amount per month, so I'll just use that for now. I'll look more into other open source models in the future.

A quick search while I was "coding" showed that there are a few products with similar appeals, but I already started this so I'm going to keep going and see if I like the fix once I'm done.

Okay, so now I'm able to use Telegram to see recent workouts. That's great. I think I'm at a natural stopping point. I'll stop for right now so I can do work that I actually need to.

Depending on how much I find this useful, I might actually make this into an app using Expo Go as a demo. Anyways, it's very much just an LLM-wrapper right now that has relevant nearby context. Actually, I did add the basic integration so it's able to connect my garmin data to workout specific information I input.

So this was like an hour long project, but I have a Docker container running this. I'll need to set it up on one of my Rasppis. I just checked tailscale and am realizing that their power source is all unplugged. I will have to do this later I guess.