What the source did
- His girlfriend's NordicTrack Commercial 2250 has a big screen, but everything beyond basic workout controls, even streaming apps they already pay for, was locked behind an iFit subscription, with ads and a slow start.
- The screen turned out to be an Android 9 tablet. He worked with Claude Code for about a day and a half, using a CLAUDE.md file as the project's running memory.
- Claude explored the console over ADB and found iFit's motor service runs a small local server. Following the open-source QZ (qdomyos-zwift) project, it wrote a plain Java client for it.
- They built a home screen app with Netflix and Crunchyroll tiles, a floating bar with speed, incline, time and distance, a quarter-mile track panel, and on-screen Start, Pause, Stop and speed and incline buttons. Netflix now starts in about 21 seconds, down from close to a minute.
- They disabled iFit apps one at a time, checking the motor service after each. One app killed the motor service, and another attempt took half an hour to undo; each lesson went into CLAUDE.md.
- The real fix was removing iFit's lockdown and updater app for his user, which can be undone. It had been turning remote access off and re-enabling everything after every restart.
- Claude refused to work out the motor board's security handshake, seeing it as getting around an authentication check. It ran remote belt tests only with a speed cap, a stop command that runs even if the script fails, a zero-speed check, and his confirmation that nobody was near.
- He published it all as treadmill-home on GitHub, with safety notes, setup steps, lessons and an undo section.
- Heads-up: tested on one model only. The catches he lists are SD Netflix, a slow tablet, and a factory reset wiping it all; commenters add that it may void the warranty.
“paying monthly to use a screen we already own never sat right with me”— u/Beloved_Misanthrope, Reddit
Summary written by Agent Cookbook from the original post. See the original for the full context. How we source recipes
Our notes
- What it takes
- Claude Code with CLAUDE.md as running memory, a Windows PC with adb and the Android SDK on the treadmill's Wi-Fi, and QZ's client certificates. He spent about a day and a half on it; his repo now holds the build scripts, setup steps and an undo section.
- Where it breaks
- Disabling the wrong iFit app: one killed the motor service, and another attempt took half an hour to undo. iFit's lockdown app re-enables everything after each restart until it's removed. Netflix plays in SD, a factory reset can wipe it all, and the README warns the motor service is open to anyone on your Wi-Fi.
- Human checkpoint
- Claude refused to bypass the motor board's security handshake. Belt tests ran only after he confirmed nobody was near, with a speed cap and a stop that always runs; the safety key and Stop button stay the real way to stop.
- Tools involved
- Claude Code, A NordicTrack treadmill running iFit's GlassOS (he used a Commercial 2250), A Windows PC on the same Wi-Fi, with adb and the Android SDK, Client certificates from the open-source QZ (qdomyos-zwift) project
✓ Verified Source link checked and still live. Notes by Thomas, editor. How we verify
Get their template
Made and published by Beloved_Misanthrope. Start here; it is their original, not ours.
Our adapted version
Ours Our kickoff prompt, built from his post and README. His repo is the real setup. Fill in the [BRACKETS].
Approval rule
Set it up
- Read his repo's README first, especially the safety and network security sections. If your console matches his (GlassOS, Android 9), follow his setup rather than starting from scratch.
- Turn on ADB on the console as the README describes, and give the treadmill a fixed IP on a network only you control.
- Copy the client certificates from QZ, as the README explains; the repo doesn't ship them.
- Build and install the app, and set it as the home screen.
- Optionally remove the lockdown app with his script. It watches the motor service and puts the app back if the service goes down.
- Test Start and Stop with the physical buttons before and after a restart. Keep the safety key on.
Common failures
- Disabling the wrong iFit app. His README says disabling com.ifit.rivendell killed the motor service, and hiding iFit apps a certain way made the updater disable it on the next boot.
- The updater undoing your work. Until it's removed, it turns ADB off and re-enables iFit apps after every restart.
- Network exposure. The README warns iFit's motor service listens on your whole Wi-Fi with a public client certificate, so anyone on the network could start the belt.
- Expecting HD. Netflix plays in SD on this console (Widevine L3), and there's no Google Play, so apps must be sideloaded builds.
- A factory reset or an iFit update can undo it all, and it may void your warranty.
Variations
- Other GlassOS consoles may work, but he has only tested the Commercial 2250.
- Read-only: stop after the discovery step and just document what your console runs.
- Any device that locks a screen you own: start with the same read-first, reversible-only, CLAUDE.md-memory rules.
Related setups: CLAUDE.md upkeep and log-file debugging → · $600/mo cut in a Claude Code SaaS audit → · Claude Code agents that replaced paid SaaS → · Claude Code built him a video editor overnight → · Voice-control your smart TV with a Grok Bot plugin → · A kitchen iPad family dashboard → · Research, annotated plan, then implement →
Get the 10 best agent setups. Free.
Plus new recipes every week. One email, no spam.
Unsubscribe anytime. Privacy