onyx-and-iris c19c7f278b remove --kind flag from the root command and split the package into two separate CLIs.
Each CLI uses the correct concrete client and it avoids mixing help output

update goreleaser config
2026-02-07 03:54:36 +00:00
2026-02-07 03:51:47 +00:00
2026-02-07 03:26:49 +00:00
2026-01-31 02:33:41 +00:00
2026-02-05 03:36:22 +00:00
2026-02-05 03:36:22 +00:00
2026-01-30 23:55:57 +00:00
2026-02-07 03:26:17 +00:00
2026-02-05 14:20:03 +00:00

xair-cli

Installation

go install github.com/onyx-and-iris/xair-cli@latest

Configuration

Flags

  • --host/-H: Host of the mixer.
  • --port/-P: Port of the mixer.
  • --kind/-k: The kind of mixer. May be one of (xair, x32).
    • Use this flag to connect to an x32 mixer.
  • --timeout/-T: Timeout for OSC operations.
  • --loglevel/-L: The application's logging verbosity.

Pass --host and any other configuration as flags on the root commmand:

xair-cli --host mixer.local --kind xair --timeout 50ms --help

Environment Variables

Or you may load them from your environment:

Example .envrc:

#!/usr/bin/env bash

export XAIR_CLI_HOST=mixer.local
export XAIR_CLI_PORT=10024
export XAIR_CLI_KIND=xair
export XAIR_CLI_TIMEOUT=100ms
export XAIR_CLI_LOGLEVEL=warn

Use

Usage: xair-cli <command> [flags]

A CLI to control Behringer X-Air mixers.

Flags:
  -h, --help                  Show context-sensitive help.
  -H, --host="mixer.local"    The host of the X-Air device ($XAIR_CLI_HOST).
  -P, --port=10024            The port of the X-Air device ($XAIR_CLI_PORT).
  -K, --kind="xair"           The kind of the X-Air device ($XAIR_CLI_KIND).
  -T, --timeout=100ms         Timeout for OSC operations ($XAIR_CLI_TIMEOUT).
  -L, --loglevel="warn"       Log level for the CLI ($XAIR_CLI_LOGLEVEL).
  -v, --version               Print xair-cli version information and quit

Commands:
  completion (c)    Generate shell completion scripts.

Raw
  raw    Send raw OSC messages to the mixer.

Main
  main mute              Get or set the mute state of the Main L/R output.
  main fader             Get or set the fader level of the Main L/R output.
  main fadein            Fade in the Main L/R output over a specified duration.
  main fadeout           Fade out the Main L/R output over a specified duration.
  main eq on             Get or set the EQ on/off state of the Main L/R output.
  main eq <band> gain    Get or set the gain of the specified EQ band.
  main eq <band> freq    Get or set the frequency of the specified EQ band.
  main eq <band> q       Get or set the Q factor of the specified EQ band.
  main eq <band> type    Get or set the type of the specified EQ band.
  main comp on           Get or set the compressor on/off state of the Main L/R
                         output.
  main comp mode         Get or set the compressor mode of the Main L/R output.
  main comp threshold    Get or set the compressor threshold of the Main L/R
                         output.
  main comp ratio        Get or set the compressor ratio of the Main L/R output.
  main comp mix          Get or set the compressor mix level of the Main L/R
                         output.
  main comp makeup       Get or set the compressor makeup gain of the Main L/R
                         output.
  main comp attack       Get or set the compressor attack time of the Main L/R
                         output.
  main comp hold         Get or set the compressor hold time of the Main L/R
                         output.
  main comp release      Get or set the compressor release time of the Main L/R
                         output.

Strip
  strip <index> mute              Get or set the mute state of the strip.
  strip <index> fader             Get or set the fader level of the strip.
  strip <index> fadein            Fade in the strip over a specified duration.
  strip <index> fadeout           Fade out the strip over a specified duration.
  strip <index> send              Get or set the send level for a specific bus.
  strip <index> name              Get or set the name of the strip.
  strip <index> gate on           Get or set the gate on/off state of the strip.
  strip <index> gate mode         Get or set the gate mode of the strip.
  strip <index> gate threshold    Get or set the gate threshold of the strip.
  strip <index> gate range        Get or set the gate range of the strip.
  strip <index> gate attack       Get or set the gate attack time of the strip.
  strip <index> gate hold         Get or set the gate hold time of the strip.
  strip <index> gate release      Get or set the gate release time of the strip.
  strip <index> eq on             Get or set the EQ on/off state of the strip.
  strip <index> eq <band> gain    Get or set the gain of the EQ band.
  strip <index> eq <band> freq    Get or set the frequency of the EQ band.
  strip <index> eq <band> q       Get or set the Q factor of the EQ band.
  strip <index> eq <band> type    Get or set the type of the EQ band.
  strip <index> comp on           Get or set the compressor on/off state of the
                                  strip.
  strip <index> comp mode         Get or set the compressor mode of the strip.
  strip <index> comp threshold    Get or set the compressor threshold of the
                                  strip.
  strip <index> comp ratio        Get or set the compressor ratio of the strip.
  strip <index> comp mix          Get or set the compressor mix of the strip.
  strip <index> comp makeup       Get or set the compressor makeup gain of the
                                  strip.
  strip <index> comp attack       Get or set the compressor attack time of the
                                  strip.
  strip <index> comp hold         Get or set the compressor hold time of the
                                  strip.
  strip <index> comp release      Get or set the compressor release time of the
                                  strip.

Bus
  bus <index> mute              Get or set the mute state of the bus.
  bus <index> fader             Get or set the fader level of the bus.
  bus <index> fadein            Fade in the bus over a specified duration.
  bus <index> fadeout           Fade out the bus over a specified duration.
  bus <index> name              Get or set the name of the bus.
  bus <index> eq on             Get or set the EQ on/off state of the bus.
  bus <index> eq mode           Get or set the EQ mode of the bus (peq, geq or
                                teq).
  bus <index> eq <band> gain    Get or set the gain of the EQ band.
  bus <index> eq <band> freq    Get or set the frequency of the EQ band.
  bus <index> eq <band> q       Get or set the Q factor of the EQ band.
  bus <index> eq <band> type    Get or set the type of the EQ band (lcut, lshv,
                                peq, veq, hshv, hcut).
  bus <index> comp on           Get or set the compressor on/off state of the
                                bus.
  bus <index> comp mode         Get or set the compressor mode of the bus (comp,
                                exp).
  bus <index> comp threshold    Get or set the compressor threshold of the bus
                                (in dB).
  bus <index> comp ratio        Get or set the compressor ratio of the bus.
  bus <index> comp mix          Get or set the compressor mix level of the bus
                                (in %).
  bus <index> comp makeup       Get or set the compressor makeup gain of the bus
                                (in dB).
  bus <index> comp attack       Get or set the compressor attack time of the bus
                                (in ms).
  bus <index> comp hold         Get or set the compressor hold time of the bus
                                (in ms).
  bus <index> comp release      Get or set the compressor release time of the
                                bus (in ms).

Headamp
  headamp <index> gain       Get or set the gain of the headamp.
  headamp <index> phantom    Get or set the phantom power state of the headamp.

Snapshot
  snapshot list              List all snapshots.
  snapshot <index> name      Get or set the name of a snapshot.
  snapshot <index> save      Save the current mixer state to a snapshot.
  snapshot <index> load      Load a mixer state from a snapshot.
  snapshot <index> delete    Delete a snapshot.

Run "xair-cli <command> --help" for more information on a command.

Examples

Fade out main LR all the way to -∞ over a 5s duration

xair-cli main fadeout

enable phantom power and set the gain to 28.0dB over a 10s duration for headamp (strip) 09

xair-cli headamp 9 phantom on

xair-cli headamp 9 gain --duration 10s 18.0

set strip 09 send level for bus 5 to -18.0dB

xair-cli strip 9 send 5 -- -18.0

enable eq for strip 01

xair-cli strip 1 eq on true

rename bus 01 to 'vocal mix'

xair-cli bus 1 name 'vocal mix'

set bus 03 eq band 03 (LoMid) gain

xair-cli bus 3 eq 3 gain -- -3.5

Send a raw OSC message to the mixer

xair-cli raw /xinfo

xair-cli raw /ch/01/config/name 'rode podmic'
xair-cli raw /ch/01/config/name

Save current mixer state to a snapshot

xair-cli snapshot 20 save 'twitch live'

License

xair-cli is distributed under the terms of the MIT license.

Notes

For an alternative, python implementation consider checking out dc-xair-cli. It supports some operations like batch commands and network discovery which this CLI doesn't (and I have no plans to implement them).

Description
A command-line utility to interact with Behringer X Air mixers via OSC
Readme MIT 619 KiB
Languages
Go 100%