An open-source terminal UI for configuring Shure USB microphones and audio interfaces on Linux, macOS, and Windows. A lightweight alternative to the ShurePlus MOTIV desktop app.
Supported devices: MVX2U Gen 1, MVX2U Gen 2, MV6, MV6 Gen 2, MV7, MV7+
- Gain, mute, Auto Level / Manual mode, and monitor mix
- EQ, compressor, limiter, high-pass filter, denoiser, and popper stopper, where the device has them
- Reverb and LED settings on the models that support them
- Real-time level meter with peak hold
- Gain check: speak for 10 seconds and shurectl suggests a gain for your voice
- 4 preset slots, saved as editable TOML files
- Mute, load a preset, change gain, mode or monitor levels, or read the state as JSON from the command line without opening the TUI
Which controls each model has is listed under Device support.
Before using shurectl, update your device's firmware with Shure's MOTIV mobile app.
Arch Linux (AUR) — includes the udev rules; replug the device after installing.
paru -S shurectl # or: yay -S shurectlHomebrew (macOS / Linux) — builds from source, so the first install takes a minute or two.
brew install humblemonk/shurectl/shurectlCargo
cargo install --git https://github.com/Humblemonk/shurectl.gitOn Linux this needs libasound2-dev and libudev-dev (Debian/Ubuntu names). On Windows it
needs the MSVC build tools.
Upgrading? What changed in each release lists new features and fixes, and says when a release needs you to do something after upgrading.
Skip this if you installed from the AUR. Otherwise install the udev rules and replug the device:
sudo curl -fsSLo /etc/udev/rules.d/62-shure.rules \
https://raw.githubusercontent.com/Humblemonk/shurectl/master/62-shure.rules
sudo udevadm control --reload-rules && sudo udevadm triggermacOS and Windows need no setup.
shurectl # Open the TUI; with several devices connected, pick one first
shurectl --list # List detected Shure devices
shurectl --device <path> # Connect to a specific device from --list, by path or serial
shurectl --demo mv7plus # Try the UI without a device: mvx2u, mvx2u-gen2, mv6, mv6-gen2, mv7, mv7plus
shurectl --mute # Toggle mute without launching the TUI (or --mute on / --mute off)
shurectl --mute status # Print "on" or "off", e.g. for a status bar
shurectl --preset 2 # Load preset slot 2 (1-4) without launching the TUI
shurectl --gain +1 # Change gain, mode or a monitor level, or print JSON (see Scripting)| Key | Action |
|---|---|
Tab / Shift+Tab |
Switch section |
↑ / k |
Focus previous control |
↓ / j |
Focus next control |
← / h |
Decrease value |
→ / l |
Increase value |
Enter / Space |
Toggle boolean / cycle option |
f |
Flatten EQ (zero all bands) — EQ tab, MVX2U Gen 1 and Gen 2 in Manual, and MV6 Gen 2 in Advanced tone |
g |
Gain check (Main tab, Manual mode), as Enter on the Level meter does; Esc closes it |
r |
Refresh state from device (reconnects right away if it was unplugged and plugged back in) |
s |
Save preset (on Presets tab, focused slot) |
d / Delete |
Delete preset (on Presets tab, actions row of the focused slot) |
? |
Toggle help overlay |
q / Ctrl+C |
Quit |
The mouse works too: click a tab to switch to it, click a control to select it and click
it again to toggle it, or scroll over a slider to adjust it. Factory Reset still needs Enter
to confirm. Most terminals let you hold Shift to select text while the mouse is captured.
The TUI needs a terminal of at least 80×24. In a smaller one it shows the size it needs, and
only q and Ctrl+C work (Ctrl+C alone while a name is being edited).
On the Presets tab, s saves the current settings into the focused slot, Enter on its
actions row loads it onto the device (leaving mute as it is), and Enter on its name renames it. Each slot is a
hand-editable file, preset_1.toml through preset_4.toml, in:
| Platform | Location |
|---|---|
| Linux | ~/.config/shurectl/presets/ |
| macOS | ~/Library/Application Support/shurectl/presets/ |
| Windows | %APPDATA%\shurectl\presets\ |
For scripts, hotkeys and Stream Deck buttons, each of these opens the device, does one thing and exits:
shurectl --mute toggle # Or on / off; status prints "on" or "off"
shurectl --preset 2 # Load preset slot 2
shurectl --mode toggle # Or auto / manual
shurectl --gain 24 # dB, rounded down to the model's step; +1 / -1 steps
shurectl --monitor-mix 40 # 0-100, or +5 / -5
shurectl --playback-mix 40 # 0-100, or +5 / -5, where the model has it
shurectl --json # The device's state as one line of JSON
shurectl --mode manual --gain 24 --json # Several changes, then the JSONA change the TUI wouldn't make right now, such as gain in Auto Level mode, is refused with the
reason, and a failure exits with status 1 (--json prints {"error": "..."}). With two mics,
pick one by the serial --list shows: --device 3EK26001276. If the TUI is open, press r
there after loading a preset from the command line, and avoid running commands while
recording, since both then talk to the device at once. shurectl --help explains each option.
"Cannot open device" — device not found or a permissions issue.
Run shurectl --list to check detection. On Linux, try sudo shurectl to confirm it's a udev permissions issue. On macOS and Windows, ensure no other software (e.g. ShurePlus MOTIV) has exclusive access to the device.
Header stays [DISCONNECTED] with the device plugged in — shurectl can see the
device but cannot open it. Check the status bar for the reason, then follow "Cannot open
device" above. With two identical devices that report no USB serial number, restart
shurectl with --device.
"Couldn't read a setting" in the status bar — the device didn't answer a query, or
answered with a setting shurectl doesn't know, often after a firmware update. shurectl
sends no changes until a full read succeeds; press r to retry. If it keeps happening,
please open an issue with the message and your firmware version.
No gain slider in Auto Level mode — This is correct hardware behaviour; the device sets its own gain in Auto Level mode, so the slider is hidden. Switch to Manual mode first.
Gain won't change — On the MVX2U Gen 2, MV6 and MV6 Gen 2, check that Gain Lock is off.
MV7: MOTIV stops showing the mic's settings — The MV7 has a single command channel that MOTIV and shurectl share. Quit MOTIV before using shurectl with an MV7; if MOTIV already lost the mic, quit it, replug the mic, and reopen it.
PipeWire/PulseAudio volume vs. device gain — This tool controls the hardware DSP gain on the device itself, not the OS capture volume level. Both can be set independently.
Controls available on each model
✓ = available · Manual / Auto = only in that mode · — = not on this device
| Control | MVX2U Gen 1 | MVX2U Gen 2 | MV6 | MV6 Gen 2 | MV7 | MV7+ |
|---|---|---|---|---|---|---|
| Main tab | ||||||
| Mode (Auto Level / Manual) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Mute | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gain | Manual, 0–60 dB | Manual, 0–60 dB | Manual, 0–36 dB | Manual, 0–36 dB | Manual, 0–36 dB | Manual, 0–36 dB |
| Gain Lock | — | Manual | Manual | Manual | — | — |
| Monitor Mix (0–100%) | ✓ | Mic + Playback Level | Mic + Playback Level | Mic + Playback Level | ✓ | Mic + Playback Level |
| Phantom Power (48V) | ✓ | ✓ | — | — | — | — |
| Config Lock | ✓ | — | — | — | ✓ | — |
| Mic Position (Near / Far) | Auto | — | — | — | Auto | — |
| Auto Tone (Dark / Natural / Bright) | Auto | — | — | — | Auto | — |
| Target Level (Low / Med / High) | Auto | — | — | Auto | — | — |
| Adaptation Rate (Slow / Fast) | — | — | — | Auto | — | — |
| Mic Preset (Speech / Singing / Instrument) | — | — | — | ✓ | — | — |
| EQ tab | ||||||
| 5-band Parametric EQ (−8 to +6 dB) | Manual, 2 dB steps | Manual, 0.5 dB steps | — | Advanced tone, 2 dB steps | — | — |
| Tone (Dark ↔ Natural ↔ Bright slider, 10% steps) | — | Auto | ✓ | Simple tone | — | ✓ |
| EQ Preset (Flat / High Pass / Presence Boost / both) | — | — | — | — | Manual | — |
| Dynamics tab | ||||||
| Limiter | Manual | Manual | — | — | Manual | ✓ |
| Compressor (Off / Light / Medium / Heavy) | Manual | Manual | — | — | Manual | ✓ |
| High-Pass Filter (Off / 75 Hz / 150 Hz) | Manual | ✓ | ✓ | ✓ | — | ✓ |
| Denoiser | — | ✓ | ✓ | ✓, level 1–100% | — | ✓ |
| Popper Stopper | — | ✓ | ✓ | ✓ | — | ✓ |
| Mute Button (Works / Ignored) | — | — | ✓ | ✓ | — | ✓, firmware 1.4.0+ |
| Other tabs | ||||||
| Reverb (Plate / Hall / Studio, intensity 0–100%, output and monitor on/off) | — | — | — | — | — | ✓ |
| LED Panel | — | — | — | — | Live Meter, Night Mode | Behavior, Brightness, Theme, custom RGB |
| Rename device (Info tab) | ✓ | ✓ | ✓ | ✓ | — | ✓ |
| Factory Reset (Info tab) | — | ✓ | — | ✓ | — | ✓ |
| Firmware update check (Info tab) | — | ✓ | ✓ | ✓ | — | ✓ |
Every model also has the level meter, the gain check, presets, an Info tab (serial number, device name,
firmware version), --demo, and the command-line options under Scripting
(--playback-mix where the model has a Playback Level).
- On the MV6 Gen 2, Tone Mode at the top of the EQ tab picks the Tone slider (Simple) or the 5-band EQ (Advanced), as in MOTIV.
- Monitor Mix balances mic against playback in your headphones. On the MVX2U Gen 2, MV6, MV6 Gen 2 and MV7+ it has separate Mic Level and Playback Level sliders, as in MOTIV.
- The level meter reads your system's default input, so set the Shure as the default input (at 100% input volume) for it to match the device.
- Gain check: in Manual mode, select the Level meter on the Main tab and press
Enter, then speak normally for 10 seconds. The Summary makes way for the result: your loudest peak and a gain to try, aiming for peaks around -12 dBFS. Set the gain with←/→, then check again. It listens through the level meter, so it needs the Shure as your default input. - Gain moves in 1 dB steps, except on the MV7, which uses the hardware's own 1.5 dB step.
- On the MVX2U Gen 1 and MV7, the device manages EQ and Dynamics itself in Auto Level mode, so those tabs are locked until you switch to Manual.
- On the MVX2U Gen 1, the EQ also has a master enable and a per-band enable.
- Factory Reset asks for confirmation, and the mic disconnects afterwards.
Build and install steps
git clone https://github.com/Humblemonk/shurectl.git
cd shurectl
cargo build --release
install -m 755 target/release/shurectl ~/.local/bin/ # for your user
sudo install -m 755 target/release/shurectl /usr/local/bin/ # or system-wideOn Linux, install libasound2-dev and libudev-dev first.
On Windows, install Microsoft C++ Build Tools with the "Desktop development with C++" workload, then make MSVC your active toolchain:
rustup default stable-x86_64-pc-windows-msvc
Initial protocol reverse-engineering credit goes to PennRobotics and the shux project (Apache 2.0), without which this tool would not exist. If you find shurectl useful, consider starring their repository. The protocol implementation is based on their published USB HID packet captures and the author's own usbmon captures.
shurectl does not update device firmware. The firmware-update commands are intentionally left out of its protocol implementation, and it never sends them. To update firmware, use ShurePlus MOTIV; the Info tab shows the firmware version your device is running and, at startup, checks Shure's online firmware archive for a newer one.
shurectl is not affiliated with or endorsed by Shure Incorporated.
