# ESPHome API Client ## Docs - [Architecture](https://mintlify.wiki/richard87/esphome-apiclient/advanced/architecture.md): How the ESPHome API Client is structured internally - [Bluetooth proxy](https://mintlify.wiki/richard87/esphome-apiclient/advanced/bluetooth-proxy.md): Use ESPHome devices as Bluetooth LE proxies for advertisement scanning and GATT operations - [Noise encryption](https://mintlify.wiki/richard87/esphome-apiclient/advanced/encryption.md): Secure connections using the Noise protocol with a pre-shared key - [ESPHome Native API protocol](https://mintlify.wiki/richard87/esphome-apiclient/advanced/protocol.md): Binary framing and connection lifecycle of the ESPHome Native API - [Bluetooth proxy](https://mintlify.wiki/richard87/esphome-apiclient/api/bluetooth.md): Reference for all Bluetooth proxy methods - [Client](https://mintlify.wiki/richard87/esphome-apiclient/api/client.md): Reference for the Client type, Dial functions, and core methods - [Commands](https://mintlify.wiki/richard87/esphome-apiclient/api/commands.md): Reference for all command methods to control ESPHome entities - [Entity registry](https://mintlify.wiki/richard87/esphome-apiclient/api/entities.md): Reference for the EntityRegistry and all entity types - [Options](https://mintlify.wiki/richard87/esphome-apiclient/api/options.md): Configuration options for the Client - [CLI commands](https://mintlify.wiki/richard87/esphome-apiclient/cli/commands.md): Reference for all esphome-cli subcommands and their flags - [CLI overview](https://mintlify.wiki/richard87/esphome-apiclient/cli/overview.md): Install and use the esphome-cli tool to interact with ESPHome devices from the terminal - [Connecting to a device](https://mintlify.wiki/richard87/esphome-apiclient/guides/connecting.md): Establish a connection to an ESPHome device using plain TCP or Noise encryption - [Working with entities](https://mintlify.wiki/richard87/esphome-apiclient/guides/entities.md): Discover and query ESPHome entities using the entity registry - [Streaming device logs](https://mintlify.wiki/richard87/esphome-apiclient/guides/logs.md): Subscribe to real-time log output from ESPHome firmware - [Auto-reconnect](https://mintlify.wiki/richard87/esphome-apiclient/guides/reconnect.md): Configure automatic reconnection with exponential backoff - [Sending commands](https://mintlify.wiki/richard87/esphome-apiclient/guides/sending-commands.md): Control ESPHome devices by sending typed commands to entities - [Subscribing to state updates](https://mintlify.wiki/richard87/esphome-apiclient/guides/subscribing-states.md): Receive real-time state changes from ESPHome entity state subscriptions - [Installation](https://mintlify.wiki/richard87/esphome-apiclient/installation.md): Add the ESPHome API Client to your Go project - [Introduction](https://mintlify.wiki/richard87/esphome-apiclient/introduction.md): What is the ESPHome API Client and why use it - [Quick start](https://mintlify.wiki/richard87/esphome-apiclient/quickstart.md): Connect to an ESPHome device and stream sensor data in under 5 minutes