#blink #notify

app cargo-blinc

Notifies about commands exit code using LED light blink(1)

2 releases

0.1.2 Sep 14, 2023
0.1.0 Feb 16, 2021

#79 in Cargo plugins


556 lines


Instant feedback on the state of your tests*

CI status badge Crates.io version Code coverage License

About | Demo | Installation | Configuration | License | Contribution

Built with 🦀


This crate allows running arbitrary commands and indicate the status of its execution using USB notification light - blink(1).

*By default it runs cargo test. You can customize the commands and LED colors using configuration file.

Example use case:
  • run cargo watch -x blinc
  • after every file save, it will start blinking with blue light
  • it will start execution of cargo test
  • after tests finish it will glow red when tests fail or green when tests succeed


Demo GIF


To install

cargo install cargo-blinc

To upgrade

cargo install --force cargo-blinc

Make sure that you have correct access rights to access blink(1) device. See udev rules here.


By default, no configuration is required if these settings satisfy you:

  • tasks: cargo check, cargo test
  • pending task color: blue (blinking)
  • failed task color: red
  • successful task color: green

You can control all of these by configuration file.

Run cargo blinc --init <path> to initialize config. It will create file, under specified path, with following content:

cmd = "cargo"
args = ["check"]

cmd = "cargo"
args = ["test"]

pending = ["blue", "white"]
failure = "red"
success = "green"


Run cargo blinc --config <path> to specify path to the configuration file. The default value is .blinc.

The [env] section is empty by default. It allows specifying environment variables during execution of configured [[tasks]]. Example:

cmd = "cargo"
args = ["check"]

cmd = "cargo"
args = ["test"]

pending = ["blue", "white"]
failure = "red"
success = "green"

RUST_LOG = "debug"
API_KEY = "1231431"

If you don't have a need to specify environment variables, you can remove the section.


This project is licensed under either of

At your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~166K SLoC