Recipes / Claude Code use cases
Claude CodeFull setupPersonal ops

No iFit sub: Claude Code rebuilt his treadmill screen

His treadmill's screen is an Android 9 tablet that locked even streaming apps behind iFit. In about a day and a half with Claude Code he built his own home screen with Netflix and Crunchyroll, a live stats bar and on-screen controls, with no iFit login, ads or membership, and published it as an open-source repo.

From u/Beloved_Misanthrope on Reddit · Nov 2026

Setup timeAbout a day and a half with Claude Code, he says
CostFree and open source (MIT); you need a PC, the Android SDK and the treadmill you already own
RunsWhen a device you own locks its own screen behind a subscription
NeedsClaude 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
Last updated2026-11-02

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].

We're replacing the iFit home screen on my NordicTrack treadmill console with our own, without touching the motor. Use CLAUDE.md as the running memory for this project: record what you learn and every mistake, and read it at the start of each session. GROUND RULES - Work over ADB only. Start read-only: list packages, services and open ports, and tell me what you find before changing anything. - The motor is driven only through iFit's own motor service, the way the open-source QZ (qdomyos-zwift) project does it. Don't try to bypass any authentication or security check. - Every change must be reversible. Before each one, write the exact undo command into CLAUDE.md. - Disable iFit apps one at a time, and check the motor service still answers after each. If it doesn't, undo at once. BELT SAFETY - Never start the belt without my explicit OK for that test, and my confirmation that nobody is on or near the treadmill. - Every belt test has a speed cap, a stop command that runs even if the script fails, and a final check that speed reads zero. - The safety key and the console's Stop button are the real way to stop. Our app is never trusted with that. WHAT WE'RE BUILDING - A home screen with tiles for my streaming apps, a floating bar with speed, incline, time and distance, and on-screen Start, Pause, Stop and speed and incline buttons. NEVER - Never factory-reset, flash firmware, or uninstall a system app without a tested undo and my yes. - Sending, buying, posting and deleting always need my yes.

Approval rule

🛡
Claude refused to get around the motor board's security handshake and only ran remote belt tests with a speed cap, a guaranteed stop and his confirmation that nobody was near. The safety key and Stop button stay the real way to stop. Sending, buying, posting, and deleting always need a human.

Set it up

  1. 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.
  2. Turn on ADB on the console as the README describes, and give the treadmill a fixed IP on a network only you control.
  3. Copy the client certificates from QZ, as the README explains; the repo doesn't ship them.
  4. Build and install the app, and set it as the home screen.
  5. Optionally remove the lockdown app with his script. It watches the motor service and puts the app back if the service goes down.
  6. 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

Related recipes

Same job: Personal ops

Also uses Claude Code

More Claude Code recipes

In these guides: More Claude Code use cases → · AI agents that save you money →

Get their template ↗