hcitool

bluetooth Host Controller Interface tool for monitoring, configuring

TLDR

Scan for Bluetooth devices
$ hcitool scan
Scan for Bluetooth Low Energy (BLE) devices
$ hcitool lescan
Output the name of a device by MAC address
$ hcitool name [bdaddr]
Fetch information about a remote Bluetooth device
$ hcitool info [bdaddr]
Check the link quality to a Bluetooth device
$ hcitool lq [bdaddr]
Modify the transmit power level
$ hcitool tpl [bdaddr] [0|1]
Display the link policy
$ hcitool lp
Request authentication with a specific device
$ hcitool auth [bdaddr]
Display local devices
$ hcitool dev

SYNOPSIS

hcitool [options] command [command-parameters]

DESCRIPTION

hcitool is a Bluetooth Host Controller Interface tool for monitoring, configuring connections, and sending commands to Bluetooth devices. It provides low-level access to Bluetooth functionality for diagnostics and advanced configuration.The tool can discover nearby devices, query device information, manage connections, and configure link parameters. It operates at the HCI layer, below the higher-level profiles like A2DP or HFP.

PARAMETERS

-i hciX

Use the specified HCI device instead of the first available one.
scan
Scan for discoverable Bluetooth devices
lescan
Scan for Bluetooth Low Energy (BLE) devices
dev
List local Bluetooth adapters
name bdaddr
Get remote device name
info bdaddr
Get remote device information
lq bdaddr
Get link quality
tpl bdaddr type
Get/set transmit power level
lp
Display link policy
auth bdaddr
Request authentication
con
Display active connections
cc bdaddr
Create connection
dc bdaddr
Disconnect

INSTALL

sudo apt install bluez
sudo dnf install bluez
sudo pacman -S bluez
sudo apk add bluez-deprecated
sudo zypper install bluez
brew install bluez
nix profile install nixpkgs#bluez

CAVEATS

Deprecated in favor of bluetoothctl in modern BlueZ versions. May require root privileges for some operations. Some features depend on Bluetooth adapter capabilities.

HISTORY

hcitool is part of the BlueZ Bluetooth protocol stack for Linux. While functional, it's considered legacy and bluetoothctl from BlueZ 5 is recommended for most operations on modern systems.

SEE ALSO

bluetoothctl(1), hciconfig(1), rfkill(8)

RESOURCES

Source code