#bluetooth #ble #terminal #tui #gatt

app btlescan

A cross-platform terminal UI for scanning Bluetooth Low Energy devices, inspecting GATT services and characteristics, and reading/writing characteristic values in real time

4 stable releases

1.1.3 Mar 1, 2026
1.1.2 Feb 28, 2026

#228 in Network programming

MIT license

275KB
7K SLoC

Build

btlescan

A cross-platform terminal UI for scanning Bluetooth Low Energy devices, inspecting GATT services and characteristics, and reading/writing characteristic values in real time.

demo

Features

  • Device Discovery — Continuous scanning with live updates of address/UUID, name, TX power, and RSSI.
  • GATT Inspection — Connect to a device, discover services, and browse characteristics with their properties.
  • Read / Write — Read characteristic values or write data in hex or text format.
  • Notifications — Subscribe to characteristic notifications with a timestamped message log.
  • Server Mode (Linux only, opt-in) — Run a GATT server: set characteristic values for read responses, send notifications to subscribed clients.
  • CSV Export — Export the device list to a CSV file.

Keyboard Controls

Client Mode

Key Action
q Quit
Tab Cycle focus between panels
/ or j/k Navigate lists / scroll log
Enter Connect to selected device
d Disconnect
r Read selected characteristic
w / i Write — enter editing mode
n Toggle notification subscription
t Toggle hex / text input format
s Toggle scan pause/resume
e Export devices to CSV
m Switch to server mode
Esc Cancel editing

Server Mode

Key Action
a Start advertising
x Stop advertising
w Set characteristic value (returned on reads)
n Send notification to subscribed clients
t Toggle hex / text input format
/ or j/k Navigate fields / scroll log
m Switch to client mode
Esc Cancel editing

Installation

cargo install btlescan

To include the GATT server feature (Linux only):

cargo install btlescan --features server

Alternatives

If you're looking to manage or pair Bluetooth devices, check out bluetui!

Dependencies

~15–48MB
~701K SLoC