Crew can run as a Microsoft Teams bot. DM your agent from Teams with streaming replies and a typing indicator.
The Microsoft Bot Framework pushes activities to an endpoint you host. Crew:
POST /api/messaging/teamsAuthorization: Bearer <jwt> against Bot Framework signing keys before processing200, runs the agent turn in the background, then sends the reply via the Bot Connector REST APIpip install "kirocrew[teams]"https://<your-host>/api/messaging/teamsThen side-load a Teams app package (Developer Portal → new app → Bot with your App ID, scope Personal) and DM the bot.
In ~/.kiro/crew/.env:
MICROSOFT_APP_ID=<your app id> MICROSOFT_APP_PASSWORD=<your client secret> MICROSOFT_APP_TENANT_ID=<tenant id or leave unset>
In ~/.kiro/crew/config.json:
{ "teams": { "enabled": true, "allowed_emails": ["you@yourcompany.com"] } }
Install the Teams extra: pip install "kirocrew[teams]"
Then: kirocrew restart
| Command | Effect |
|---|---|
/new | Fresh conversation |
/compact | Compress context |
/help | List commands |
| Key | Default | Purpose |
|---|---|---|
teams.enabled | false | Turns the channel on |
teams.allowed_emails | [] | UPNs/emails/object IDs allowed (empty = nobody) |
teams.soft_threshold_pct | 80 | Context % where bot suggests /compact |
teams.hard_threshold_pct | 95 | Force-compact threshold |
| Problem | Fix |
|---|---|
| 401 on inbound requests | App ID or secret is wrong; check Azure Bot registration |
| Bot doesn't respond | Confirm allowed_emails includes your UPN or object ID |
kirocrew[teams] not installed | Install with pip install "kirocrew[teams]" |
| No green badge in Settings | Outbound credential validation failed — check App ID/Password |
Teams