Current options in 2026
1. The PWA (most reliable path)
Browse to teams.microsoft.com in Chromium, Chrome, or Edge. Install it as a Progressive Web App from the browser menu (Chromium: three-dot menu → Cast, save, and share → Install Teams; Firefox doesn't support PWA install on desktop).
The PWA gets its own window, its own launcher icon, and runs in a profile-independent browser context. It's the version Microsoft supports most actively — the same code that powers the Windows/macOS "new Teams" client.
2. The community teams-for-linux client
Packaged on most distros and GitHub:
# Via Flatpak (recommended)
flatpak install flathub com.github.IsmaelMartinez.teams_for_linux
# Or Snap
sudo snap install teams-for-linux
# Or from their .deb on GitHub Releases
It's an Electron wrapper around the same web app, with nicer background-notification handling and tray-icon integration than the PWA on most DEs.
3. The old teams apt repository — don't
The original post on this site recommended adding https://packages.microsoft.com/repos/ms-teams and apt install teams. That package (the Electron-based classic Teams for Linux) was deprecated by Microsoft in early 2022 and the repository no longer receives updates. Remove it if you have it — the signing key format was later changed to the modern /etc/apt/keyrings layout, so the old apt-key add method prints warnings on current apt versions too.
# If you added it previously, clean it up:
sudo rm /etc/apt/sources.list.d/teams.list
sudo apt-key list | grep Microsoft # find the Microsoft key
sudo apt-key del <KEY_ID>
sudo apt remove --purge teams
Fixing audio
Both the PWA and teams-for-linux inherit Teams' historical device-detection quirks. Symptoms:
- Other participants can't hear you; mic level stays flat in Teams' device settings even though
arecord -lshows input working. - No audio from call even though YouTube works.
- Teams picks the wrong input when you have multiple mics (integrated + USB headset + HDMI).
The reliable workaround is the same in all cases: use PulseAudio's volume-control app to hide the devices Teams should not pick.
sudo apt install pavucontrol
Open it, go to the Input Devices tab, and click the lock-icon / "Port" dropdown on every device except the one you want Teams to use. Setting a device's port to "Off" makes it invisible to PulseAudio's default-selection logic — which is the logic Teams queries. Repeat on the Output Devices tab for speakers/headphones.
If the system is on PipeWire (the default on Fedora 34+, Ubuntu 22.10+, Debian 12+), pavucontrol still works — PipeWire ships a PulseAudio-compatibility shim. You can also use helvum (a PipeWire-native graph UI) or wpctl status on the command line to see what PipeWire is exposing.
Echo cancellation
Teams on Linux can be noisy for the other end. Enable module-echo-cancel once:
# PulseAudio
pactl load-module module-echo-cancel aec_method=webrtc source_name=echoCancel_source sink_name=echoCancel_sink
# Persist across reboots by adding to ~/.config/pulse/default.pa:
# .include /etc/pulse/default.pa
# load-module module-echo-cancel aec_method=webrtc
Then select echoCancel_source as your input in pavucontrol. Teams only sees and processes the cleaned-up version.
Restart pulseaudio (or wireplumber on PipeWire) before rebooting. Nine times out of ten, "Teams stopped hearing my mic" resolves with systemctl --user restart pipewire wireplumber pipewire-pulse (or pulseaudio -k && pulseaudio --start on the old stack). Keeping a one-liner alias for this saves a lot of meeting awkwardness.