manifest.json and two icons. Every SDK and plugin
uses the same package: it describes the bot identity, not the agent behind it.
Download it from StandIn (recommended)
Download your Microsoft Teams app package
Your StandIn dashboard generates a per-identity app package with your
botId and valid
domains already filled in. Open your identity and click Download Microsoft Teams app package (.zip), then continue to
Upload to Microsoft Teams.The generated package contains no secrets - a Microsoft Teams manifest is public metadata (IDs, names,
icons). Anyone who obtains it can still only reach the bot your tenant consented to.
Example manifest
The example uses obvious placeholders - do not publish with these values.manifest.json
supportsCalling: true (required for voice) and supportsVideo: true
(required for the CVI avatar tile). The resourceSpecific block is per-team consent (RSC) -
granted when the app is installed in a team; it does not replace the tenant-wide
Graph permissions.
Official reference: Microsoft Teams app manifest schema.
Placeholders
Generate GUIDs with
uuidgen (macOS/Linux), [guid]::NewGuid() (PowerShell), or
uuidgenerator.net.
Icons
The package needs a color icon (192×192 px,color.png) and an outline icon (32×32 px,
transparent, outline.png). In the Developer Portal they upload
under Branding; in a manual zip they sit next to the manifest.