Gymnasia

Mobile personal training app with AI assistant

Download APK for Android
Gymnasia home screen
Gymnasia AI assistant

Description

Gymnasia is a mobile application built with React Native and Expo that works as an intelligent personal trainer. The app allows you to create and manage workout routines, track your diet and body measurements, and features two AI agents that act as a training assistant.

Both agents run entirely on the device, with no backend, so the user's data never leaves the phone, for privacy and security.

Key Features

  • Workout Routines

    Create custom routines with exercises, sets, reps and weights. Each routine can be categorized (strength, cardio, flexibility, etc.) and customized with icons. During training, a rest timer with sound alert notifies you when to continue.

  • Exercise Library

    Open-source exercise repository with AI-generated images showing correct execution, in both male and female versions. Exercises include muscle group, required equipment, difficulty level and detailed instructions. Users can also create custom exercises.

  • Conversational coach (BYOK agent)

    Built-in chat that works as a virtual personal trainer, with adapters for OpenAI, Anthropic and Google. It is BYOK (bring your own key): the user supplies the API key and it is stored on the device. The agent has 12 local tools with access to your routine context, and its system prompt is fetched remotely with an offline fallback, so the app keeps working without a connection.

  • Vision subagent and diet tracking

    Daily meal logging with calorie and macronutrient calculation (protein, carbs and fats). A vision subagent estimates macronutrients from food photos, and the app scans barcodes against OpenFoodFacts. Set personalized nutritional goals.

  • Body Measurements

    Track weight and other body measurements with historical data to visualize your progress.

Architecture

The app has no backend: both agents run entirely on the phone, so the user's data never leaves the device. The project is an npm workspace monorepo containing:

  • apps/mobile — Expo React Native app (primary surface)
  • packages/shared — Shared design tokens and TypeScript types
  • ejercicios/ — Open-source exercise repository (JSON + AI-generated images)

The mobile app uses AsyncStorage for local persistence and Expo SecureStore for API keys. Exercise images are served from the GitHub repository and cached on-device.

How both agents are built, with the architecture graph of each one, is explained in the post architecture of the Gymnasia AI agent.

Technologies

  • Mobile: React Native, Expo SDK 54, TypeScript
  • AI: OpenAI, Anthropic and Google Gemini through adapters, with a BYOK scheme
  • Nutrition data: OpenFoodFacts for barcode scanning
  • Image Generation: Generative AI for exercise illustrations
  • Build: EAS Build for Android APK generation

Source Code

The project is open source and available on GitHub.

Support

If you like the project, consider giving it a star on GitHub.

Continue reading

Last posts -->

Have you seen these projects?

Gymnasia

Gymnasia Gymnasia
Expo
React Native
TypeScript
OpenAI
Anthropic

Fitness app with two agents that run entirely on the device, with no backend, so the user's data never leaves the phone. A BYOK conversational coach with adapters for OpenAI, Anthropic and Google, 12 local tools and a remote system prompt with offline fallback, plus a vision subagent that estimates macronutrients from food photos, with barcode scanning against OpenFoodFacts.

LangGraph Deep Researcher

LangGraph Deep Researcher LangGraph Deep Researcher
Python
LangGraph
FastAPI
React
TypeScript
Docker

Multi-agent research system built with LangGraph. A supervisor breaks your question down into topics and launches search sub-agents in parallel; each one compresses its findings before handing them to a writer agent that produces the final sourced markdown report. Live streaming over WebSockets, a configurable model per role and bring-your-own API keys that are never persisted server-side.

Tau

Tau Tau
Python
LangChain

Multi-agent tutoring system for secondary school students, with one agent per subject and course material written and validated by a team of teachers. It was used with real students at a private school in Spain and at a secondary school in Colombia.

View all projects -->
>_ Available for projects

Do you have an AI project?

Let's talk.

maximofn@gmail.com

Machine Learning and AI specialist. I develop solutions with generative AI, intelligent agents and custom models.

Do you want to watch any talk?

Last talks -->

Do you want to improve with these tips?

Last tips -->

Use this locally

Hugging Face spaces allow us to run models with very simple demos, but what if the demo breaks? Or if the user deletes it? That's why I've created docker containers with some interesting spaces, to be able to use them locally, whatever happens. In fact, if you click on any project view button, it may take you to a space that doesn't work.

Flow edit

Flow edit Flow edit

FLUX.1-RealismLora

FLUX.1-RealismLora FLUX.1-RealismLora
View all containers -->
>_ Available for projects

Do you have an AI project?

Let's talk.

maximofn@gmail.com

Machine Learning and AI specialist. I develop solutions with generative AI, intelligent agents and custom models.

Do you want to train your model with these datasets?

short-jokes-dataset

HuggingFace

Dataset with jokes in English

Use: Fine-tuning text generation models for humor

231K rows 2 columns 45 MB
View on HuggingFace →

opus100

HuggingFace

Dataset with translations from English to Spanish

Use: Training English-Spanish translation models

1M rows 2 columns 210 MB
View on HuggingFace →

netflix_titles

HuggingFace

Dataset with Netflix movies and series

Use: Netflix catalog analysis and recommendation systems

8.8K rows 12 columns 3.5 MB
View on HuggingFace →
View more datasets -->