A lightweight, interactive fitness chatbot powered by Gemini and LangChain. Designed to offer personalized fitness tips, workout plans, and health advice right from your terminal.
Will be adding Streamlit Interface soon...
- 🤖 Conversational fitness chatbot using Google Gemini via LangChain
- 🧠 Prompt engineering for structured and helpful replies
- 🎨 Beautiful terminal UI with
RichandColorama - 🏋️ Personalized workout, nutrition, cardio & recovery plans
- 📝 Clean prompt templates for consistent output
- 🔄 Continuous chat mode until user exits
- 📦 Simple Python dependency setup with
uv
- Python 3.10+
- LangChain
- Gemini (Google Generative AI)
- Rich & Colorama (for terminal formatting)
- dotenv (for managing API keys securely)
FITNESS_CHATBOT/
├── main.py # Entry point - CLI chat loop
├── prompts.py # Prompt template creation & parser
├── pyproject.toml # Project metadata and dependencies
├── README.md # Project documentation
├── requirements.txt # List of dependencies
├── test_bot.py # (Optional) Test script
├── .gitignore # Git ignore
git clone https://github.com/SwayamAg/fitbuddy.git
cd fitbuddyuv venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
uv pip install -r requirements.txtCreate a .env file with your Gemini API key:
GOOGLE_API_KEY=your_api_key_herepython main.py🟣 You: give me a push-pull workout plan
🟣 You: what should I eat to lose fat and build muscle
🟣 You: how often should I do cardio
💪 FitBuddy 💪
Hello there! How can I help you today?
🟣 You: suggest a beginner workout
✅ FitBuddy:
🏋️ Workout Plan (Full Body, 3x/week):
- Squats
- Push-ups
- Dumbbell Rows
...langchain
langchain-google-genai
python-dotenv
rich⚡ Keep it lean! No unnecessary bloat.
- Built with ❤️ by Swayam Agarwal
- Uses LangChain and Gemini
-
💾 Save conversation history
Keep a log of your chats for future reference and progress tracking. -
📄 Export fitness plans as PDF
Download your personalized workout or nutrition plans as a neat PDF. -
🌐 Web or Streamlit interface
Use FitBuddy with a modern web UI for a richer experience. -
👤 User profile system
Track your fitness goals, preferences, and progress
Contributions, suggestions, and improvements are welcome!
If you'd like to contribute, please fork the repository and submit a pull request.
For major changes, please open an issue first to discuss what you would like to change.
- Fork the repo
- Create your feature branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/YourFeature) - Open a pull request
Thank you for helping
This project is licensed under the MIT License.