A Python implementation of the iFit custom BLE protocol for communicating with iFit fitness equipment. This library provides a client for the proprietary iFit protocol and includes FTMS (Fitness Machine Service) relay functionality to bridge iFit equipment with standard fitness apps.
- BLE communication with iFit equipment
- FTMS (Fitness Machine Service) relay functionality
- Command-line interface for device interaction
- Monitor and discovery modes
# Install with poetry
poetry install
# Install with server support
poetry install --extras server
# Install all extras
poetry install --extras all# Run the CLI
ifit --help# First time setup
./scripts/setup.sh
# Activate virtual environment
poetry shell
# Run linters and type checks
./scripts/lint.sh
# Format code
./scripts/format.sh
# Run tests
./scripts/test.shSee CONTRIBUTING.md for detailed development guidelines.
See the docs/ directory for detailed documentation:
- User Guide - Complete command reference and examples
- iFit Protocol Structure - Protocol documentation
- FTMS Documentation - FTMS relay implementation
- Activation Discovery - Advanced activation code discovery
This project builds upon the work of others in the fitness tech community:
- zwifit - For reverse engineering the iFit custom BLE protocol
- qdomyos-zwift (QZ) - For the comprehensive activation codes list
MIT