Bati: Fitness RPG
Turn workouts into quests, boss fights and a village built by your training.
- Developer
- Guillaume Pouyat
- License
- MIT
- Package
com.guiforge.bati- Category
- Role-Playing Game, Sports & Health
- Latest version
- 2.13.3 · Nov 1, 2026
- Minimum Android
- Android 7.0
Screenshots
Description
Train like a hero, build like a king.
Bati turns strength training into a dark-fantasy RPG. A workout is a quest. Reps land as damage on a boss. The muscles you actually work raise the buildings of a village that grows out of what you lifted, not out of what you bought.
SPORT FIRST, RPG SECOND
The training logic leads and the game amplifies it. Nothing decorative gets between you and your next set: large tap targets, high-contrast text, and a screen designed for one hand in a noisy gym.
WHAT YOU GET
• Quests: guided sessions with targets that adapt to your level
• Adventures: multi-session campaigns with a story between steps
• Boss fights: reps become damage; weaknesses and criticals make the numbers mean something
• Outings: walk, run or ride; the ground you cover raises the road out of the village
• A village: buildings level up from the volume you actually logged
• Oaths: pick one goal and let the app hold you to it
• Reminders: on the days you choose, scheduled on the phone, no server
• Backups: as a file, or automatic into a folder you pick, encrypted if you ask
• Sync: one hero across several phones
• Six languages: English, French, German, Spanish, Russian, Chinese
• A journal: history, records, your flame, muscle balance
YOUR TRAINING STAYS ON YOUR PHONE
No account. No sign-up. No server of ours. No analytics, no ads, no tracking of any kind. Your sessions, your records and the GPS trace of an outing live in a database on your device. Your phone's own system backup can carry it, like any app's data, and you can turn that off. Uninstalling the app deletes it from the phone, not the copies you made elsewhere.
Three features use the network, each behind its own switch in Settings, and all three start off:
• The map behind an outing's route. The phone asks OpenFreeMap (OpenStreetMap data, from tiles.openfreemap.org) for tiles, the square images a map is made of, around where you go. That tells the host roughly where you were, with your IP address and the time. Off, the route is drawn on a plain background.
• Check for updates. Once a day, the app asks api.github.com whether a newer version exists. No identifier is sent, nothing is downloaded.
• Device sync. Your history, encrypted on the phone (AES-256-GCM), goes to a WebDAV or Nextcloud server you choose, which cannot read it. Or into a folder that Syncthing keeps in step, and Bati makes no request at all.
With all three off, the app makes no network request. Only two files in the code may make one from JavaScript, and a lint rule rejects any other before it ships.
Location is read only while an outing is running, by a GPS module written for this app against Android's own location service. No Google Play Services, no third-party SDK, nothing that phones home.
BODYWEIGHT FIRST
The exercise catalogue is built around what you can do with no equipment, and adapts if you own some. Warm-ups are dynamic and scaled to the session in front of you, because a five-minute warm-up before a six-minute workout is a warm-up nobody does twice.
NOT A MEDICAL DEVICE
Bati is a training app. It is not a medical device and does not diagnose, treat or prevent any condition. If you have an injury, a health condition or doubts about exercising, talk to a doctor before you start.
Open source: https://github.com/Guiforge/bati
Bati turns strength training into a dark-fantasy RPG. A workout is a quest. Reps land as damage on a boss. The muscles you actually work raise the buildings of a village that grows out of what you lifted, not out of what you bought.
SPORT FIRST, RPG SECOND
The training logic leads and the game amplifies it. Nothing decorative gets between you and your next set: large tap targets, high-contrast text, and a screen designed for one hand in a noisy gym.
WHAT YOU GET
• Quests: guided sessions with targets that adapt to your level
• Adventures: multi-session campaigns with a story between steps
• Boss fights: reps become damage; weaknesses and criticals make the numbers mean something
• Outings: walk, run or ride; the ground you cover raises the road out of the village
• A village: buildings level up from the volume you actually logged
• Oaths: pick one goal and let the app hold you to it
• Reminders: on the days you choose, scheduled on the phone, no server
• Backups: as a file, or automatic into a folder you pick, encrypted if you ask
• Sync: one hero across several phones
• Six languages: English, French, German, Spanish, Russian, Chinese
• A journal: history, records, your flame, muscle balance
YOUR TRAINING STAYS ON YOUR PHONE
No account. No sign-up. No server of ours. No analytics, no ads, no tracking of any kind. Your sessions, your records and the GPS trace of an outing live in a database on your device. Your phone's own system backup can carry it, like any app's data, and you can turn that off. Uninstalling the app deletes it from the phone, not the copies you made elsewhere.
Three features use the network, each behind its own switch in Settings, and all three start off:
• The map behind an outing's route. The phone asks OpenFreeMap (OpenStreetMap data, from tiles.openfreemap.org) for tiles, the square images a map is made of, around where you go. That tells the host roughly where you were, with your IP address and the time. Off, the route is drawn on a plain background.
• Check for updates. Once a day, the app asks api.github.com whether a newer version exists. No identifier is sent, nothing is downloaded.
• Device sync. Your history, encrypted on the phone (AES-256-GCM), goes to a WebDAV or Nextcloud server you choose, which cannot read it. Or into a folder that Syncthing keeps in step, and Bati makes no request at all.
With all three off, the app makes no network request. Only two files in the code may make one from JavaScript, and a lint rule rejects any other before it ships.
Location is read only while an outing is running, by a GPS module written for this app against Android's own location service. No Google Play Services, no third-party SDK, nothing that phones home.
BODYWEIGHT FIRST
The exercise catalogue is built around what you can do with no equipment, and adapts if you own some. Warm-ups are dynamic and scaled to the session in front of you, because a five-minute warm-up before a six-minute workout is a warm-up nobody does twice.
NOT A MEDICAL DEVICE
Bati is a training app. It is not a medical device and does not diagnose, treat or prevent any condition. If you have an injury, a health condition or doubts about exercising, talk to a doctor before you start.
Open source: https://github.com/Guiforge/bati
All versions
| Version | Released | Minimum Android | Size |
|---|---|---|---|
| 2.13.3 | Nov 1, 2026 | Android 7.0 | 54 MB |
| 2.13.2 | Oct 31, 2026 | Android 7.0 | 53.8 MB |
| 2.13.1 | Oct 27, 2026 | Android 7.0 | 52.8 MB |
| 2.13.0 | Oct 25, 2026 | Android 7.0 | 56.4 MB |
| 2.12.3 | Oct 18, 2026 | Android 7.0 | 55.4 MB |
| 2.12.2 | Oct 15, 2026 | Android 7.0 | 55.3 MB |
| 2.11.0 | Oct 14, 2026 | Android 7.0 | 54.4 MB |
| 2.9.2 | Oct 12, 2026 | Android 7.0 | 54.1 MB |
| 2.8.0 | Oct 3, 2026 | Android 7.0 | 54.1 MB |
| 2.6.0 | Sep 27, 2026 | Android 7.0 | 53.5 MB |
| 2.5.3 | Sep 21, 2026 | Android 7.0 | 53.3 MB |
| 2.5.2 | Sep 19, 2026 | Android 7.0 | 53.3 MB |
| 2.4.0 | Sep 17, 2026 | Android 7.0 | 52.6 MB |
| 2.3.2 | Sep 16, 2026 | Android 7.0 | 52.2 MB |
| 2.3.1 | Sep 15, 2026 | Android 7.0 | 52.2 MB |
| 2.3.0 | Sep 14, 2026 | Android 7.0 | 52.2 MB |
| 2.1.3 | Sep 12, 2026 | Android 7.0 | 52.1 MB |
| 2.1.2 | Sep 11, 2026 | Android 7.0 | 52.1 MB |
| 2.1.0 | Sep 7, 2026 | Android 7.0 | 48.1 MB |
| 2.0.0 | Sep 5, 2026 | Android 7.0 | 48 MB |
| 1.15.0 | Sep 2, 2026 | Android 7.0 | 46.1 MB |
| 1.14.0 | Aug 30, 2026 | Android 7.0 | 46.1 MB |
| 1.13.0 | Aug 27, 2026 | Android 7.0 | 67.2 MB |
| 1.12.1 | Aug 27, 2026 | Android 7.0 | 67.1 MB |
| 1.12.0 | Aug 26, 2026 | Android 7.0 | 67.1 MB |
| 1.11.0 | Aug 23, 2026 | Android 7.0 | 61.8 MB |
| 1.9.0 | Aug 21, 2026 | Android 7.0 | 59.9 MB |
How to install an older version of an Android app · How to install an APK file on Android
From the developer (GitHub)
APK files published by the developer on GitHub. They are signed by the developer and may not install over the other builds on this page (different signature). Links open github.com.
Similar apps
-
openScale
Weight and body metrics tracker, with support for Bluetooth scales
-
Food You - Calorie Tracker & Food Diary
Track your calories with Material You aesthetic
-
OpenTracks (Non-reproducible)
A sport tracker buddy that respects your privacy.
-
OpenTracks (Reproducible build)
A sport tracker buddy that respects your privacy.
-
OpenBeautyFacts
Look up cosmetic
-
Open Pet Food Facts
Look up pet food ingredients, allergens, nutrition facts
-
Fast N Fitness
Track fitness workouts
-
Andor's Trail
Quest-driven RPG