πŸƒβ€β™‚οΈπŸ’¨

RunNerd

Your AI-Powered Running Coach & Analytics Platform

Automatically sync your Garmin runs, get personalized AI insights, and track your progress through an intelligent dashboard and Telegram bot.

View Dashboard β†’

Transform Your Running Data Into Actionable Insights

RunNerd automatically syncs your Garmin activities and uses advanced AI to analyze your performance, provide coaching feedback, and help you reach your goals faster.

πŸ“Š

Automatic Sync

Seamlessly connects to your Garmin Connect account to pull all your running activities, including detailed metrics like pace, heart rate, cadence, and elevation data.

πŸ€–

AI-Powered Analysis

Claude AI analyzes every run with context from your training history, providing personalized insights about pacing strategy, heart rate zones, and performance trends.

🎧

Audio Coaching

Receive post-run audio summaries that explain your performance in natural language, making it easy to understand your data while you stretch or cool down.

πŸ“ˆ

Progress Tracking

Monitor improvements over time with weekly summaries, trend analysis, and goal tracking that shows exactly how you're progressing toward your targets.

πŸ’“

Heart Rate Zones

Understand your training load with detailed heart rate zone analysis, ensuring you're training at the right intensity for your goals.

πŸ—ΊοΈ

Elevation Analysis

Automatically detect and categorize hills in your routes, tracking climbing metrics and understanding how terrain affects your performance.

How It Works

Get started in minutes with these simple steps

1

Connect Garmin

Add your Garmin Connect credentials to the environment file. RunNerd will securely sync your activities automatically.

2

Configure Settings

Set your preferences including units (imperial/metric), age, weight, and heart rate zones for personalized analysis.

3

Setup Telegram Bot

Connect the Telegram bot with your token and chat ID to receive instant notifications and interact on the go.

4

Start Running!

Complete your runs as normal. RunNerd automatically syncs and analyzes each activity, sending you insights via Telegram and the web portal.

Two Ways To Access Your Data

Choose the platform that fits your workflow - or use both!

πŸ’» Web Portal

A comprehensive dashboard for deep analysis and visualization of your running data.

  • Interactive activity list with detailed metrics
  • Visual trend charts for pace, distance, and heart rate
  • Elevation profiles with automatic hill detection
  • AI chat interface for asking custom questions
  • Weekly and monthly summary reports
  • Goal tracking and progress visualization
  • Export data for further analysis
Open Dashboard

πŸ“± Telegram Bot

Quick access to insights and notifications wherever you are, right in your messaging app.

  • Instant notifications when new runs are synced
  • Post-run AI analysis with audio coaching
  • /rundone command to manually trigger sync
  • Ask questions about your training in natural language
  • Quick stats with /stats, /summary, /progress commands
  • Heart rate zone analysis with /zones commands
  • View active goals and track completion
Popular Commands:
/rundone /latest /stats /zones

System Architecture & Data Flow

Understanding how RunNerd processes your running data

Data Collection β†’ AI Processing β†’ Delivery

Step 1: Data Collection

πŸƒ Garmin Watch

Complete your run

β†’

☁️ Garmin Connect

Auto-sync to cloud

β†’

πŸ”„ RunNerd Sync

Poll for new activities

↓

Step 2: Data Storage & Processing

πŸ—„οΈ PostgreSQL

Store activity data

β†’

πŸ“ Python Analysis

Calculate metrics, zones, elevation

↓

Step 3: AI Analysis

πŸ€– Claude AI

Analyze performance with context

β†’

πŸŽ™οΈ ElevenLabs

Generate audio coaching

↓

Step 4: Delivery

πŸ“± Telegram Bot

Instant notifications + audio

β†’

πŸ’» Web Dashboard

Deep analysis + visualizations

Technology Stack

Backend Python, Flask, SQLAlchemy
Database PostgreSQL
AI Claude (Anthropic API)
Audio ElevenLabs TTS
Integrations Garmin Connect, Telegram Bot API
Frontend Vanilla JS, Chart.js