bluetooth
TLDR
Start Bluetooth interactive mode
SYNOPSIS
bluetoothctl [command]
DESCRIPTION
bluetoothctl is the command-line interface for managing Bluetooth devices on Linux systems using BlueZ, the official Linux Bluetooth protocol stack. It provides complete control over Bluetooth adapters, device discovery, pairing, and connections.
In interactive mode (run without arguments), bluetoothctl provides a shell with tab completion for exploring commands and devices. Commands can also be executed directly from the shell for scripting.
The tool manages the full device lifecycle: scanning discovers nearby devices, pairing establishes a secure relationship, trusting enables automatic reconnection, and connecting activates the device for use. Multiple adapters are supported via the select command.
PARAMETERS
power on|off
Turn Bluetooth adapter on or off.scan on|off
Start or stop device discovery.devices
List discovered devices.paired-devices
List devices that are paired.pair MAC
Initiate pairing with device.trust MAC
Mark device as trusted (auto-connect).untrust MAC
Remove trusted status from device.connect MAC
Connect to a paired device.disconnect MAC
Disconnect from device.remove MAC
Remove device from known devices.info MAC
Show detailed device information.block / unblock MAC
Block or unblock a device.discoverable on|off
Make adapter visible to other devices.agent capability
Set agent for pairing (NoInputNoOutput, DisplayOnly, etc.).
CAVEATS
Requires the BlueZ stack and bluetoothd daemon running. Some devices require specific pairing agents or PIN codes. Audio devices need PulseAudio/PipeWire Bluetooth modules configured separately. Not all Bluetooth profiles are supported equally; check device compatibility.
HISTORY
BlueZ is the official Linux Bluetooth protocol stack, originally developed by Qualcomm and maintained as an open-source project since the early 2000s. The bluetoothctl utility was introduced in BlueZ 5 (released 2012) as a replacement for the older hcitool and various other command-line utilities, consolidating Bluetooth management into a single modern interface.
SEE ALSO
hciconfig(1), rfkill(8), pulseaudio(1)


