Microsoft Teams Meetings Plugin for OpenClaw
Learn how to configure the teams-meetings plugin to join Microsoft Teams work or consumer meetings as a guest via Chrome. Covers setup, audio requirements, and node configuration for macOS and Linux.
Read this when
- You want an OpenClaw agent to join a Microsoft Teams meeting
- You need Teams-specific guest policy or manual-action guidance
The teams-meetings plugin lets OpenClaw join Microsoft Teams meetings as a guest through its Chrome profile. Work-related links are accepted under teams.microsoft.com/l/meetup-join/..., while consumer links fall under teams.live.com/meet/.... Meeting creation, dial-in, Microsoft Graph calls, and audio or video recording are not part of its functionality.
Setup
For talk-back, the shared meeting-plugin audio setup applies: BlackHole 2ch paired with SoX on macOS, or PipeWire-Pulse combined with pactl/pacat/parec on Linux.
openclaw plugins install @openclaw/teams-meetings
openclaw gateway restart
brew install blackhole-2ch sox
sudo reboot
system_profiler SPAudioDataType | grep -i BlackHole
command -v sox
On Linux, confirm the PipeWire-Pulse session for the desktop user instead:
pactl info
command -v pactl pacat parec
Once installed, the plugin is active by default. To change its behavior, add a configuration entry, then verify the setup:
{
plugins: {
entries: {
"teams-meetings": {
config: {
defaultMode: "agent",
chrome: { guestName: "OpenClaw Agent" },
},
},
},
},
}
To disable the plugin, run openclaw plugins disable teams-meetings.
openclaw teamsmeetings setup
openclaw teamsmeetings join 'https://teams.microsoft.com/l/meetup-join/...'
Chrome and its native virtual-audio backend can be executed on a paired macOS or Linux node via chromeNode.node. That node must permit teamsmeetings.chrome and browser.proxy; backend configuration and any generated commands are resolved there, not on the Gateway host.
Modes
| Mode | Behavior |
|---|---|
agent | Realtime transcription consults the configured OpenClaw agent; TTS replies. |
bidi | A realtime voice model listens and replies directly. |
transcribe | Observe-only join with live-caption transcript snapshots. |
In every mode, Teams live captions turn on after admission, allowing OpenClaw to save notes tied to each speaker. The transcript action returns the limited live buffer solely for transcribe sessions. When you leave, the durable transcript and its derived summary are stored by OpenClaw in the shared state database; use openclaw transcripts to list or export them.
Durable notes are on by default. Setting transcripts.enabled: false turns them off globally; explicit transcribe mode still reveals only its bounded live tail.
Guest join limits
The browser adapter handles the app interstitial dismissal, guest-name entry, camera off, microphone configuration for the chosen mode, and join button click. Hang-up control tracks in-call state; lobby, tenant sign-in, and device-permission states return clear manual-action reasons. Redirects from consumer meeting launchers and the BlackHole 2ch (Virtual) labels Chrome displays are supported.
Tenant policy in Teams may demand sign-in, email verification, or organizer approval. Finish that step inside the OpenClaw Chrome profile, then retry status or speech. Tenant policy is not bypassed by the plugin.
Live validation of the consumer Teams web client covered the app interstitial, guest-name entry, prejoin microphone/camera toggles, join, lobby admission, media permissions, in-call detection, live captions, BlackHole input/output routing, leave, and post-call detection. Work tenants may enforce different sign-in, email-verification, admission, and leave-confirmation rules; complete any reported manual action in the OpenClaw Chrome profile.
Tool and gateway surface
The teams_meetings agent tool provides join, leave, status, transcript, and speak. Gateway methods carry the teamsmeetings.* prefix, and the node command is teamsmeetings.chrome.