Skip to main content
Teams Voice Plugin (StandIn) gives your AI agent a Conversational Video Interface (CVI) inside Microsoft Teams: it answers and places calls, sees the caller’s camera and screen-share, converses in real time, and appears as a lip-synced animated avatar - a genuine stand-in that joins 1:1 and group meetings, speaks only when addressed, and handles Teams chat. All over recording-gated, allowlisted, HMAC-authenticated transport. It ships as seven backends - two plugins that drop into an agent framework you already run, and five standalone bridges that connect a hosted, room-based, or speech-to-speech agent platform. Pick the one that matches your stack:

OpenClaw plugin

@komaa/openclaw-msteams-bridge - TypeScript plugin for OpenClaw, via openclaw plugins install.

Hermes plugin

hermes-msteams-bridge - Python plugin for Hermes Agent, via pip / uv.

ElevenLabs bridge

Put a hosted ElevenLabs agent on Teams calls. Node @komaa/elevenlabs-msteams-bridge or Python elevenlabs-msteams-bridge.

LiveKit bridge

Dispatch any LiveKit agent (incl. avatar agents) into Teams calls. Node @komaa/livekit-msteams-bridge or Python livekit-msteams-bridge.

OpenAI bridge

Put an OpenAI Realtime agent (gpt-realtime, speech-to-speech) on Teams calls, with extensible tools and MCP. Node @komaa/openai-msteams-bridge.

Deepgram bridge

Put a Deepgram Voice Agent (Nova STT + LLM + Aura TTS) on Teams calls, copy-only at 16 kHz. Node @komaa/deepgram-msteams-bridge or Python deepgram-msteams-bridge.

Cartesia bridge

Put a Cartesia Line agent (your agent code on Cartesia’s platform) on Teams calls, verbatim at 16 kHz. Node @komaa/cartesia-msteams-bridge or Python cartesia-msteams-bridge.

The three CVI pillars

A Teams call becomes a true two-way video conversation: the agent watches what you show, talks with you in real time, and appears as an animated face.

Capabilities

  • 🎙️ Two dialogue modes - realtime speech-to-speech (OpenAI / Azure) or streaming STT→agent→TTS (any provider). Modes →
  • 👁️ Vision - camera + screen-share, continuous ambient frames, retroactive keyframe history, budget-capped.
  • 🧑‍🤝‍🧑 Group/meeting etiquette - silent until addressed by a wake phrase, with a follow-up window; 1:1 always answers; per-speaker attribution.
  • 📞 Outbound “call me back” - speaks the result then hangs up; voicemail fallback when unanswered.
  • 📝 Meeting recap & minutes - key points / decisions / action items, plus an on-demand .docx with per-person attribution.
  • 🪄 Avatar driver cues - expression, viseme lip-sync, picture-in-picture image sharing.
  • 🛡️ Chat governance - “Ask about this” message action, voice-message transcription, audit-log mirror, outbound DLP redaction.
  • 🔐 Secure transport - HMAC handshake (replay-proof), caller allowlist (closed by default), recording-status gate before any media is processed.

How it fits together

The Teams call media and avatar rendering are handled by StandIn, a hosted service at standin.komaa.com - create an account (a paid plan, the free BYO-bot identity, or the no-Azure sandbox - see Free identity vs Sandbox), connect your Teams bot, and StandIn’s managed bridge connects to your plugin. The plugin is the cross-platform brain
  • dialogue, perception, group logic, governance, and the avatar cues. No media infrastructure for you to run. Architecture →
This plugin layers voice/video (CVI) on top of each runtime’s existing Teams chat channel:

OpenClaw Teams channel

The OpenClaw msteams chat channel docs.

Hermes Agent Teams

The Hermes Agent Teams messaging docs.

Quickstart

Install, configure, place a test call.

Modes

Realtime vs. streaming - when to use each.

Features

Vision, group gating, outbound, recap, security.