Microsoft Teams Channel Integration (add-teams)
Automates the full path of wiring a NanoClaw bot into Microsoft Teams channels, group chats and DMs.
What it does
Adds the Microsoft Teams channel adapter to a NanoClaw install: pulls the adapter and its registration test from the channels branch, appends the self-registration import to the channel barrel, installs @chat-adapter/teams at a pinned version, then builds and runs the integration test.
The credentials flow drives the Microsoft Teams CLI (installed globally via npm): sign in to Microsoft 365, register the Entra app, generate the client secret, register a Teams-managed bot, upload the app package and return an install link — no Azure subscription required. Values land in .env with set-if-absent semantics, and the skill proactively opens the bot↔owner 1:1 conversation so the assistant messages the human first.
Every nc: directive is idempotent, so the whole skill is safe to re-run. A manual Azure Portal fallback covers tenants where the Developer Portal is blocked, and the troubleshooting section handles sideloading policy, AUTH_REQUIRED, 401 pairing mistakes and tunnel URL changes.
Who it's for
- Self-hosters running NanoClaw who want their assistant inside a corporate Teams tenant
- Anyone who'd rather run one CLI command than the classic seven-step Azure portal walk
- Users with a Microsoft 365 Business/EDU/developer tenant and a public HTTPS tunnel (Cloudflare Tunnel, reverse-proxied VPS)
Free personal Teams accounts cannot sideload custom apps and won't work.
Examples
- Team channel assistant: install the bot into a channel, @-mention it for threaded answers, then add RSC permissions so it reads all channel messages without a mention.
- Personal DM assistant: right after install the bot DMs the owner first, so there's no manual bootstrap step.
- Tunnel URL rotation: when your Cloudflare URL changes, run
teams app update <app-id> --endpoint https://new-domain/webhook/teamsinstead of re-running the whole skill.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the .claude/skills/add-teams folder from the GitHub repo nanocoai/nanoclaw into my ~/.claude/skills/add-teams/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/nanocoai/nanoclaw.git && mkdir -p ~/.claude/skills && cp -r nanoclaw/.claude/skills/add-teams ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and clone the repo:
git clone https://github.com/nanocoai/nanoclaw.git - Create the skills folder:
mkdir -p ~/.claude/skills - Copy the skill:
cp -r nanoclaw/.claude/skills/add-teams ~/.claude/skills/- If you already work inside the NanoClaw checkout, the skill is picked up automatically and no copy is needed.
- Prerequisites: a Microsoft 365 Business/EDU/developer account allowed to upload custom apps, plus Node.js/npm and pnpm.
- Start an HTTPS tunnel first:
cloudflared tunnel --url http://localhost:3000and copy the printedhttps://...origin. - Run Claude Code from the NanoClaw project root and ask: "Use the add-teams skill to add the Teams channel" (or pick Teams during
/setup). - Provide the tunnel URL and a bot name, then sign in to Microsoft 365 via browser or device code.
- Open the returned install link to add the app in Teams; after the service restarts, check for the bot's first DM.
- If anything fails, consult the SKILL.md Troubleshooting section (sideloading blocked,
AUTH_REQUIRED, 401 pairing, tunnel changes).