Metadata-Version: 2.4
Name: ifit
Version: 0.1.0b1
Summary: BLE client and FTMS relay for iFit equipment
License-Expression: MIT
Keywords: bluetooth,ble,ifit,ftms,fitness
Author: Adrian Panella
Author-email: ianchi74@outlook.com
Maintainer: Adrian Panella
Maintainer-email: ianchi74@outlook.com
Requires-Python: >=3.11,<3.12
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Hardware :: Universal Serial Bus (USB) :: Wireless Controller
Provides-Extra: all
Provides-Extra: server
Requires-Dist: bleak (>=2.1.1,<3.0.0)
Requires-Dist: bless (>=0.3.0,<0.4.0) ; (sys_platform == "linux") and (extra == "server" or extra == "all")
Requires-Dist: pydantic (>=2.0.0,<3.0.0)
Project-URL: Documentation, https://github.com/ianchi/ifit
Project-URL: Homepage, https://github.com/ianchi/ifit
Project-URL: Repository, https://github.com/ianchi/ifit.git
Description-Content-Type: text/markdown

# iFit BLE Client and FTMS Relay

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.

## Features

- BLE communication with iFit equipment
- FTMS (Fitness Machine Service) relay functionality
- Command-line interface for device interaction
- Monitor and discovery modes

## Installation

```bash
# Install with poetry
poetry install

# Install with server support
poetry install --extras server

# Install all extras
poetry install --extras all
```

## Usage

```bash
# Run the CLI
ifit --help
```

## Development

```bash
# 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.sh
```

See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed development guidelines.

## Documentation

See the [docs/](docs/) directory for detailed documentation:

- [User Guide](docs/USER_GUIDE.md) - Complete command reference and examples
- [iFit Protocol Structure](docs/IFIT_PROTOCOL.md) - Protocol documentation
- [FTMS Documentation](docs/FTMS.md) - FTMS relay implementation
- [Activation Discovery](docs/ACTIVATION_DISCOVERY.md) - Advanced activation code discovery

## Acknowledgments

This project builds upon the work of others in the fitness tech community:

- [zwifit](https://github.com/dawsontoth/zwifit) - For reverse engineering the iFit custom BLE protocol
- [qdomyos-zwift (QZ)](https://github.com/cagnulein/qdomyos-zwift) - For the comprehensive activation codes list

## License

MIT

