# bleak

Bleak is an acronym for Bluetooth Low Energy platform Agnostic Klient.

- Free software: MIT license

- Documentation: https://bleak.readthedocs.io.

Bleak is a GATT client software, capable of connecting to BLE devices acting as GATT servers. It is designed to provide a asynchronous, cross-platform Python API to connect and communicate with e.g. sensors.

## Operating System Support

Bleak aims to work on most major operating systems via platform-specific backends.

### Tier 1 support

The following operating systems are supported and tested by the maintainers:

- Linux distributions with BlueZ >= 5.55

- Mac support via Core Bluetooth API, from at least macOS version 10.15

- Windows 10, version 16299 (Fall Creators Update) or greater

### Tier 2 support

The following operating systems are supported by the community, but not actively tested by the maintainers:

- Android via Python4Android.

### 3rd party backends

The following backends are implemented and maintained by 3rd parties:

- Bumble (a full Bluetooth stack implemented in Python) at https://github.com/vChavezB/bleak-bumble/.

- ESPHome Bluetooth Proxy at https://github.com/Bluetooth-Devices/bleak-esphome.

- Pythonista on iOS at https://github.com/o-murphy/bleak-pythonista.

## Features

- Scan for devices advertising over BLE.

- Get name, service uuids, service data, manufacturer-specific data, transmit power and RSSI from advertising packets.

- Connect to BLE peripherals.

- Read and write GATT characteristics and descriptors.

- Subscribe to notifications/indications from characteristics.

- Initiate pairing/bonding with devices (platform dependent).

Contents:

- Installation
  - Stable release
  - Develop branch
- Usage
- API reference
  - BleakScanner class
  - BleakClient class
  - Args modules
  - Class representing BLE devices
  - GATT objects
  - Exceptions
  - Utilities
- Backend implementations
  - Windows backend
  - Linux backend
  - macOS backend
  - Android backend
  - Pythonista iOS app backend
  - Backend selection
  - Shared Backend API
- Troubleshooting
  - Common Mistakes
  - Linux Bugs
  - macOS Bugs
  - Windows Bugs
  - Enable Logging
  - Connecting to multiple devices at the same time
  - Capture Bluetooth Traffic
  - Handling OS Caching of BLE Device Services
- Contributing
  - Types of Contributions
  - Get Started!
  - Pull Request Guidelines
- Credits
  - Development Lead
  - Development Team / Collaborators
  - Contributors
  - Sponsors
- Changelog
  - Unreleased
  - 2.1.1 (2025-12-31)
  - 2.1.0 (2025-12-28)
  - 2.0.0 (2025-11-22)
  - 1.1.1 (2025-09-07)
  - 1.1.0 (2025-08-10)
  - 1.0.1 (2025-06-30)
  - 1.0.0 (2025-06-28)
  - 0.22.3 (2024-10-05)
  - 0.22.2 (2024-06-01)
  - 0.22.1 (2024-05-07)
  - 0.22.0 (2024-05-04)
  - 0.21.1 (2023-09-08)
  - 0.21.0 (2023-09-02)
  - 0.20.2 (2023-04-19)
  - 0.20.1 (2023-03-24)
  - 0.20.0 (2023-03-17)
  - 0.19.5 (2022-11-19)
  - 0.19.4 (2022-11-06)
  - 0.19.3 (2022-11-06)
  - 0.19.2 (2022-11-06)
  - 0.19.1 (2022-10-29)
  - 0.19.0 (2022-10-13)
  - 0.18.1 (2022-09-25)
  - 0.18.0 (2022-09-23)
  - 0.17.0 (2022-09-12)
  - 0.16.0 (2022-08-31)
  - 0.15.1 (2022-08-03)
  - 0.15.0 (2022-07-29)
  - 0.14.3 (2022-04-29)
  - 0.14.2 (2022-01-26)
  - 0.14.1 (2022-01-12)
  - 0.14.0 (2022-01-10)
  - 0.13.0 (2021-10-20)
  - 0.12.1 (2021-07-07)
  - 0.12.0 (2021-06-19)
  - 0.11.0 (2021-03-17)
  - 0.10.0 (2020-12-11)
  - 0.9.1 (2020-10-22)
  - 0.9.0 (2020-10-20)
  - 0.8.0 (2020-09-22)
  - 0.7.1 (2020-07-02)
  - 0.7.0 (2020-06-30)
  - 0.6.4 (2020-05-20)
  - 0.6.3 (2020-05-20)
  - 0.6.2 (2020-05-15)
  - 0.6.1 (2020-03-09)
  - 0.6.0 (2020-03-09)
  - 0.5.1 (2019-10-09)
  - 0.5.0 (2019-08-02)
  - 0.4.3 (2019-06-30)
  - 0.4.2 (2019-05-17)
  - 0.4.1 (2019-05-17)
  - 0.4.0 (2019-04-10)
  - 0.3.0 (2019-03-18)
  - 0.2.4 (2018-11-30)
  - 0.2.3 (2018-11-28)
  - 0.2.2 (2018-11-08)
  - 0.2.1 (2018-06-28)
  - 0.2.0 (2018-04-26)
  - 0.1.0 (2017-10-23)

# Indices and tables

- Index

- Module Index

- Search Page