An unofficial Rust API/CLI that allows every device on your network to control your Nothing earbuds.
View full docs »
Report Bug
·
Request Feature
·
AUR
earctl is a Rust rewrite of the backend logic used by the community ear-web tool. It exposes the same Bluetooth Serial Port Profile commands through a REST API and a small CLI. That means you can automate ANC, EQ, latency mode, gestures, and the rest of the Nothing/CMF settings without launching a browser.
Follow these steps to run the API locally. See the docs for deployment, API, and CLI details.
- Rust toolchain (1.75+ recommended)
bluez,bluez-utils(forbluetoothctl)bluez-deprecated-tools(providessdptoolfor RFCOMM channel discovery)- Your earbuds paired in the desktop Bluetooth UI
git clone https://github.com/DaanHessen/earctl.git
cd earctl
cargo build --release
./target/release/earctl server --addr 0.0.0.0:8787On Arch, install from the AUR with yay -S earctl.
- Ensure the server is running (
earctl server) and your earbuds are connected via the OS Bluetooth menu. - Auto-connect from any terminal:
The server queries BlueZ for connected devices, discovers the Nothing RFCOMM channel via
earctl auto-connect --name "Nothing Ear"sdptool, and opens the session. Supply--channel <number>if you need to override the detected value (defaults to channel 1 if detection fails). - Toggle ANC, EQ, latency, gestures, LED color, or trigger Find My Buds either via the REST endpoints or the CLI.
For more information, refer to the documentation
Contributions are welcome: open an issue if you found a bug or send a pull request with the fix.
Top contributors:
Distributed under the GNU Affero GPL-3.0 license. See LICENSE for details.
Daan Hessen – daanh2002@gmail.com
Project Link: https://github.com/DaanHessen/earctl