Skip to main content

Library and command-line tool

Busy Tag can be controlled without the app. Over USB the device speaks a text protocol of AT commands, so any language with serial-port access works. Two open-source tools save you the work.

BusyTag.Lib (.NET)​

busytag-lib on GitHub · NuGet package · MIT licence

The .NET library the Busy Tag app itself is built on. It finds devices, talks to them over USB, transfers files with progress events, controls LEDs and patterns, scans Wi-Fi networks, connects to the Busy Tag cloud and can recover a device in boot mode.

dotnet add package BusyTag.Lib
using BusyTag.Lib;

using var manager = new BusyTagManager();
var ports = await manager.FindBusyTagDevice();
if (ports?.Any() == true)
{
var device = new BusyTagDevice(ports.First());
await device.Connect();
Console.WriteLine($"{device.DeviceName}, firmware {device.FirmwareVersion}");
}

Runs on .NET 8 and 9 on Windows 10 (1903) or later and macOS 10.15 or later. Linux support is experimental (EnableExperimentalLinuxSupport = true; your user must be in the dialout group). The README has the full API and the changelog.

Busy Tag CLI​

busytag-cli on GitHub · NuGet .NET tool · MIT licence

A command-line tool for scripts, build lights and quick checks. Without arguments it starts an interactive menu.

# macOS (Homebrew)
brew tap busy-tag/busytag
brew install busytag-cli

# Windows, macOS, Linux (.NET 8 or later)
dotnet tool install -g BusyTag.CLI
CommandExample
Find devicesbusytag-cli scan
Device informationbusytag-cli info COM3
Set a colour (name, hex or RGB, optional brightness)busytag-cli color COM3 red 75
Play an LED pattern (count 1–254, 255 = forever)busytag-cli pattern COM3 "Police 1" 3
Upload and show an imagebusytag-cli upload COM3 busy.png then busytag-cli show COM3 busy.png
List files, storagebusytag-cli files COM3, busytag-cli storage COM3
Recover a device in boot modebusytag-cli recover COM5

On macOS the port looks like /dev/cu.usbmodem…; busytag-cli scan prints it.

Other languages​

Open the serial port and send AT commands terminated with \r\n. The AT Command Manual has complete Python, C# and Swift examples. Busy Tag 2 can also be controlled over HTTP on the local network; see the Local Network Guide.