con un clic
add-teams
Add Microsoft Teams channel integration via Chat SDK.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Add Microsoft Teams channel integration via Chat SDK.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Access comprehensive financial data - stocks, crypto, SEC filings, financial statements, and news via Financial Datasets API. Use for market research, fundamental analysis, and financial insights.
NanoClawd Wallet: self-custodial Solana wallet built into this agent. Every agent gets a unique keypair at birth, stored in its private workspace. Supports SOL transfers, SPL token balances, and token swaps via Jupiter v6. Use for on-chain payments, DeFi swaps, balance checks, and Solana interactions.
Add Bux browser agent to NanoClawd — gives a Clawd agent a real persistent Chromium session via Browser Use Cloud, plus agency Telegram action cards. Use when the user wants their agent to browse the web with a real browser (cookies persist, logins stick) or handle 2FA/CAPTCHA hand-off.
Integrate the OpenClawd Framework (sovereign lobster agents on Solana) into NanoClawd. Wires the Framework's pulse loop, identity, survival mechanics, and $CLAWD token payments into NanoClawd agent groups. Use when setting up a fully sovereign Clawd agent with on-chain identity, self-funding, and autonomous operation.
Launch an Upstash Box pre-packaged with NanoClawd and a Solana wallet at birth. Provisions a cloud box, clones NanoClawd, generates a Solana keypair, configures credentials, and starts the agent — wallet-at-birth, ready to be sovereign. Use when the user wants a one-command cloud NanoClawd deploy with on-chain identity from spawn.
Dark Ralph OODA Loop v0 — paper-trading, devnet-only, stdlib-Python agent that runs a safety-contract OODA cycle (Observe→Orient→Decide→Act) for Pump.fun bonding curves. Zero external deps, kill-switch on consecutive losses.
| name | add-teams |
| description | Add Microsoft Teams channel integration via Chat SDK. |
Connect NanoClawd to Microsoft Teams for interactive chat in team channels, group chats, and direct messages.
NanoClawd doesn't ship channels in trunk. This skill copies the Teams adapter in from the channels branch.
Skip to Credentials if all of these are already in place:
src/channels/teams.ts existssrc/channels/index.ts contains import './teams.js';@chat-adapter/teams is listed in package.json dependenciesOtherwise continue. Every step below is safe to re-run.
git fetch origin channels
git show origin/channels:src/channels/teams.ts > src/channels/teams.ts
Append to src/channels/index.ts (skip if the line is already present):
import './teams.js';
pnpm install @chat-adapter/teams@4.27.0
pnpm run build
Or use Azure CLI:
az group create --name nanoclawd-rg --location eastus
az bot create \
--resource-group nanoclawd-rg \
--name nanoclawd-bot \
--app-type SingleTenant \
--appid YOUR_APP_ID \
--tenant-id YOUR_TENANT_ID \
--endpoint "https://your-domain/api/webhooks/teams"
https://your-domain/api/webhooks/teamsOr via CLI:
az bot msteams create --resource-group nanoclawd-rg --name nanoclawd-bot
Create a manifest.json:
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
"manifestVersion": "1.16",
"version": "1.0.0",
"id": "YOUR_APP_ID",
"packageName": "com.nanoclawd.bot",
"developer": {
"name": "NanoClawd",
"websiteUrl": "https://your-domain",
"privacyUrl": "https://your-domain",
"termsOfUseUrl": "https://your-domain"
},
"name": { "short": "NanoClawd", "full": "NanoClawd Assistant" },
"description": {
"short": "NanoClawd assistant bot",
"full": "NanoClawd personal assistant powered by Claude."
},
"icons": { "outline": "outline.png", "color": "color.png" },
"accentColor": "#4A90D9",
"bots": [{
"botId": "YOUR_APP_ID",
"scopes": ["personal", "team", "groupchat"],
"supportsFiles": false,
"isNotificationOnly": false
}],
"permissions": ["identity", "messageTeamMembers"],
"validDomains": ["your-domain"]
}
Create two icon PNGs (32x32 outline.png, 192x192 color.png), zip all three files together.
Sideload in Teams:
Sideloading requires Teams admin access. Free personal Teams does NOT support sideloading. Use a Microsoft 365 Business account or developer tenant.
By default, the bot only receives messages when @-mentioned. To receive all messages in a channel without @-mention, add RSC permissions to manifest.json:
{
"authorization": {
"permissions": {
"resourceSpecific": [
{ "name": "ChannelMessage.Read.Group", "type": "Application" }
]
}
}
}
Add to .env:
TEAMS_APP_ID=your-app-id
TEAMS_APP_PASSWORD=your-client-secret
# For Single Tenant only:
TEAMS_APP_TENANT_ID=your-tenant-id
TEAMS_APP_TYPE=SingleTenant
Sync to container: mkdir -p data/env && cp .env data/env/env
The Chat SDK bridge automatically starts a shared webhook server on port 3000 (configurable via WEBHOOK_PORT env var). The server handles /api/webhooks/teams for Teams and other webhook-based adapters. This port must be publicly reachable from the internet for Azure Bot Service to deliver activities.
For local development without a public URL, use a tunnel (e.g., ngrok http 3000) and update the messaging endpoint in Azure Bot Configuration.
If you're in the middle of /setup, return to the setup flow now.
Otherwise, run /manage-channels to wire this channel to an agent group.
teamsteams:{base64-encoded-conversation-id}:{base64-encoded-service-url} — auto-generated by the adapter, not human-readable. Use the auto-created messaging group ID for wiring.