Building Omni

I stepped back on a squash court recently after five years away – sluggish, sore and out of breath. My goal is to play squash one or two times a week, competitively, without pain. I was once a decent player (College JV level), and I love the game. It’s time to get back to it.

Squash bundles most of what I care about: short, high-intensity bursts, fast court mobility, joint stability and balance through changes of direction, and fitness to recover between points. It also forces a level of body composition where extra weight isn’t grinding through my joints. The right side of my body is busted; my knee, my ankle, and my shoulder all have issues I’ve been working on for years. If I can play squash painlessly, this will let me easily do all the other life stuff – skiing, hiking, running around with my kids.

I’ve spent the last decade overcomplicating my health goals and missing most of them. This is the simplest version I’ve been able to write down, and I started experimenting with a hosted OpenClaw (using KlausAI) to help me achieve this goal.

A few years ago, when I was running Musha Ventures (a small seed fund in Africa), in an operating role, and starting a family all at once, I had a full-time assistant through Athena, in the Philippines. She was very helpful at planning and booking training, keeping me honest on daily habits, and consolidating data I was generating across apps that don’t talk to each other. That seemed like a good starting point for Omni.

The first task I gave Omni was booking my workout classes. Classes open 24 hours ahead, I always forget, and missing a class because I didn’t open an app at the right time is a silly reason to skip a workout. It didn’t work because Chelsea Piers blocks automated logins. I could work around it (e.g. mac mini / local IP), but it wasn’t worth it. I pivoted to using Omni as a health coach instead.

Setting up the coach

I gave Omni everything I had on my health — a decade of goals, bloodwork, injuries, DEXA and VO2 max results, and the workouts I actually enjoy. The goal was to make it mine, not generic.

I’ve kept it intentionally constrained. Omni has its own accounts (Google) and access to the data (dedicated 1Password Vault), but it can’t act on my behalf. I’m still not comfortable giving an always-on agent that level of control.

To make Omni useful, I wired in the data sources. Where there’s an API available, I use it – Withings for weight, Whoop for sleep and activity. I track food with LoseIt which syncs to Apple Health. Apple Health does not have clean API, so twice a week I run an export and Omni picks up calories, steps and a few other metrics from there – annoying but the best workaround I could find.

Everything rolls into a single Google Sheet. It tracks the day and a notes column where Omni captures anything I mention in passing: “knee was sore during squash,” “good swim,” “no caffeine today.”

An accountability buddy

Every morning Omni sends me a briefing with the weather, a short news digest, BTC and ETH prices, yesterday’s health summary, today’s plan, and a few habits to confirm.

Last week it flagged that I’d been consistently under on protein, and we set up a three-day push to hit 150g a day. We went a step further and pre-added what I’d eat (breakfast, lunch, snacks, dinner) into the log up front, so I knew what I was aiming for instead of reverse-engineering the math at 9pm. I hit it that first day, and made fewer decisions throughout. We did the same thing for steps a few days later: 15k a day for three days, with a simple daily check-in. These are not groundbreaking insights, but it’s the kind of small, structured loop with the accountability that makes it work.

The other thing that’s starting to build is my personal library. 90% of what I eat is the same, and 90% of my workouts are variations of the same handful of routines. Once Omni has those saved, the only thing I need to capture is what changed: “solid workout, bench is 60lb dumbells now,” or “had the usual breakfast, swapped eggs for a frittata,” dictated into my phone and parsed into the right rows in the sheet. Lower friction with a conversational UX should mean better adherence.

Where this is going

Right now personalization is nice in concept, but I’ve not really noticed anything insightful in the coaching. But the dataset is going to get richer as I build it, and the underlying models will get better as well.

Better data, and better models means that hopefully Omni will become actually useful as a performance and nutrition coach. I expect Omni to start telling me things I don’t already know, and help me make the right choices on training, recovery and nutrition consistently that help me get to my long term goal of playing squash without pain.

For now, Omni will just be my daily accountability buddy. That’s ok for now, the project was never only about the health coach. It was about building an agent end to end, with hosting, credentials, tools, context, and the full loop, and turning the crank on my own health was the excuse to actually do it.

If Omni never becomes a great coach but gets me to show up consistently, that’s enough. If I’m playing squash twice a week, without pain, everything else I care about will follow.

Leave a comment