- Kotlin 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| app | ||
| gradle/wrapper | ||
| metadata | ||
| .gitignore | ||
| AGENTS.md | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| renovate.json | ||
| settings.gradle.kts | ||
Dreeve Upload
An Android app for uploading fitness activities (FIT/GPX files) to your self-hosted Dreeve instance.
The app attempts to minimize subsequent activity edits by modifying the title to reflect sport type and commute and group ride flags. Dreeve's automation rules can then be used to fill in the gaps. E.g.:
- If name contains
commutethen set "commute" flag, - If name contains
gravelthen set gear to "Canyon Grizl", - If name contains
mountain bikethen set sport type to "Mountain Bike Rides".
For FIT files, the title is written to the wkt_name field using an extremely hacky patcher. You can always skip this step and upload original file as is.
Features
- File import: pick
.fitor.gpxfiles from your device or share files directly from fitness apps - Sport type selection: choose from multiple sport types with quick-pick buttons for the most recently used ones
- Activity metadata: toggle "Commute" and "Group Ride" flags
- Auto-generated titles: titles like "Morning road bike commute" are generated from sport type, time of day, commute status, and group status — fully editable
- Dreeve API integration: uploads directly to your Dreeve server
Screenshots

Setup
1. Configure Your Dreeve Instance
You need:
- A self-hosted Dreeve instance
- An API key (Settings → Security → API access in Dreeve)
2. Build or download the App
./gradlew assembleDebug
Or download the APK from the releases page.
3. Install & Configure
- Install the APK on your Android device
- Tap the ⚙️ settings icon in the top-right
- Enter your Dreeve server URL (e.g.,
https://dreeve.yourdomain.com) - Enter your API key (starts with
drv_)
Usage
- Select file — tap "Choose FIT or GPX file" or share one from your fitness app
- Edit details (optional) — adjust sport type, commute, group ride, and title
- Upload — tap "Upload to Dreeve"
Like with other import methods, the Dreeve daemon will process the file in background (up to 5 minutes by default).
Dependencies
- Android SDK: Min 26 (Android 8.0), Target 35
- Jetpack Compose: Modern Android UI
- Retrofit: HTTP client for Dreeve API
- Material 3: UI components
Disclaimer
This app is not affiliated with Dreeve, Garmin or any other trademark holders. All trademarks are property of their respective owners.
AI
This project was developed with like a lot of LLM assistance.
License
Licensed under GPL-3.0 or later.