npx skills add nanocoai/nanoclaw --skill add-teams --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Adds Microsoft Teams channel support by bringing in the Teams adapter and its tests from a canonical branch, registers the adapter into the core barrel, installs a pinned Teams CLI package, and provides a guided, multi-step workflow to create, register, and wire a Teams bot so the agent can receive messages.
How it works
- Copy the Teams adapter and its registration test from the channels branch into src/channels/ (files: src/channels/teams.ts, src/channels/teams-registration.test.ts) and overwrite existing ones.
- Append a self-registration import to the channel barrel by editing src/channels/index.ts with:
import './teams.js';(only if not already present). - Install the adapter package with a pinned version via
@chat-adapter/teams@4.29.0in a dependency directivenc:dep. - Build and run tests to verify the
createChatSdkBridge(...)core call is guarded and the dependency is installed, then run the integration testsrc/channels/teams-registration.test.tsviapnpm exec vitest run. - Provision credentials and set up a Teams bot using a sequence of interactive prompts and commands embedded as
nc:directives, including:
- Checking for existing credentials in
.env. - Providing a public URL (https endpoint) for
/webhook/teams. - Naming the app (bot) for Entra app registration and Teams app.
- Installing the Teams CLI globally with
npm install -g @microsoft/teams.cli@3.0.2. - Signing in to Microsoft 365 via the Teams CLI and persisting the session.
- Creating the bot with a Teams app, registering the Entra app, and uploading the app package.
- Storing credentials in
.envwith specific variables (TEAMS_APP_ID, TEAMS_APP_PASSWORD, TEAMS_APP_TENANT_ID, TEAMS_APP_TYPE). - Updating app icons to custom assets and wiring the bot to a Teams user (owner) via prompts and guarded steps.
- Installing the app in Teams using the provided install link and confirming the wiring target.
- Creating a 1:1 Bot Framework conversation and enumerating the owner for proper message routing.
When to use it
Use when you want to enable Microsoft Teams channel integration for NanoClaw, using the Teams adapter from the canonical channels branch, and when you are prepared to go through the Teams bot registration and wiring workflow described in the credentials section.
What it can touch
The skill touches the following via explicit commands:
src/channels/teams.tsandsrc/channels/teams-registration.test.ts(copied from channels branch)src/channels/index.ts(appending import)@chat-adapter/teams@4.29.0(dependency)- Build and test commands
pnpm run buildandpnpm exec vitest run src/channels/teams-registration.test.ts - Several
nc:directive blocks for credential provisioning and Teams CLI interactions
Caveats
End-to-end delivery requires a real Teams workspace and a bot registered in Microsoft Entra; the final delivery is manual via a Teams workspace after installation. The credential flow assumes a single-tenant bot and specific environment details (public URL, webhook port 3000). The skill instructs idempotent steps, so re-running is safe.
# Add Microsoft Teams Channel Adds Microsoft Teams support via the Chat SDK bridge — interactive chat in team channels, group chats, and direct messages. NanoClaw doesn't ship channels in trunk — this skill copies the Teams adapter in from the `channels` branch. The mechanical steps under **Apply** carry `nc:` directive fences: an agent reads the prose and applies them, and a parser can apply them deterministically from the same document. Every directive is idempotent, so the whole skill is safe to re-run; anything a parser can't apply falls back to the prose beside it. Teams has no "paste a token" shortcut — a bot has to exist in Microsoft's cloud before it can receive a message. The Microsoft Teams CLI collapses that into one sign-in and one create command: it registers the Entra app, generates the client secret, registers a Teams-managed bot (through the Teams Developer Portal — **no Azure subscription needed**), uploads the app package, and hands back an install link. The old ~7-step Azure portal walk survives only as a fallback in [Alternatives](#alternatives) for tenants where the Developer Portal is blocked. ## Apply ### 1. Copy the adapter and its registration test Fetch th
- Apply
- 1. Copy the adapter and its registration test
- 2. Register the adapter
- 3. Install the adapter package
- 4. Build and validate
- Credentials
- Check for existing credentials
- Public URL
- App name
- Install the Teams CLI
- Sign in to Microsoft 365
- Create the bot
- Store the credentials
- Set the app icons
What does the add-teams skill do?
Add Microsoft Teams channel integration via Chat SDK.
How do I install it?
Run `npx skills add nanocoai/nanoclaw --skill add-teams --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From nanocoai/nanoclaw, a repository with 30,426 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.