Turn your phone into a Linux microphone
Updated July 21, 2026 · 6 min read
Micstream is a small service that registers a virtual microphone directly with PipeWire, the audio system on every current distribution.
You need three things:
- A distribution with PipeWire (Ubuntu 22.10+/Fedora 36+/Debian 12+/Arch)
- An Android phone (iOS is planned for summer 2026)
- Both devices on the same Wi-Fi network
Setup
- 1
Download Micstream
Grab the package for your distribution:
- micstream-amd64.deb — Debian, Ubuntu, Mint
- micstream-x86_64.rpm — Fedora
- micstream-linux-x64.tar.gz — Arch and any other distro
- 2
Install the Linux client
Debian/Ubuntu/Mint:
sudo apt install ~/Downloads/micstream-amd64.debFedora:
sudo dnf install ~/Downloads/micstream-x86_64.rpm
On Arch and anything else, the downloaded tarball contains an
install.shthat installs to your home directory (no root needed). Arch splits PipeWire's audio plugins into a separate package, so make sure it's present:sudo pacman -S --needed pipewire-audio - 3
Start the service
Enable and start the service. It will also start automatically on every login:
systemctl --user enable --now micstreamIf you installed from the tarball,
install.shhas already done this. - 4
Install the Android app
Install it from Google Play. No account is required.
- 5
Connect the phone
Open the app. It should find your PC automatically as long as both devices are on the same network.
- 6
Pick Micstream as the input
Select Micstream in the microphone settings of the app you're using, or set it system-wide (GNOME: Settings → Sound → Input; KDE: System Settings → Sound). It appears as a normal input device to every application.
Discord and OBS have their own device pickers that override the system default, so select Micstream there directly. There are separate guides for Discord and OBS.
Noise cancellation
The Micstream client comes with DeepFilterNet, a state-of-the-art noise-cancellation engine.
It is enabled by default. To turn it
off:
micstream set noise-suppression=off The setting applies immediately, without a restart, and persists across reboots. The noisier the signal, the more the suppression removes — up to 15 dB by default. If noise still comes through, raise the limit:
micstream set attenuation-limit=20 Processing runs on the computer, not on the phone, so it does not affect the phone's battery.
Configuration
The settings file is: ~/.config/micstream/micstream.conf.
Each line is one KEY=value pair, everything after a # is a comment.
Manual edits of the file take effect after:
systemctl --user restart micstream Only noise-suppression and attenuation-limit apply live through micstream set, all other settings need a restart to take effect.
| Key | Default | What it does |
|---|---|---|
noise-suppression | on | DeepFilterNet noise cancellation, on or off. |
attenuation-limit | 15 | How many dB of noise the suppression may remove at most (10–25). |
noise-model | standard | low-latency switches to a faster model, which isn't bundled: put DeepFilterNet3_ll_onnx.tar.gz into ~/.local/share/micstream. |
update-check | on | Checks once a day for a new release and shows a notification. Updates are never installed automatically. |
telemetry | on | Reliability statistics under a random install id. Only sends packet counters, not audio
- off disables it. |
Everyday use
The client has no window and no tray icon; it runs entirely as a background service. To check its state:
micstream status micstream 1.0.0
phone: connected (192.168.0.42)
virtual mic: live — an app is capturing
noise: active (standard model, limit 15 dB)
buffer: 61 ms buffered, 0 underruns, 0 trims
session: 84210 packets, 3 late, 2 concealed, 0 decode errors The output shows whether a phone is connected, whether an app is currently recording from the
virtual mic, and what noise cancellation is doing. A desktop notification appears when the phone
connects or disconnects. Besides status and set, the only other
commands are --version and --help.
The service
The client is a plain systemd user service, so the usual commands apply:
# restart (needed after hand-editing the config file)
systemctl --user restart micstream
# stop, or stop and keep it off after reboots
systemctl --user stop micstream
systemctl --user disable --now micstream
# follow the logs
journalctl --user -u micstream -f Updates
The client does not update itself. When a new version is released, you get a desktop
notification. Download the new package from the links below and install it the same way as the
first time: sudo apt install ~/Downloads/micstream-amd64.deb (or the rpm
equivalent) upgrades in place, and systemctl --user restart micstream switches to
the new binary. The tarball's install.sh restarts the service itself.
Troubleshooting
Micstream isn't in the input device list
Check that the service is running: systemctl --user status micstream. If it
reports that PipeWire is unreachable, your distribution is likely still on plain PulseAudio;
Micstream needs PipeWire (default since Ubuntu 22.10, Fedora 36, Debian 12). If the log
shows pw_stream_connect failed, your system is missing PipeWire's audio
plugins; on Arch, install the pipewire-audio package. If the device exists but an
app keeps using another mic, select Micstream in that app and restart it. Many apps only scan
for devices at startup.
The app can't find your computer
The phone has to be on the same network as the computer, not on mobile data. Guest networks
often enable AP isolation, which stops devices from seeing each other; switch both to your
main network. If you run a firewall, allow UDP ports 37718–37720: with ufw that is sudo ufw allow 37718:37720/udp; with firewalld, add the ports to your active
zone.
Audio is choppy or delayed
This is almost always a network problem, not a microphone problem. Move closer to the router, or put the desktop on wired Ethernet. The client keeps latency bounded on its own: short outages are concealed, and any backlog left by a congested network is trimmed automatically.
Common questions
Is it free?
The free tier is ad-supported: watching a rewarded ad grants streaming time. A Pro subscription removes the ads and limits.
Which distributions are supported?
Anything with PipeWire and systemd: Ubuntu, Debian, Fedora, Mint, Arch, and derivatives. The package is x86-64; the phone app talks the same protocol to Windows, macOS, and Linux clients, so nothing else changes.
What is the audio quality?
48 kHz stereo end to end, delivered into PipeWire as 32-bit float. Packet loss on the network is concealed by the codec's built-in error correction.
Does it have noise suppression?
Yes. DeepFilterNet is included in every package and on by default. See Noise cancellation above.
Can I use the phone while it's streaming?
Yes. The app runs in the background.
Downloads
- micstream-amd64.deb Debian, Ubuntu, Mint
- micstream-x86_64.rpm Fedora
- micstream-linux-x64.tar.gz Arch & any distro, installs to your home directory
- SHA-256 checksums
And the app: