Every e-bike app shows you the bike's numbers. OpenLevo shows the conversation — your legs in green, the motor in blue, negotiating over a shared budget of amber watt-hours. It connects straight to your Levo over Bluetooth and answers one honest question at every moment of the ride.
OpenLevo is built as a ride day. Each surface exists to answer exactly one thing.
The Trailhead: connection, charge, verified config, and how far today's battery actually goes — per assist mode, on your loop, with honest error bars.
See the Trailhead →The Studio: tuning profiles named for how they ride. Every change shown before it happens, applied only at a standstill, verified by reading it back from the motor.
See the Studio →The Cockpit: watt-hours as the hero, the live rider-vs-motor duet, and "one more lap?" recomputed as you ride. Reads in under a second, gloved, at arm's length.
See the Cockpit →The Ride Story: your share of the work, climb by climb — plus the Garage, a long-term health and ownership record that's worth money at resale.
See the Story →Three rules that never bend, on every screen, chart, and export.
The Cockpit, live. Wh as the hero — the number range math actually runs on.
The refusals are part of the product. Read the full list — and why — on the Open & honest page.
No slider, no easter egg, no hidden gesture. Derestriction is illegal on trails, voids your warranty, cooks the motor, and gets riding access revoked for everyone. No code path in the app can write that parameter.
The app never writes to the motor while you're moving and never claims success it didn't verify. Every change: at rest, shown before → after, confirmed, read back.
A range projection is an estimate and always looks like one. A disconnected bike shows stale values marked stale — never a number pretending to be live.
Pairing, riding, and recording work with zero network. Your rides are files on your phone that you can export — not rows in someone else's database.