Install

Install

The Rust crate is the reference implementation. The command line needs no code. Python and Node.js bind to that same core. The DMX bridge is a separate binary.

Rust v0.13.0 crates.io

Async, on Tokio. The lan feature is on by default. ble and cloud are opt-in.

$ cargo add govee-toolkit
$ cargo add govee-toolkit --features ble,cloud
use govee_toolkit::{Config, Govee};

let govee = Govee::start(Config::load()?).await?;
for device in govee.scan().await? {
    govee.device(device.id()).power(true).await?;
}

On Linux the ble feature reaches the radio through BlueZ over D-Bus, so the build needs the dbus headers (apt install libdbus-1-dev). macOS and Windows need nothing.

Command line v0.8.0 crates.io

The binary is govee. It holds no protocol logic: it reads the device files through the crate.

$ cargo install govee-toolkit-cli
$ govee scan
$ govee on DEVICE
$ govee color DEVICE "#ff3d00"

Every command, with an example in each language

Python v0.5.0 PyPI

A PyO3 binding over the Rust core. The API is asyncio only, and the wheel carries the device catalog, so an install needs no data file and no Rust toolchain.

$ pip install govee-toolkit
from govee_toolkit import Govee

govee = await Govee.start()
for device in await govee.scan():
    await govee.device(device.id).power(True)
await govee.close()

The wheels are abi3 for Python 3.11 and up: Linux, macOS and Windows on x86_64 and aarch64, Linux on armv7, and musl on x86_64, aarch64 and armv7. On a platform with no wheel, pip builds from the repository, which needs a Rust toolchain.

Node.js v0.4.0 npm

A napi-rs binding over the same core, with TypeScript types. The package carries the device catalog, so an install needs no data file and no Rust toolchain.

$ npm install govee-toolkit
import { Govee } from "govee-toolkit"

const govee = await Govee.start()
for (const device of await govee.scan()) {
  await govee.device(device.id).power(true)
}
await govee.close()

The package needs Node.js 20 or later. The addon ships for Linux and Windows on x86_64 and aarch64, and for macOS on aarch64. There is no source build: the device catalog is compiled into the addon from devices/*.yaml, which the package does not carry, so a platform with no addon needs the repository.

DMX bridge v0.3.0 crates.io

The binary is govee-dmx. It receives Art-Net on the network and writes each frame to a light over lan.

$ cargo install govee-toolkit-dmx
$ govee-dmx patch
$ govee-dmx run

Art-Net is the one input protocol the bridge carries. A light it drives must have lan enabled.

The DMX guide