Getting Started
This walks you from nothing to a working Teams voice call with your OpenClaw agent.
Prerequisites
Section titled “Prerequisites”- An OpenClaw install, host
>= 2026.6.10. Follow docs.openclaw.ai. - Microsoft Teams set up as an OpenClaw channel (the chat channel). This plugin adds voice/video on top of it. See the OpenClaw Teams channel docs.
- A StandIn connection. The sandbox is free and needs no Teams bot of your own - perfect for a first call. See Connecting to StandIn.
- For realtime mode, a realtime voice provider key (OpenAI or Azure OpenAI). For streaming mode, your OpenClaw-configured STT/TTS/agent is enough.
1. Install the plugin
Section titled “1. Install the plugin”The one-line installer detects your OpenClaw install and walks you through the config (mode, shared secret, provider key), then prints next steps:
curl -fsSL https://standin.komaa.com/install.sh | bashPrefer to do it by hand?
openclaw plugins install npm:@komaa/openclaw-msteams-bridgeopenclaw gateway restartIt is also on ClawHub: openclaw plugins install clawhub:@komaa/openclaw-msteams-bridge
(OpenClaw falls back to npm automatically). The package ships prebuilt (v0.1.10+) - no build step
either way.
2. Try it on the StandIn sandbox
Section titled “2. Try it on the StandIn sandbox”The sandbox is the fastest path to a first call and needs no Azure/Teams bot of your own:
- Open standin.komaa.com/sandbox and follow it to generate a Teams meeting link. It gives you a shared secret for the session.
- Put that secret in your plugin config as
sharedSecret(below). - Join the meeting yourself; the shared StandIn bot joins and connects to your plugin.
3. Minimal configuration
Section titled “3. Minimal configuration”Config lives under plugins.entries."msteams-voice".config. A minimal realtime setup:
{ "plugins": { "entries": { "msteams-voice": { "config": { "enabled": true, "mode": "realtime", "bindAddress": "0.0.0.0", // so the hosted bridge can reach the plugin "port": 9442, "sharedSecret": "<the secret from StandIn>", "inboundPolicy": "open", // first-call testing; lock down after (see below) "realtime": { "provider": "openai", "providers": { "openai": { "apiKey": "<key>", "model": "gpt-realtime" } } } } } } }}bindAddress: "0.0.0.0"lets the hosted bridge connect (the default127.0.0.1only accepts local connections).sharedSecretmust match the value StandIn uses, or the handshake is rejected.inboundPolicymust be set to receive calls at all: when it is unset, every inbound call is denied.openis fine for the first sandbox call.- Leave
modeout to auto-select: realtime if a provider resolves, otherwise streaming.
See the full Configuration Reference for every option, and Realtime & Streaming Modes for provider setup.
4. Restart and call
Section titled “4. Restart and call”Restart the gateway so the config takes effect:
openclaw gateway restartThen place (or join) the Teams call. You should hear the agent, see its avatar, and - if you turn on your camera or share your screen - it can see you too.