# GymMane: an offline Android gym log with no account and no internet permission

> GymMane is a Flutter Android app that logs sets from a tappable body map and stores everything on the device. The repository is public, GPL-3.0 licensed, and the last push was on 2026-09-13.

**InlitX/GymMane** —  Offline gym log for Android. No account, no ads, no internet.

- Repository: https://github.com/InlitX/GymMane
- Website: https://inlitx.github.io/GymMane/
- Stars: 716 · Forks: 84
- Language: Dart
- License: GPL-3.0
- Published: 2026-09-17 · Updated: 2026-09-17 · Language: en
- Canonical page: https://hysenlabs.com/projects/inlitx-gymmane

## What GymMane replaces on the gym floor

A paper notebook works until you want last month's numbers next to today's. A hosted workout app gives you that, at the cost of an account, a network call, and a privacy policy you did not write. GymMane sits between the two. The README describes it as an open-source strength log built for the gym floor: you tap the muscles you want to train, log reps and weight set by set, and the rest timer starts itself. The repository topics list android, dart, flutter, fitness, workout-tracker and f-droid, so the intended audience is Android users who install from an app store that does not require a Google account.

The privacy claim is the differentiator, and it is stated as a technical fact rather than a policy: the README says the app has no internet permission and never checks for updates itself. On Android that is a manifest-level restriction, not a setting you can toggle. A workout log that cannot open a socket cannot upload your training history, and it also cannot sync it. That trade is the whole product.

The README also advertises a library of 500+ exercises with animations, which matters more than it sounds. A log is only useful if the exercise you actually did is in the list, and a thin library is the usual reason people abandon these apps in week two.

## How the body map, sessions and progress screens fit together

The flow visible in the README and screenshots is a loop rather than a form. The Train screen presents a body map; tapping a muscle leads to a session for that area. Inside a session you tick sets as you complete them, and the README states the rest timer rings itself once a set is ticked. Progress is computed from your own sets, not from a shared database or a coach's template.

Around that loop sit the screens listed in the screenshot set: Today, History, Library, Routines, Settings, Journal, Places, Muscle timeline and Profile. Routines imply reusable templates, History implies a per-session record, Places implies you can tag where a session happened, and the muscle timeline implies per-muscle volume over time. None of this requires a server, which is why the offline constraint does not reduce the feature set in the way it would for a social app.

The stack is Flutter and Dart, with the standard repository layout for that toolchain: lib/, test/, assets/, android/, l10n.yaml for localization and crowdin.yml for translation management. l10n.yaml is the concrete signal that the app is built with Flutter's localization tooling rather than hardcoded strings, and the README links translated READMEs in Spanish, Italian and Simplified Chinese, with a TRANSLATING.md at the repository root. A Dart codebase also means you can read the storage layer yourself and confirm what the app writes and where, which is not true of a closed binary.

## Installing GymMane on Android from F-Droid or an APK

The README lists four distribution channels: GitHub releases, F-Droid, IzzyOnDroid and Obtainium. The GitHub row gives the one piece of install advice that matters: grab the arm64-v8a APK if unsure. That is the architecture almost every phone sold in the last several years uses, and picking the wrong APK is the most common way a sideload fails.

The package name is com.gymmane.app, which is what you search for on F-Droid and what Obtainium needs. If you use Obtainium, the README says to paste the repository URL and it watches releases for you:

```bash
https://github.com/InlitX/GymMane
```

Enter that in Obtainium's add-app field. It reads the GitHub releases feed for the project and offers new versions when they appear. The README notes that F-Droid updates land a few days after each release, so a person on F-Droid is always slightly behind the GitHub APK. That lag is the price of the store's build and signing process.

There is nothing to configure on first launch beyond the app itself, because there is no account step. If you build from source instead of installing a release, the toolchain is Flutter:

```bash
flutter pub get
flutter build apk --release
```

Those two commands follow from the pubspec.yaml and android/ directories in the repository. The build output lands in the android build directory and can be installed with adb, though the README does not spell out that step. A source build is also the only way to verify that the APK you run matches the code you read, since release APKs are signed by the maintainer.

## Where GymMane stops being the right tool

The strongest limitation is also the headline feature: no internet permission means no sync, no cloud backup and no multi-device access. If your phone is lost, stolen or factory reset, the training history goes with it unless you have a device-level backup that captures app data. The README does not document an export format, a restore path or a rollback procedure for a bad release, and it does not describe what happens to the local database when you install an older version over a newer one. That silence is worth taking seriously before you commit a year of training to it.

The platform scope is narrow. Android 7.0+ is the stated floor and there is no iOS build in the repository layout. Anyone training with an iPhone, or with a mix of devices, is out.

There is also the usual cost of a small project. The release history shows v1.0.0 on 2026-08-29, v1.1.0 on 2026-09-05 and v1.2.0 on 2026-09-13, with the last push on 2026-09-13. Three releases in about two weeks is a fast early cadence, and it means the storage format has had little time to settle. A log app is judged over months, and the version history is the only evidence available about how the project behaves over that horizon. The README does not state a data migration policy between versions, so reading each release note before upgrading is the only defensive move the documentation supports.

## How GymMane differs from a hosted tracker like Strong or Hevy

The obvious alternative is a mainstream hosted tracker such as Strong or Hevy. The difference is not the feature list, it is where the data lives and what the app is allowed to do with it. Those apps run an account system, sync your history to their servers, and can push a workout to a second device or a web dashboard. GymMane cannot do any of that, by design, because the README states it has no internet permission. You give up cross-device continuity and server-side backup; you get a log that works in a basement gym with no signal and cannot be subpoenaed, sold or leaked by a third party.

A second comparison is a plain spreadsheet or a notes app. That approach is fully offline too, and it is free. What it lacks is the body map, the automatic rest timer and the per-muscle timeline, which are exactly the parts of GymMane that the README leads with. If your routine is three lifts repeated forever, a note file is genuinely enough and GymMane adds little. If you rotate through many exercises across muscle groups, the structure pays for itself.

The F-Droid distribution is itself a difference. It means the app is built from source by a third party and published in a catalogue that does not require a Google account. For someone who has removed Play Services, GymMane is installable in a way a hosted competitor is not.

## Licence, maintenance and what an upgrade costs you

The code is GPL-3.0 and the README states the art is CC BY-SA 4.0. The split matters if you want to reuse assets: the exercise animations and screenshots are not covered by the GPL grant, so shipping them in your own app requires compliance with the Creative Commons terms, including attribution and share-alike. Forking the Dart code and publishing a modified APK is permitted under GPL-3.0, but the fork must carry the same licence and you must make the source available. This is a description of the stated terms, not legal advice; if you plan to redistribute, read the LICENSE file at the repository root.

Maintenance looks current by the only measure available: the last push was on 2026-09-13, four days before this article, and the repository is not archived. Three tagged releases in the preceding two weeks indicate an active early phase. That does not tell you what happens in month six, and the README does not publish a support commitment or a deprecation policy.

Upgrade cost is the practical question for a log app, because the data outlives the code. The documentation gives no export format, no documented downgrade path, and no detail on the README section titled Coming from another app beyond its existence, which suggests import is supported but does not show the format. Verify that before you migrate a history you care about.

## Conclusion

GymMane suits lifters on Android 7.0 or newer who want a local log and are willing to read the release notes before installing. It is the wrong tool if you train on iPhone, expect the app to sync between phones, or want a hosted account you can sign into from any device, because the README states the app has no internet permission. Before adopting it, open the GitHub releases page, confirm the arm64-v8a APK matches your phone, and read the v1.2.0 notes for any migration step.

## FAQ

### Does GymMane need an internet connection to work?

No. The README states the app has no internet permission and never checks for updates itself, so it works entirely offline. Updates have to come from the store or APK channel you installed it from, such as F-Droid or Obtainium.

### Where do I download GymMane for Android?

The README lists GitHub releases, F-Droid, IzzyOnDroid and Obtainium. For a direct download it says to grab the arm64-v8a APK if unsure, and the package name is com.gymmane.app.

### Which Android versions does GymMane support?

The README badges Android 7.0+ as the supported floor. There is no iOS target in the repository layout, which contains android/, lib/, assets/ and the Flutter project files.

## Sources

- [InlitX/GymMane on GitHub](https://github.com/InlitX/GymMane)
- [License: GPL-3.0](https://github.com/InlitX/GymMane/blob/main/LICENSE)
- [Project website](https://inlitx.github.io/GymMane/)
- [README](https://github.com/InlitX/GymMane/blob/main/README.md)
- [Releases](https://github.com/InlitX/GymMane/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/inlitx-gymmane
