Displays the battery percentage of a Logitech MX Master 3S mouse and MX Keys S keyboard connected via a Logi Bolt USB receiver directly on your Stream Deck keys.
- Two actions: MX Master 3S Battery and MX Keys S Battery
- Color-coded battery gauge rendered directly on the key:
- 🟢 Green — 50 % and above
- 🟠 Orange — 20 – 49 %
- 🔴 Red — below 20 %
- Polls every 5 minutes automatically
- Press the key to force an immediate refresh
- Works on macOS and Windows — no Python, no drivers, no configuration
| Requirement | Details |
|---|---|
| Stream Deck software | 6.9 or later |
| macOS | 12 (Monterey) or later |
| Windows | 10 or later |
| Logi Bolt receiver | USB vendor 0x046D, product 0xC548 |
The plugin communicates with the receiver via native HID using node-hid, which ships prebuilt binaries for all supported platforms inside the package. No Python, no additional drivers, and no npm install required on the end-user's machine.
- Download
com.fedeltamedia.mxbattery.streamDeckPluginfrom the latest release. - Double-click the file — Stream Deck will install it automatically.
- Drag MX Master 3S Battery and/or MX Keys S Battery from the action list onto any key.
The plugin uses node-hid to talk to the Logi Bolt receiver directly from Node.js (the runtime bundled with Stream Deck). It uses the HID++ protocol:
- Opens the HID device at
vendor=0x046D,product=0xC548,usage_page=0xFF00 - Queries the Unified Battery feature (HID++ feature
0x1004, firmware index0x08) device_idx 0x02→ MX Master 3S mousedevice_idx 0x01→ MX Keys S keyboard- Response byte 4 contains the battery percentage
git clone https://github.com/FedeltaMedia/mx-battery.git
cd mx-battery
npm install
npm run build # compiles TypeScript → com.fedeltamedia.mxbattery.sdPlugin/bin/plugin.js
npm run pack # builds + copies deps + creates .streamDeckPlugin release file
npm run watch # live-reload during development (requires Stream Deck app running)MIT