OpenClaw Fitness Stack: Three Macs, BJJ Buddy, and My Daily Podcast
An inside look at my fitness automation setup—and how I downsized from three Macs and OpenClaw to a streamlined workflow powered by Codex, Claude Code, and Antigravity.
Since this build log was originally recorded, my setup has evolved significantly:
- Downsized to Two Macs: I sold one of the Macs, simplifying the workstation into a cleaner, dual-machine setup that is far easier to manage.
- Moved Away From OpenClaw: I stopped using OpenClaw as the central agent coordinator.
- Modern AI Tooling: Today, the vast majority of my development, telemetry pipelines, and automation work is driven directly by Codex, Claude Code, and Antigravity.
If you're wondering which wearable to trust between the OnePlus Watch 2R and the Garmin 295, the answer depends entirely on your tolerance for beta tech: stick with Garmin for reliable core metrics and workout tracking, but choose the OnePlus if you need superior heart-rate accuracy and aren't bothered by an AI integration that currently feels more like a spelling assistant than a personal coach. This comparison is just one piece of my broader fitness command center, which I’ve been rebuilding across a multi-Mac architecture.
I originally ran this fitness stack across three separate Macs, each hosting its own dedicated agent. The experience has evolved significantly since my first attempt at this build. If you're trying to determine how to replace a fragmented stack of dashboards, weekly reports, and disparate fitness apps, here is a direct look at the architecture, the lessons learned, and the practical utility it provides.
The Multi-Agent Architecture
In this setup, I distributed the workload across separate physical machines to ensure that heavy background processing wouldn't bottleneck real-time coding and telemetry interactions. Because the machines share the same Apple ecosystem, Universal Control allows dragging one keyboard and mouse across the fleet without third-party tools like Synergy.
- Arya: The main builder workstation, running on a Mac Studio with an M5 Max chip and 64 GB of unified memory. Arya handles heavy compilation and complex feature branches.
- Bob: Handles background data rollups, research digestion, and automated audio generation without slowing down the active coding session.
- Claude: The primary tool for fast Q&A, architectural decisions, and targeted reviews.
BJJ Buddy and the Daily Podcast Pipeline
I have two major projects in flight within this stack. The first is BJJ Buddy, a React Native application built with Expo designed to track Brazilian Jiu-Jitsu techniques. The goal is to create a searchable library of techniques filtered by position, belt level, and type. The challenge I'm currently solving involves designing filters that remain unobtrusive during quick post-training session checks.
The second project is the daily audio rollup. This arose from a practical frustration: automated reporting often generates large "walls of text" when summarizing fitness news or context-heavy reports. Audio proved to be a far superior format for long-form consumption during my commute, distilling complex context dumps into 10–15 minute summaries I can listen to in the car.
Speediance Dashboards: Visualizing Strength Progress
The Speediance dashboard is the visual hub of my recovery and lifting data. It currently surfaces my morning and nightly briefs, but the Speediance-specific panel is where the real data science happens. I’m building a workflow that allows me to pick a specific workout, view its strength curve over time, and overlay multiple sessions.
When I overlay two frequent workouts, like the "Warrior 1" and "Warrior 2" sessions, I can see the peaks rising slightly over several weeks. That rise is the specific signal I’m looking for—evidence of progressive overload. Conversely, dips in the curve clearly indicate sessions that weren't completed or where intensity dropped. I am currently pulling data for 1RMs across approximately 30 exercises, though I am still refining the weekly volume metrics due to some data-shaping issues. Using the Speediance "Freelift" mode is essential here; without it, the detailed per-exercise metrics tend to collapse into generic session totals.
Wearable Comparison: OnePlus Watch 2R vs. Garmin 295
In an effort to bring wearable AI to my wrist, I recently tested the OnePlus Watch 2R against my reliable Garmin 295. My primary goal was to message my coding agents directly from the watch. Unfortunately, the experience highlighted a significant gap between phone-based AI and wearable-based AI.
| Capability | OnePlus Watch 2R (Gemini) | Garmin 295 |
|---|---|---|
| Heart Rate Accuracy | Superior accuracy during daily wear tests. | Slightly less accurate than the OnePlus. |
| AI Utility | Limited; Gemini often stalls on personal queries. | N/A (Standard fitness features). |
| Biometric Privacy | Privacy mode blocks one-time passcodes and personal Q&A. | Basic notification mirroring. |
| Spelling/Reference | Excellent; fast voice-to-text spelling checks. | N/A. |
I cannot currently recommend the OnePlus Watch 2R for its Gemini integration. While the watch can access Google Workspace to find emails, it frequently refuses to answer direct questions about personal contacts or specific schedule details. The "Privacy Mode" is overly aggressive, blocking not just sensitive passcodes but also basic functional Q&A. The only reason I haven't returned it is for spelling lookups, which is a very narrow use case for a high-end smartwatch. If you want a reliable fitness tool, Garmin remains the clear winner.
Training Adjustments and Modern Tooling
A minor but important update for those tracking grappling metrics: I have officially moved my WHOOP strap to a bicep band. With a watch on each wrist for testing, the wrist-based WHOOP was no longer viable. Heart-rate data quality from the bicep has proven noticeably cleaner during dynamic mat sessions.
The overarching takeaway is that your tooling should evolve toward simplicity. Maintaining three active machines and an OpenClaw coordinator added more administrative overhead than it solved. Moving to two machines and letting autonomous agents like Codex, Claude Code, and Antigravity handle execution directly inside the codebase has dramatically sped up iteration while keeping the hardware footprint lean.
For a deeper dive into the original setup and to see the dashboard in action, you can watch the full stream here: BJJ Buddy Progress, OpenClaw basics/setup, my use cases.
Go deeper
Follow the AgentStack system from build notes to daily episodes
The AI work has its own path now: implementation reports, daily analysis, and the podcast archive.


