Show HN: Unofficial cross-platform Shure MV client
An open-source terminal UI configurator for Shure USB audio interfaces and microphones, supporting Linux, macOS, and Windows. Replaces the official ShurePlus MOTIV Desktop app.
Uh oh!
There was an error while loading. Please reload this page.
Notifications You must be signed in to change notification settings
Fork 4
Star 17
BranchesTags
Open more actions menu
Folders and files
NameName
Last commit message
Last commit date
Latest commit
History
76 Commits
76 Commits
.github
.github
images
images
src
src
.gitignore
.gitignore
62-shure.rules
62-shure.rules
CLAUDE.md
CLAUDE.md
CONTRIBUTING.md
CONTRIBUTING.md
Cargo.lock
Cargo.lock
Cargo.toml
Cargo.toml
LICENSE
LICENSE
README.md
README.md
Repository files navigation
An open-source terminal UI configurator for Shure USB audio interfaces and microphones on Linux, macOS, and Windows. Replaces the Windows/Mac-only ShurePlus MOTIV Desktop app.
Supported Devices
MVX2U Gen 1 — Digital Audio Interface
MVX2U Gen 2 — Digital Audio Interface
MV6 — USB Gaming Microphone
MV7+ — USB/XLR Dynamic Microphone
Features
All Devices
Gain Control — Auto Level / Manual toggle
Mic Mute — toggle mute
Monitor Mix — mic vs. playback blend slider
Compressor — Off / Light / Medium / Heavy
High-Pass Filter — Off / 75 Hz / 150 Hz
Real-time Level Meter — dBFS input meter with peak-hold display
4 Preset Slots — save and load named presets stored as TOML in ~/.config/shurectl/presets/
Device Info — factory serial number, device name, and firmware version
Demo mode — run without a device plugged in (--demo)
MVX2U Gen 1
Gain range — 0–60 dB
Phantom Power — 48V on/off; warns if enabled when muting ribbon mics
5-band Parametric EQ — per-band enable, gain (−8 to +6 dB in 2 dB steps)
Limiter — enable/disable
Panel Lock — lock the physical panel controls on the device
Auto Level controls — mic position (Near/Far), tone (Dark/Natural/Bright), gain environment (Quiet/Normal/Loud)
MVX2U Gen 2 - Builds on Gen 1 features with the following
5-band Parametric EQ — gain (−8 to +6 dB in 0.5 dB steps)
Tone — Dark / Natural / Bright
Real-time Denoiser — enable/disable
Popper Stopper — enable/disable
Gain Lock — hardware freeze of the gain control (Manual mode only)
MV6
Gain range — 0–36 dB
Tone — Dark / Natural / Bright
Real-time Denoiser — enable/disable
Popper Stopper — enable/disable
Mute Button Disable — prevent accidental mutes
Gain Lock — hardware freeze of the gain control (Manual mode only)
MV7+ - Builds on MV6 features with the following
Reverb — output and monitor enable/disable; Type: Plate / Hall / Studio; Intensity: 0–100%
LED Panel — Behavior (Live / Pulsing / Solid), Brightness (Low / Med / High / Max), theme and custom RGB color per mode
Platform Setup
Linux — udev Rules (Required for Non-Root Access)
Without a udev rule, /dev/hidrawN for the device is only accessible by root.
Create /etc/udev/rules.d/62-shure.rules:
ACTION!="remove", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="14ed", ATTRS{idProduct}=="1013", TAG+="uaccess" ACTION!="remove", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="14ed", ATTRS{idProduct}=="1033", TAG+="uaccess" ACTION!="remove", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="14ed", ATTRS{idProduct}=="1026", TAG+="uaccess" ACTION!="remove", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="14ed", ATTRS{idProduct}=="1019", TAG+="uaccess"
Then reload udev and replug your device:
sudo udevadm control --reload-rules sudo udevadm trigger
Verify the device appears:
shurectl --list
Found 1 Shure device(s):
/dev/hidraw2 | Shure MVX2U Gen 2 | S/N: MVX2U GEN 2#2-a646351d...
macOS — No Runtime Setup Required
On macOS, IOKit grants user-space access to HID devices without extra configuration. Plug in your device and run shurectl --list to confirm detection.
Windows — No Runtime Setup Required
Windows grants user-space HID access out of the box via the setupapi backend — no driver installation or equivalent of a udev rule is needed. Plug in your device and run shurectl --list to confirm detection. Device paths look like \\?\HID#VID_14ED&PID_1026&... rather than /dev/hidrawN.
Building from source requires the MSVC toolchain. Install Microsoft C++ Build Tools with the "Desktop development with C++" workload, then ensure MSVC is your active rustup toolchain:
rustup default stable-x86_64-pc-windows-msvc
Installing
From source
git clone https://github.com/Humblemonk/shurectl.git cd shurectl cargo build --release
The binary will be at target/release/shurectl.
To install system-wide:
sudo install -m 755 target/release/shurectl /usr/local/bin/
Or for your user only:
install -m 755 target/release/shurectl ~/.local/bin/
Via cargo install
cargo install --git https://github.com/Humblemonk/shurectl.git
Usage
shurectl # Connect to first detected device and launch TUI shurectl --device # Connect to a specific device (use --list to find paths) shurectl --demo # Run without a device (explore the UI) shurectl --list # List detected Shure devices and exit shurectl --mute # Toggle mute without launching the TUI shurectl --mute on # Mute shurectl --mute off # Unmute
Keyboard Shortcuts
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, Gen 1 and Gen 2 only
r Refresh state from device
s Save preset (on Presets tab, focused slot)
d Delete preset (on Presets tab, focused slot)
? Toggle help overlay
q / Ctrl+C Quit
Presets
Presets are stored as human-readable TOML files in ~/.config/shurectl/presets/:
~/.config/shurectl/presets/ ├── preset_1.toml ├── preset_2.toml ├── preset_3.toml └── preset_4.toml
Each file captures all configurable DSP settings (gain, mode, EQ, dynamics, monitor mix, etc.) but not hardware-identity fields like serial number or firmware version. Files are hand-editable.
On the Presets tab:
Navigate to a slot with ↑/↓
Press Enter on the name field to rename it (type, then Enter to confirm or Esc to cancel)
Press Enter on the actions row to load a filled preset — all settings are applied to the device immediately
Press s to save the current device state into the focused slot
Press d to delete the focused slot
Troubleshooting
"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.
Gain slider is greyed out in Auto Level mode — This is correct hardware behaviour; the device ignores gain commands in Auto Level mode. Switch to Manual mode first.
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.
Acknowledgements
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.
This project was developed with the assistance of Claude (Anthropic) as a pair-programmer throughout: writing and reviewing Rust code, reasoning about the HID protocol, and catching issues during implementation. All code was reviewed and tested by the author before merging.
Legal
Protocol implementation is based on publicly documented USB HID packet captures by PennRobotics (shux project, Apache 2.0) as well as author's own usbmon captures. No Shure software was used, decompiled, or examined in the creation of this tool.
shurectl is not affiliated with or endorsed by Shure Incorporated.
About
A terminal UI configurator for Shure audio interfaces and mics. Replaces the Windows/Mac-only ShurePlus MOTIV Desktop app
Topics
audio
rust
microphone
podcasting
xlr
streaming-audio
linux-audio
motiv
shure
audio-interface
mvx2u
mvx2u-gen-2
Resources
Readme
License
GPL-3.0 license
Contributing
Contributing
Uh oh!
There was an error while loading. Please reload this page.
Activity
Stars
17 stars
Watchers
0 watching
Forks
4 forks
Report repository
Releases 12
v2.5.0
Latest
Jun 25, 2026
+ 11 releases
Sponsor this project
Uh oh!
There was an error while loading. Please reload this page.
thanks.dev/u/gh/humblemonk
Learn more about GitHub Sponsors
Packages 0
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Contributors
Uh oh!
There was an error while loading. Please reload this page.
Languages
Rust 100.0%