An adaptive, local-first workout app that builds today's session from your recovery, equipment, history, and goal—then adapts while you train.
- Adaptive generation — sessions are built from movement-pattern slots, your history, curated picks, and available equipment.
- The muscle map is the fatigue model — accumulated work appears in-session, at the session summary, and in weekly history.
- A player, not a form — one-tap logging, warm-ups, plate math, set types, rest control, substitutions, and focused exercise navigation.
- Programs that respond — goal-driven plans adjust for progress, missed sessions, deloads, and available equipment.
- Your training, kept — workout data lives locally and can optionally sync through a signed-in backup account or iCloud on iOS.
| Workout preview | Today | Session complete | History |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
npm install
LANG=en_US.UTF-8 npx expo run:ios
npx jest
npx tsc --noEmitFlow uses Expo SDK 57, React Native 0.86, Expo Router, Zustand, Drizzle, and Expo SQLite. The decision engine in src/engine/ is pure TypeScript and Jest-tested.
Optional AI voice requires EXPO_PUBLIC_GEMINI_KEY, documented in .env.example. Never commit a populated .env file. A public consumer build must not ship a provider key: EXPO_PUBLIC_* values are embedded in the app bundle, so route AI requests through a server before production distribution.
- Workouts and preferences are stored on-device by default.
- A signed-in account stores a full backup payload in Supabase; iCloud backup is available on iOS.
- Apple Health is opt-in. When enabled, Flow reads sleep and may read/write strength workouts as described in the privacy draft.
- Rest notifications are requested only when Flow needs to notify you that a rest timer finished.
See architecture, privacy, contributing, and security reporting.
The source release pack and store-listing materials live in marketing/. Exercise-media rights notice: the current 137 MB exercise image/GIF set is third-party material with unresolved redistribution rights and is explicitly outside the MIT license. Its presence in this repository is not a grant of any license or permission. Before redistributing, commercializing, or shipping it in a store build, obtain the required rights or remove/replace the media. See third-party asset status and the release checklist.
The iOS source configuration is validated for the current bundle identifier. Android package identity and adaptive-icon configuration are included, but the Android app and Play submissions still need device/build verification.
The Flow source code is licensed under the MIT License. Third-party assets and dependencies retain their own terms; the bundled exercise media is excluded until its redistribution rights are resolved.




