Skip to content

microsoft/teams-sdk

Welcome to the Teams SDK (Docs)

Teams SDK represents a fundamental reimagining of how Teams apps and AI agents are built, while maintaining compatibility with existing botframework-based agents. This new version focuses on developer experience, simplified architecture, and enhanced AI capabilities.

For a detailed explanation of the motivations and architectural decisions behind v2, please see our WHY.md document.

We have a new name!

We are very excited to announce that "Teams AI" is now officially "Teams SDK"! This change reflects our commitment to providing a comprehensive development framework for building all types of Teams applications, including AI-powered agents.

Code repositories per SDK language

The SDK code for each language are in individual repos:

For language-specific bugs or issues, please use the Issues tab in the respective language repository.

Agent Accelerator Templates

You can find a set of open-source agent accelerator templates in the Teams Agent Accelerators repository. These templates provide a great starting point for building your own agents using the Teams SDK.

Quick start

The Teams SDK CLI makes it easy to bootstrap your first agent. First, install the CLI via NPM:

npm install -g @microsoft/teams.cli

Next, use the CLI to create your agent:

npx @microsoft/teams.cli new <typescript | csharp | python> quote-agent --template echo

For more information, follow our quickstart guide: C#, Typescript, Python

SDK

Microsoft Teams has a robust developer ecosystem with a broad suite of capabilities, now unified via Teams SDK. Whether you are building AI-powered agents (TS, C#, Python), Message Extensions (TS, C#, Python), embedded web applications, or Graph, Teams SDK has you covered.

Here is a simple example, which responds to incoming messages with information retrieved from Graph.

import { App } from '@microsoft/teams.apps';
import { DevtoolsPlugin } from '@microsoft/teams.dev';
import * as endpoints from '@microsoft/teams.graph-endpoints';

const app = new App({
  plugins: [new DevtoolsPlugin()],
});

// Listen for incoming messages
app.on('message', async ({ userGraph, isSignedIn, send, signin }) => {
  if (!isSignedIn) {
    await signin(); // initiates Entra login flow
    return;
  }
  const me = await userGraph.call(endpoints.me.get);
  await send(`Hello, ${me.displayName} from Earth!`);
});

// Start your application
(async () => {
  await app.start();
})();

For language-specific bugs or issues, please use the Issues tab in the respective language repository.

Important: v1 to v2 Transition Notice

This repository has transitioned from v1 to v2 as the main branch.

  • The main branch now contains v2 code, which was previously developed on the v2-preview branch.
  • The previous main branch (v1) has been moved to the release/v1 branch. We will continue to provide critical bug fixes and security patches for v1 on this branch.

Documentation

For comprehensive documentation, API references, and examples, visit our documentation site.

About

SDK focused on building AI based applications and extensions for Microsoft Teams and other Bot Framework channels

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published