docs(add-teams): document Teams CLI as an auto credentials path#2592
Merged
Conversation
- @microsoft/teams.cli registers bots via the Teams Developer Portal, skipping the Azure subscription requirement that blocks users on locked-down corporate tenants
- teams app create prints CLIENT_ID/CLIENT_SECRET/TENANT_ID; the existing Configure environment section expects TEAMS_APP_ID/TEAMS_APP_PASSWORD/TEAMS_APP_TENANT_ID, so without the mapping a user pasting verbatim would silently end up with an adapter that can't authenticate
Collaborator
|
@mmahmed Thanks for the contribution! |
This was referenced May 26, 2026
tamasPetki
pushed a commit
to tamasPetki/nanoclaw
that referenced
this pull request
Jun 4, 2026
docs(add-teams): document Teams CLI as an auto credentials path
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Type of Change
.claude/skills/<name>/, no source changes)Description
What
Adds
@microsoft/teams.clias an "Auto" credential path in.claude/skills/add-teams/SKILL.md, alongside the existing Azure Portal manual path. Step 1–7 of the manual path are untouched.Why
The existing manual path requires three things from Azure that block users on locked-down corporate tenants:
N/A(tenant level account)Entra-only placeholder isn't enough)Microsoft.BotServiceresource provider registered on that subscriptionFor users issued an Entra identity without Azure RBAC (common in enterprise tenants), the manual path errors out at
az provider register --namespace Microsoft.BotServicewithAuthorizationFailedand there's no documented alternative.@microsoft/teams.cliregisters the bot through the Teams Developer Portal instead of Azure Bot Service. It still produces an Entra app, client secret, and bot registration — the three values the existing Chat SDK Teams adapter consumes — but skips the Azure subscription requirement entirely.How
Two H3 sections under
## Credentials:### Auto: Teams CLI— 4 imperative steps: install CLI,teams login,teams app create,Install in Teams. The CLI prints credentials asCLIENT_ID/CLIENT_SECRET/TENANT_ID; the skill includes the mapping to NanoClaw'sTEAMS_APP_ID/TEAMS_APP_PASSWORD/TEAMS_APP_TENANT_IDinline at step 3.### Step 1: ...through### Step 7: ...headings unchanged. A short transition line above Step 1 marks them as the manual Azure Portal path.Both paths hand off to the existing
### Configure environmentsection to write.envand run the container sync.How it was tested
Verified end-to-end on a real Microsoft 365 corporate tenant with no Azure subscription (the exact scenario the manual path can't satisfy):
npm install -g @microsoft/teams.cli@preview→teams login→teams statusconfirmed sideloading enabledteams app create --name "NanoClaw" --endpoint "<tunnel>/api/webhooks/teams"succeeded; CLI created the Entra app, generated a client secret, registered the bot, and printedCLIENT_ID/CLIENT_SECRET/TENANT_IDto stdoutTEAMS_APP_*, were written to.env; the existingmkdir -p data/env && cp .env data/env/envsync line worked unchanged.claude/skills/add-teams/SKILL.md(+41 / -0 across two commits)Re-verified on a fresh clone at
~/nanoclaw-newby running/add-teamsin Claude Code on the PR branch:git fetch origin channels, copiedsrc/channels/teams.ts, appendedimport './teams.js'tosrc/channels/index.ts, ranpnpm install @chat-adapter/[email protected]teams app create --name "NanoClaw" --endpoint "https://<tunnel>/api/webhooks/teams"provisioned a fresh Entra app + client secret + bot registration; the returned values were mapped per the SKILL.md toTEAMS_APP_ID/TEAMS_APP_PASSWORD/TEAMS_APP_TENANT_IDand written into.env;mkdir -p data/env && cp .env data/env/envsynced to the containerFor Skills