Android companion app for Hevy that adds analytics, workout planning, recovery tracking, and on-device AI coaching powered by Gemini Nano. It is an independent, unofficial companion and is not affiliated with, endorsed by, or sponsored by Hevy.
- Dashboard — recent workouts, volume trends, training load, recovery preview, sync status
- History — filtering, comparisons, PR tracking, routine diff, analysis
- Planner — calendar view, rescheduling, AI plans, routine export to Hevy
- Recovery — composite recovery score (Hevy + optional Health Connect), soreness logging, muscle heatmap
- AI Trainer — on-device coaching via ML Kit GenAI (Gemini Nano), grounded in your Hevy data.
Works via a Hevy data pipeline: workouts sync into Room,
HevyAiDataAccessorassembles profile and recent sessions into the prompt, and query-aware API calls fetch exercise history on demand. Context is refreshed on every message. - Health Connect — optional sleep, heart rate, steps, and exercise data for richer recovery and coaching
- Background sync — incremental sync with Hevy via WorkManager
FlexInsight is view-only by default so you can keep editing workouts in the Hevy app. In Settings → View-only mode, turn this off to allow marking planned workouts complete, rescheduling, and saving AI-generated routines to Hevy.
Requirements: Android 8.0+ (API 26). A Hevy Pro account with a developer API key (Settings → Developer). AI Trainer requires a physical device with Gemini Nano / AICore support (Pixel 8+, Galaxy S24+, etc.) — emulators cannot run AICore. Health Connect is optional.
Tap the badge to add FlexInsight to Obtainium, which installs it straight from this repository's releases and keeps it up to date automatically.
Download the latest APK from the Releases page and install it on your device.
- Clone the repository.
- Open in Android Studio (Ladybug or newer recommended).
- Build and run on a device or emulator:
./gradlew assembleDebug
- On first launch, complete onboarding: Hevy API key → sync → optional Health Connect → AI check.
FlexInsight asks only for what it needs. Nothing is requested until you use the related feature (except network access, which the app needs to talk to Hevy). No location, contacts, camera, microphone, or SMS permissions are used.
-
Network:
INTERNETsyncs workouts, routines, and exercise templates from the Hevy API using your API key.ACCESS_NETWORK_STATEshows when you are offline and avoids unnecessary sync attempts. -
Hevy API key: Stored locally in encrypted preferences on your device. Sent only to
https://api.hevyapp.comwhen syncing or loading workout data. FlexInsight does not operate a backend that stores your workouts; data lives in local Room cache + Hevy's servers. -
Health Connect (optional): Before Android shows the system permission sheet, the app shows an in-app list of exactly what we request and why. Health Connect data is processed on device for Recovery, Dashboard, and AI prompts — it is not uploaded to FlexInsight servers.
Access What we read or write Why Read sleep Last night's sleep duration Recovery score, training load, deload hints, AI coaching context. Read heart rate Resting heart rate samples Recovery and coaching context (not for medical diagnosis). Read steps Step count for today Daily activity context for training load. Read active calories Active calories burned today Non-gym activity alongside Hevy volume. Read exercise Exercise sessions from other apps Count cardio / non-Hevy workouts in weekly load. Write exercise Strength workout sessions Optional, only if you turn on "Write workouts to Health Connect" and view-only mode is off — copies completed Hevy sessions into your Health Connect timeline (e.g. Google Fit / Samsung Health). -
On-device AI: Gemini Nano runs locally on supported phones; chat prompts are not sent to a FlexInsight cloud service. Coaching uses synced Hevy data (and Health Connect summaries if enabled) injected into the prompt on your phone. Debug builds offer Debug AI UI stubs in Settings to click through the UI with placeholder text — not a substitute for device testing.
Requirements: JDK 17+ and the Android SDK.
./gradlew assembleDebug # build debug APK
./gradlew testDebugUnitTest # run unit tests
./gradlew lintDebug # run lint checksSee docs/HevyAPI.md for endpoint documentation used by this project.
