The engine under the desk.
Trot is a small, headless Rust daemon that reads your under-desk treadmill over Bluetooth and serves it as plain HTTP + WebSocket. Run trot daemon, point anything at it. It's the open-source core the Nowhere app is built on.
Rust · GPLv3 · runs offline · zero telemetry
One binary between your treadmill and everything else.
No GUI, no account, no cloud. Trot connects to the belt, keeps the record, and exposes it on localhost. What you build on top is up to you.
Reads the treadmill
Native LifeSpan support plus generic FTMS, straight over Bluetooth LE. No dongle, no vendor app.
Local HTTP + WebSocket
A tiny axum server on loopback: poll /api/state or subscribe to /ws for a live stream of steps, speed and distance.
Records sessions
Every walk is written to a local SQLite database with per-minute rollups and retention. Your history, on your disk.
Headless daemon
trot daemon runs quietly in the background — drop it behind systemd, launchd, or a login item and forget it.
Nothing leaves
No accounts, no analytics, no phone-home. Trot binds to 127.0.0.1 and speaks only when spoken to.
Small & portable
One dependency-light Rust binary. Builds and runs on Linux, macOS and Windows from the same source.
Which treadmills work.
Trot connects over Bluetooth Low Energy. There are two ways in.
LifeSpan™
First-class support for LifeSpan under-desk treadmills using their own Bluetooth protocol — developed and tested against a LifeSpan walking pad.
FTMS treadmills
Any treadmill that advertises the standard Bluetooth Fitness Machine Service (FTMS). A large, growing set — NordicTrack™, Peloton™, Woodway™, Technogym™ and many more.
If your machine speaks FTMS, trot scan will find it. Compatibility is best-effort and interoperability-based — we can't promise a specific model, but the standard covers most under-desk treadmills.
™ Trademarks of their respective owners. See Trademarks.
Clone, build, walk.
Trot is a Cargo project. You need a Rust toolchain and a Bluetooth adapter — that's it.
Prefer a polished UI over a terminal? Nowhere is the desktop, mobile and web app that runs on this exact engine.
A local API you can build against.
The daemon picks a free port and writes it to a handshake file; trot status/today/log and Nowhere read it automatically. These are the same endpoints the app uses — nothing is private.
| Endpoint | Returns |
|---|---|
| GET /api/state | Connection status + the live sample (steps, speed, distance, duration) + today's totals. |
| GET /api/today | Today's totals with an hourly breakdown. |
| GET /api/sessions | Session history; /api/sessions/:id for one. |
| GET /api/analytics | Aggregated trends over time. |
| GET /api/export | A full, lossless dump of your data (sessions + samples). |
| WS /ws | Live push: every new sample and session event as it happens. |
Point curl, a script, a Grafana panel, or your own front-end at it. The /api + /ws boundary is deliberately the seam between Trot and Nowhere, so anything Nowhere does, you can too.
Trot is the engine. Nowhere is the app.
Same author, clean split: an open engine anyone can run and fork, and a polished product that pays for the work. Neither hides the other.
Trot
The GPLv3 Rust daemon. Talks to the treadmill, keeps the database, serves the API. Headless, hackable, yours.
- Command line + background daemon
- Local HTTP + WebSocket API
- Fork it, script it, self-host it
Nowhere
The calm, privacy-first app built on Trot — live sessions, history, analytics and optional encrypted sync, on every platform.
- macOS, Windows, Linux, iOS, Android, Web
- One codebase, no data collection
- Buying Plus keeps the engine funded
The short answers.
Which treadmills work?+
Do I need an account or the internet?+
127.0.0.1, keeps no account, and never phones home — no telemetry, no sign-in, nothing leaves the machine.Where is my data stored?+
GET /api/export.Which platforms does it run on?+
Is there a graphical app?+
/api + /ws is in the works — but Trot never depends on it, and you're free to build your own client.How is it licensed?+
Free as in freedom. GPLv3.
Trot is released under the GNU General Public License v3. Run it, read it, change it, share it. If you ship a modified version, keep it open — that's the whole deal.