-
Notifications
You must be signed in to change notification settings - Fork 4
Installation and Setup
Aaron Wasserman edited this page Jul 10, 2026
·
1 revision
-
Linux with BlueZ (
bluetoothdrunning). Caeruleus does not build or run on macOS or Windows. - A standard BLE adapter (built-in or USB). The default adapter is
hci0; pass-i hciNfor another. - Root for a handful of raw-socket/system commands (see below).
With the Go toolchain:
go install github.com/praetorian-inc/caeruleus/cmd/caeruleus@latestPrebuilt release binary (x86_64 and arm64): download the archive for your architecture from the Releases page, extract, and put caeruleus on your $PATH:
sudo install -m755 caeruleus /usr/local/bin/From source:
git clone https://github.com/praetorian-inc/caeruleus
cd caeruleus
make build # -> ./caeruleus
make test # unit tests + shell testsConfirm the adapter and BlueZ are healthy before anything else:
caeruleus doctor # OK/WARN/FAIL checklist; exit 2 on FAIL, with a fix per finding
caeruleus scan # discover nearby devicesIf a connect later fails, doctor usually prints the exact fix (adapter power cycle, forget, or an MTU adjustment). See Hardware, Adapters & Troubleshooting.
Most commands run unprivileged over BlueZ D-Bus. These use raw HCI/L2CAP sockets or system config and need sudo:
conn-params, monitor, fuzz write --raw, cccd --raw, raw-write, mtu --set/--reset, bdaddr --set.
For unattended or agent use, a scoped sudoers drop-in avoids password prompts:
echo "$USER ALL=(root) NOPASSWD: $(command -v caeruleus)" | sudo tee /etc/sudoers.d/caeruleus
sudo chmod 440 /etc/sudoers.d/caeruleus- Command Reference — every command and flag
- Recipes — copy-paste workflows
- Coming from Another Tool — if you already use another BLE tool