Skip to main content

govee-toolkit (Python)

Control Govee devices over the LAN from Python, with the undocumented commands observed on the wire.

Documentation: gvetk.com

govee-toolkit on PyPI license ci

Community project. Not affiliated with, sponsored by or endorsed by Govee.

The package is a PyO3 binding over the Rust core in packages/rust, not a second implementation of the protocol. It builds no frame of its own: the core builds every byte, and the conformance vectors in the repository check the core. Arguments in, exact bytes out.

Install

pip install govee-toolkit

Python 3.11 and up. The wheel is abi3, so one wheel serves every version from 3.11. The release builds wheels for Linux and Windows on x86_64 and aarch64, for macOS on aarch64, for Linux on armv7, and for musl on x86_64, aarch64 and armv7.

The release publishes no source distribution. On a platform with no wheel, build the wheel from a checkout of the repository with a Rust toolchain. The core embeds the device files at build time, so a build needs the devices/ directory.

The wheel carries the device catalog, so there is no data file to install. govee_toolkit.CORE_VERSION reports the version of the core that the wheel was built from.

A first command

The API is asyncio only.

import asyncio
from govee_toolkit import Govee

async def main():
    # Reads $XDG_CONFIG_HOME/govee-toolkit/config.yaml.
    govee = await Govee.start()

    devices = await govee.scan()
    for device in devices:
        print(device.id, device.sku, device.modes)

    handle = govee.device(devices[0].id)
    served = await handle.send("power", on=True)
    print("served over", served.mode)

    await govee.close()

asyncio.run(main())

handle.send() takes any command the device file declares. Each value is read under the type that entry declares for the argument, so [0, 1, 2] is zone indices, byte values or one color as the file says. The common ones also have a method: power(), brightness(), color(), color_temp(), music(), segment(), gradient() and provision_wifi(). handle.read() and handle.status() ask the device instead. handle.open_stream() opens a segment stream and paints frame by frame.

Modes

A command travels over your Wi-Fi (lan), over Bluetooth (ble) or through Govee's servers (cloud). You enable the modes per device, in the configuration file. One enabled mode means one mode: an unreachable device fails with an error and says so. The package never substitutes a mode.

handle.serving_mode() names the mode a command goes over now, from the state the SDK recorded. await handle.ensure_known() scans first if no mode knows the device yet, then answers the same question. gvetk.com/docs/modes has the rules.

Where command names come from

power, brightness and color are entries in the device's YAML file in devices/, not identifiers in this package. handle.spec() returns what that file declares for your device. A name the device does not define, or an argument outside the declared range, is an error before anything reaches the network.

Errors

GoveeError is the base class; CodecError, TransportError and ConfigError are its subclasses. The subclass says where the failure happened: CodecError if the command never reached the wire, TransportError if the link failed, and ConfigError if a setting cannot work. Every one of them carries .code, the stable identifier that the core gives the failure. Match on the code, not on the message: the message is written for a person and can change.

A value the package cannot read at all, such as a color that is not three whole numbers, is a ValueError. It carries no code, because the core never saw it.

from govee_toolkit import GoveeError

try:
    await handle.brightness(50)
except GoveeError as err:
    print(err.code)  # for example "unknown_command" or "no_mode_available"

Next

You want to Go to
Install it and send a first command gvetk.com/docs/start
Know whether your model works gvetk.com/devices
Pick and configure the modes gvetk.com/docs/modes
Read every command and method gvetk.com/reference
Report a device, or add one devices/README.md

License

MIT

Release files for govee-toolkit 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for govee-toolkit 0.1.0
File
govee_toolkit-0.1.0-cp311-abi3-win_arm64.whl CPython 3.11 abi3 Windows ARM64 Details
govee_toolkit-0.1.0-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
govee_toolkit-0.1.0-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details
govee_toolkit-0.1.0-cp311-abi3-musllinux_1_2_armv7l.whl CPython 3.11 abi3 Linux musl 1.2+ ARMv7l Details
govee_toolkit-0.1.0-cp311-abi3-musllinux_1_2_aarch64.whl CPython 3.11 abi3 Linux musl 1.2+ ARM64 Details
govee_toolkit-0.1.0-cp311-abi3-manylinux_2_38_x86_64.whl CPython 3.11 abi3 Linux glibc 2.38+ x86-64 Details
govee_toolkit-0.1.0-cp311-abi3-manylinux_2_38_aarch64.whl CPython 3.11 abi3 Linux glibc 2.38+ ARM64 Details
govee_toolkit-0.1.0-cp311-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.11 abi3 Linux glibc 2.17+ ARMv7l Details
govee_toolkit-0.1.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details

Total release size: 39.9 MB

Release files / govee_toolkit-0.1.0-cp311-abi3-win_arm64.whl

Download URL govee_toolkit-0.1.0-cp311-abi3-win_arm64.whl
Size 3.9 MB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
0a3d688e6f09ebe40bfe5f57abdd96548591e0fd9658cd1ba653cdddb15ef122
BLAKE2b-256 checksum
How to use checksums
c4c065aa05b4fe12154bd861e2496473fe9600ebcb8a6610ec00b0016ba14cb7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / govee_toolkit-0.1.0-cp311-abi3-win_amd64.whl

Download URL govee_toolkit-0.1.0-cp311-abi3-win_amd64.whl
Size 4.0 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
35ec7d890fc7cf4c95c869ee3db86c6b071a42bdf04f2fd563b4fba3c80cc54d
BLAKE2b-256 checksum
How to use checksums
2a5fc208c258bde2594121cadfd7ed1f09eecbb31e0113aec324d8a3e6b96285
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / govee_toolkit-0.1.0-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL govee_toolkit-0.1.0-cp311-abi3-musllinux_1_2_x86_64.whl
Size 5.1 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
4064d4d0511070864570a747dc77400b0f30b71b06678b5a8a05b1d05205ce7f
BLAKE2b-256 checksum
How to use checksums
beef9236adae957ef54d71a0ead4fdf8a854bee83e8d70869d7d45d1285090c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / govee_toolkit-0.1.0-cp311-abi3-musllinux_1_2_armv7l.whl

Download URL govee_toolkit-0.1.0-cp311-abi3-musllinux_1_2_armv7l.whl
Size 4.5 MB
Tags CPython 3.11 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
da7e04aa1427090af876bc9082446509866f5cee73ab4e2f9758acccac0a006d
BLAKE2b-256 checksum
How to use checksums
b960ad56c827e36263326fccdc172b6c11c524485a2ff265a5bba21488030a06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / govee_toolkit-0.1.0-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL govee_toolkit-0.1.0-cp311-abi3-musllinux_1_2_aarch64.whl
Size 4.8 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
bd24eb55eb9e1cadd5aaf26310f67fa027e2013f959820b8c78ede30a682b117
BLAKE2b-256 checksum
How to use checksums
ce9c16165c6c0b52d4aab6ac8553b807262c3586c3f624d6aab0857f963d76d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / govee_toolkit-0.1.0-cp311-abi3-manylinux_2_38_x86_64.whl

Download URL govee_toolkit-0.1.0-cp311-abi3-manylinux_2_38_x86_64.whl
Size 4.8 MB
Tags CPython 3.11 Linux glibc 2.38+ x86-64 abi3
SHA-256 checksum
How to use checksums
519e2a7a059f51de965b4769fc4c11163235d84339c86f9af98591f23f2e53bf
BLAKE2b-256 checksum
How to use checksums
1f2a0d64d4a9a1a5c2c5aee80617ce7862384912d83f7590ccf602be02fde5b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / govee_toolkit-0.1.0-cp311-abi3-manylinux_2_38_aarch64.whl

Download URL govee_toolkit-0.1.0-cp311-abi3-manylinux_2_38_aarch64.whl
Size 4.6 MB
Tags CPython 3.11 Linux glibc 2.38+ ARM64 abi3
SHA-256 checksum
How to use checksums
6e3f58ea8d0a00d0caf54bae15b9f2f674181bfbfc04af3dba5eb437af29497e
BLAKE2b-256 checksum
How to use checksums
ad71a6e57c1ce3449f9061efcd59c96b2272b1cfef10f186cabf396478e837da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / govee_toolkit-0.1.0-cp311-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL govee_toolkit-0.1.0-cp311-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 4.2 MB
Tags CPython 3.11 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
cea61f959923a4403587deb333453a5b1bf46d57c5ef36ce41cc196ecde719f2
BLAKE2b-256 checksum
How to use checksums
70bab70d1730f4ad27c42b8a5de91bf96d75a1a063396ab9380d8b439f2c6366
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / govee_toolkit-0.1.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL govee_toolkit-0.1.0-cp311-abi3-macosx_11_0_arm64.whl
Size 4.1 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9283750436d8cac4cc533e195a7140b4f943bcf1cbc47d0d773fbbde5efe0d42
BLAKE2b-256 checksum
How to use checksums
515d0d1933acb16d86b2f455bc86e5f6121cca645d2d12a88b4deefabfc8a58c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.0

9 release files

0.4.0

9 release files

0.3.0

9 release files

0.2.0

9 release files

This release

0.1.0 This release

9 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page