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 shareInstall 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 -l shows 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.

When all else fails

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.