Skip to main content

BusyLight Project Logo

Control USB LED status lights from the command line and HTTP.
26 devices · 9 vendors · CLI · HTTP API

Test & Publish Version Python Version License Monthly Downloads

BusyLight for Humans™ controls USB LED lights from multiple vendors. Use the command-line interface or HTTP API to turn lights on/off, change colors, and apply effects.

Built on busylight-core, the Python library for USB status light communication.

All Supported Lights

Flag1, Busylight Alpha2, Blynclight Plus3, Blink(1)4, Mute5, Blynclight6, Orb7, BusyLight Omega8, BlinkStick Square9, Blynclight Mini10, MuteMe Original11, fit-statUSB12, MuteSync13, Status Indicator14

Quick Start

# Turn on a green light right now
uvx --from busylight-for-humans busylight on

# Red, blinking, then off
uvx --from busylight-for-humans busylight blink red
uvx --from busylight-for-humans busylight off

Installation

# Basic install (CLI only)
pip install busylight-for-humans

# With web API support
pip install busylight-for-humans[webapi]

Linux requires udev rules for USB device access:

busylight udev-rules -o 99-busylights.rules
sudo cp 99-busylights.rules /etc/udev/rules.d/
sudo udevadm control -R
# Unplug and reconnect your device

Supported Hardware

Vendor Models
Agile Innovative BlinkStick, BlinkStick Pro, Square, Strip, Nano, Flex
CompuLab fit-statUSB
EPOS Busylight
Embrava Blynclight, Blynclight Mini, Blynclight Plus, BLYNCUSB10, BLYNCUSB20
Kuando Busylight Alpha, Busylight Omega
Luxafor Flag, Orb, Mute, Busy Tag, Bluetooth
MuteMe MuteMe Original, MuteMe Mini, MuteSync
Plantronics Status Indicator
ThingM Blink(1), Blink(1) mk2

Multi-LED targeting supported on BlinkStick variants, Luxafor Flag, and Blink(1) mk2.

Command Line

busylight on              # green light
busylight on red          # red light
busylight blink blue      # blinking blue
busylight rainbow         # cycle through colors
busylight off             # turn off

# Multi-LED devices
busylight on red --led 1  # first LED only
busylight on blue --led 2 # second LED only

Web API

# Start the server
busyserve

# Control via HTTP
curl "http://localhost:8000/light/0/on?color=red"
curl "http://localhost:8000/light/0/blink?color=blue&count=5"
curl "http://localhost:8000/lights/off"

Platform Support

  • macOS -- works out of the box
  • Linux -- requires udev rules (see Installation)
  • Windows -- may work, untested, patches welcome

Contributing

Contributions welcome. See CONTRIBUTING.md for development setup and guidelines. This project is part of a uv workspace monorepo.

Gratitude

Thank you to @todbot and ThingM for gifting blink(1) mk3 lights to support this project.

License

Apache License 2.0

Metadata

Release files for busylight-for-humans 1.0.2

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

Source distribution (sdist)

Source distribution for busylight-for-humans 1.0.2
File Size Uploaded
busylight_for_humans-1.0.2.tar.gz 32.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for busylight-for-humans 1.0.2
File Interpreter ABI Platform
busylight_for_humans-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 82.3 kB

Release files / busylight_for_humans-1.0.2.tar.gz

Download URL busylight_for_humans-1.0.2.tar.gz
Size 32.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a7cd49b8e4eb3e5b99212bf63f591794b9f00339f2f7dd730bdc5c23cf7762cd
BLAKE2b-256 checksum
How to use checksums
b5a9e659ce8a2b72bde591730d589420987bb12a578dce97edc2af3e1a8eef9a
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 5, 2026.

Transparency log

Release files / busylight_for_humans-1.0.2-py3-none-any.whl

Download URL busylight_for_humans-1.0.2-py3-none-any.whl
Size 49.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fc39beb4a696fa00ecdb5b3b02db09899c23679a6e6f2a16fc54c0dbffdf7bcb
BLAKE2b-256 checksum
How to use checksums
7e912c1e6a61b6037818a0299342fc79db82db9ac6d51232944aa9adf71148e7
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 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.48.0

2 release files

0.47.3

2 release files

0.47.2

2 release files

0.46.1

2 release files

0.46.0

2 release files

0.45.3

2 release files

0.45.2

2 release files

0.45.1

2 release files

0.43.1

2 release files

0.42.0

2 release files

0.41.3

2 release files

0.40.0

2 release files

0.39.1

2 release files

0.39.0

2 release files

0.37.0

2 release files

0.35.2

2 release files

0.35.1

2 release files

0.32.0

2 release files

0.31.0

2 release files

0.30.1

2 release files

0.30.0

2 release files

0.29.0

2 release files

0.27.6

2 release files

0.27.5

2 release files

0.27.4

2 release files

0.27.3

2 release files

0.27.2

2 release files

0.27.1

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.5

2 release files

0.25.4

2 release files

0.25.3

2 release files

0.25.2

2 release files

0.25.1

2 release files

0.25.0

2 release files

0.24.2

2 release files

0.24.1

2 release files

0.24.0

2 release files

0.22.2

2 release files

0.22.1

2 release files

0.22.0

2 release files

0.21.1

2 release files

0.21.0

2 release files

0.20.5

2 release files

0.20.4

2 release files

0.20.3

2 release files

0.20.2

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.18.3

2 release files

0.18.2

2 release files

0.18.1

2 release files

0.18.0

2 release files

0.17.3

2 release files

0.17.2

2 release files

0.17.1

2 release files

0.17.0

2 release files

0.15.4

2 release files

0.15.3

2 release files

0.15.2

2 release files

0.12.9

2 release files

0.12.8

2 release files

0.12.7

2 release files

0.12.5

2 release files

0.12.4

2 release files

0.12.3

2 release files

0.12.2

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.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