Netflix and Crunchyroll on a NordicTrack Commercial 2250, without... - Vibeus
Netflix and Crunchyroll on a NordicTrack Commercial 2250, without an iFit login, ads or membership nags — built with Claude Code in about a day and a half.
u/Beloved_Misanthrope’s girlfriend bought the treadmill a couple of years ago for its big streaming screen. In their experience, everything beyond basic workout controls was tied to iFit, including access to streaming services they already paid for; even basic use meant waiting for iFit and its ads. Underneath was an Android 9 tablet.
The replacement uses CLAUDE.md as the project’s running memory. It has big Netflix and Crunchyroll tiles, a floating bar over the video with speed, incline, time and distance, and a quarter-mile track panel showing laps and pace. On-screen Start, Pause, Stop, speed and incline controls sit alongside the still-working physical buttons. In this setup, Netflix starts in about 21 seconds instead of close to a minute.
Claude’s discovery over ADB found a small server in iFit’s motor service. The client was written from scratch in plain Java, following the approach of the open-source QZ (qdomyos-zwift) project. The creator explicitly credits QZ: the project would not have happened without that work.
Disabling iFit apps one at a time, with a motor-service health check after each, was not trouble-free. One disabled app killed the motor service; another attempt took half an hour to undo. Each failure became a lesson in CLAUDE.md for the next session.
For this owner, the fix was reversibly removing iFit’s lockdown/updater app from their Android user. It had been turning remote access off after restarts, re-enabling disabled apps and consuming a large share of the CPU. Without it, the console boots unlocked and the tablet has more breathing room.
One catch in the logs: a test helper named Rd was being interpreted as PowerShell’s Remove-Item alias. Nothing was deleted.
Opus 5.5 refused to reverse-engineer the motor board’s security handshake from iFit’s code, treating that as bypassing authentication. The creator accepted that boundary and kept iFit’s motor service instead of making a direct motor driver.
Remote belt-start tests were initially refused too. The owner argued that an empty treadmill in the basement, with power available to unplug, was safer than standing on it if something went wrong. The eventual tests required confirmation that nobody was nearby, a speed cap, a stop command that runs even if the script fails, and a final check that speed reads zero.
The physical safety key and the console’s Stop button remained the real emergency stop. The overlay was never trusted for that.
There are limits: Netflix is SD because the console has Widevine L3, the tablet stays slow, and a factory reset could wipe the changes. The creator’s reason for doing it was simple: the treadmill, screen and motor were already paid for; a monthly fee just to use that screen never sat right.
The shared repository is Crawler757/treadmill-home. Its README lists the tested setup as the Commercial 2250 with GlassOS 2026.06.26 and Android 9; other consoles have not been tested, and older pre-GlassOS consoles will not work. The README also warns about warranty, updates and network exposure; this is one owner’s working setup, not a claim of universal compatibility.