All-in-one Microsoft Teams bot powered by OpenAB + Kiro. Deploys the OAB agent and the Teams gateway together — register a Bot Framework app, paste the messaging endpoint, and you're done. No separate gateway setup, no manual config.toml edits. Source: https://github.com/openabdev/openab

One-click OpenAB deployment for Microsoft Teams — bot agent + Bot Framework gateway bundled together. Register a bot in Azure, paste the messaging endpoint, you're done.
MS Teams ──Bot Framework──▶ ┌──────────────────┐ ◀──WebSocket── ┌────────────┐
│ openab-gateway │ │ openab │
│ (teams only) │ │ (Kiro CLI) │
└──────────────────┘ └────────────┘
public HTTPS internal only
Prerequisites: Azure account with permission to register Bot Service / App Registrations, and a Microsoft 365 tenant where you can sideload or publish a Teams app. Personal Microsoft accounts (Hotmail / Live) typically cannot register Azure Bot Service resources — use an Azure AD work/school account.
| Service | Purpose | Public |
|---|---|---|
openab | OAB agent running Kiro CLI | No |
openab-gateway | Teams Bot Framework → WebSocket bridge | Yes (auto HTTPS) |
No PVC sharing, no manual config.toml edits. The agent's config.toml is generated on first boot with the gateway URL pre-wired to ws://openab-gateway:8080/ws and platform = "teams".
If you have a paid Kiro subscription, go to kiro.dev → Settings → API Keys → create a key and paste it into KIRO_API_KEY. Free tier users skip this and authenticate post-deploy in step 5.
Click deploy with the App ID + App Secret filled in. A public HTTPS domain is auto-assigned to the gateway service.
Bot Framework has no setEndpoint API — paste the URL in Azure Portal.
https://your-gateway.zeabur.app).https://<YOUR_GATEWAY_DOMAIN>/webhook/teamsThe openab-gateway service Instructions section shows the exact messaging endpoint pre-filled.
Skip if you set KIRO_API_KEY in step 2.
After the openab service is running, open its terminal in Zeabur Dashboard and run:
runuser -u agent -- kiro-cli login --use-device-flow
Follow the URL and code to authorize in your browser.
Detailed guide: docs/msteams-selfhosted.md.
Open Teams → DM the bot or @mention it in a channel where the app is installed. Gateway receives the activity, forwards to OAB, OAB replies via Bot Framework reply API.
/home/agent/.config/openab/config.toml — OAB config (sessions, reactions, etc.). Created on first boot from a built-in template with the [gateway] block pre-wired. To regenerate, delete and restart.stable channel (ghcr.io/openabdev/openab:stable) and auto-updates with each OpenAB stable release. Gateway is pinned at ghcr.io/openabdev/openab-gateway:0.5.1 (no :stable tag yet). To pin or bump, change the tag in Zeabur Dashboard → Service → Settings. Available tags: OpenAB / Gateway.TEAMS_ALLOWED_TENANTS=<tenant-id-1>,<tenant-id-2> on openab-gateway to only accept activities from specific Microsoft 365 tenants (defense-in-depth on top of multi-tenant App ID).Bot Framework requires the messaging endpoint to be set in the Azure portal manually — there's no programmatic API to update it. The bundle pre-fills the URL in the gateway's Instructions section; you paste it once.
This bundle uses Kiro as the default agent. For Claude / Codex / Cursor / Gemini / OpenCode / Hermes / Grok, deploy the corresponding bot template separately together with the standalone OpenAB Gateway.
See OpenAB Telegram Bundle / Feishu Bundle / LINE Bundle / WeCom Bundle or the standalone OpenAB Gateway for Google Chat.