Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



A monitoring tool for Azure DevOps and Teamcity that uses a Delcom USB LED or Shelly Bulb light to notify your teams.


How to install

The easiest deployment mechanism is to install Chocolatey and run the following command-line to install the Chocolate package:

choco install beacon

Then run beacon and observe the command-line arguments.

Example usage

Azure Devops

Using a public Azure Devops project and running continuously for definition id (ie. build) #1 and #2:

beacon azuredevops --url --project MyProject --builds=1 2

Or, using a personal access token (e.g. 1234567890ab, see here for how to obtain a token) and for all definitions:

beacon azuredevops --url --project MyProject --builds=* --token 1234567890ab


Using a named TeamCity account and running continuously:

beacon teamcity --url= --username=username --password=password --builds=build_id_1 build_id_2 etc

Or, alternatively using TeamCity guest access, running only once and with verbose logging:

beacon teamcity --url= --guestaccess --runonce --verbose --builds=build_id_1 build_id_2 etc

Using a Shelly Bulb

First install your Shelly Bulb following the installation instructions. After your bulb is installed, look up the device IP address of it under "Settings > Device Information", e.g.

Now use the obtained IP to connect Shelly:

beacon azuredevops --url --project Nyxie --builds 10 --device shelly --shellyurl


  • Support for configuring the RGB values, flash mode and power level of the LED.
  • Support for including all TeamCity projects under a certain project node, including more advanced filtering rules.
  • Deployment as a Windows Service.

Why another

My original idea was triggered by TeamFlash, a prototype implementation made by Readify. Unfortunately, the quality of that code was way below anything I can work with, so I planned to contribute a big list of improvements as well as more configuration options. However, it took me several emails, tweets and DMs and a month of patience just to get a single pull request accepted. So I see no point in working with a fork. Instead, I decided to take their code as a starting point and revive the product.