Native Linux client for WO Mic (Android & iOS) with a gorgeous GTK4 + Libadwaita interface.
WO Mic is a great app that turns your phone into a wireless microphone, but its Linux support is practically non-existent. The official CLI client is closed-source, hard to set up, requires obsolete ALSA loopback kernel modules, and offers no visual feedback.
YuMic is a modern, open-source alternative written in Rust. It provides a clean GTK4 UI with live audio metering, automatic PipeWire virtual microphone routing, system tray integration, and auto-reconnect.
- Real-time Opus Decoding — 48kHz mono Opus stream decoded with zero errors
- GTK4 + Libadwaita UI — Native look on GNOME, KDE, and other modern desktops
- Custom Cairo Audio Meter — Gradient-colored level bar with peak hold
- System Tray — Minimize to tray via pure DBus SNI (
ksni), right-click menu for quick actions - PipeWire Integration — Automatic virtual source creation and cleanup
- Auto-reconnect — Watchdog detects connection loss and reconnects automatically
- Settings Persistence — Saves IP, ports, theme, and auto-connect to
~/.config/yumic/config.toml - Theme Switcher — System / Light / Dark
| Method | Command |
|---|---|
| AUR (Arch/Manjaro/CachyOS) | yay -S yumic-server |
| AppImage | Download from Releases |
| Build from source | See below |
yay -S yumic-serverDownload the .AppImage from Releases, then:
chmod +x YuMic-*.AppImage
./YuMic-*.AppImageDependencies:
| Distro | Command |
|---|---|
| Arch | sudo pacman -S --needed rustup opus libadwaita pkg-config |
| Fedora | sudo dnf install cargo opus-devel libadwaita-devel pkgconf-pkg-config |
| Ubuntu/Debian | sudo apt install cargo rustc libopus-dev libadwaita-1-dev pkg-config |
Build & install:
git clone https://github.com/Excez0/yumic-server.git
cd yumic-server
./install.shThis compiles in --release mode, installs the binary to ~/.local/bin/, and adds a desktop entry with icon.
YuMic uses UDP port 49152 for audio. Allow it in your firewall:
# ufw
sudo ufw allow 49152/udp
# firewalld
sudo firewall-cmd --permanent --add-port=49152/udp && sudo firewall-cmd --reload- Open WO Mic on your phone, set transport to Wi-Fi, and tap play. Note the IP address.
- Launch YuMic on Linux (from app menu or
yumic-serverin terminal). - Enter your phone's IP and click Connect.
- Select YuMic_Microphone in Discord, OBS, Zoom, or your system audio settings.
./uninstall.shYuMic implements the binary WO Mic protocol from scratch:
TCP Handshake (port 8125):
| Cmd | Byte | Description |
|---|---|---|
| Hello | 0x65 |
Client sends [04, 04, 06, 02, 00, 00], phone echoes back |
| Set Media | 0x66 |
Client sends UDP port as big-endian u16 |
| Start | 0x67 |
Client requests stream start |
| Heartbeat | 0x69 |
Sent every 1s to keep connection alive |
UDP Audio (port 49152):
- 11-byte header followed by Opus payload
- Byte 11 (
0xF8): Opus TOC — CELT 48kHz, 20ms frame, mono - Stripping 11 bytes yields a clean Opus frame
Contributions are welcome! Open an issue for bugs or feature requests, or submit a pull request.
If you find YuMic useful, consider supporting development:


