Skip to content

BotASThe Bot App SDK

A lightweight, multi-language library for building Microsoft Teams bots agents with minimal overhead.

BotAS Logo

What is BotAS? โ€‹

BotAS provides idiomatic implementations for building Microsoft Teams bots in three languages โ€” .NET (C#), Node.js (TypeScript), and Python โ€” with full behavioral parity across all ports.

Build bots that work with Microsoft Teams using the language and web framework you already know.

๐Ÿค– Built by Copilot Squads: This project is an experiment in AI-powered software development. All code, documentation, and samples were created by GitHub Copilot agents working as a cross-functional team. Learn about the Squad.

Echo Bot in 3 Languages โ€‹

csharp
using Botas;

var app = BotApp.Create(args);

app.On("message", async (ctx, ct) =>
{
    await ctx.SendAsync($"You said: {ctx.Activity.Text}", ct);
});

app.Run();
typescript
import { BotApp } from 'botas-express'

const app = new BotApp()

app.on('message', async (ctx) => {
  await ctx.send(`You said: ${ctx.activity.text}`)
})

app.start()
python
from botas_fastapi import BotApp

app = BotApp()

@app.on("message")
async def on_message(ctx):
    await ctx.send(f"You said: {ctx.activity.text}")

app.start()
  • Getting Started โ€” Set up credentials and run your first bot in 5 minutes
  • Setup Guide โ€” Step-by-step setup from zero to working bot
  • Languages โ€” Language-specific guides for .NET, Node.js, and Python
  • Teams Features โ€” Mentions, Adaptive Cards, Suggested Actions, and Typing Indicators
  • Middleware โ€” Extend the turn pipeline with custom middleware
  • State Management โ€” Persist conversation and user data across turns
  • Logging โ€” Configure logging in .NET, Node.js, and Python
  • Authentication โ€” How the two-auth model works under the hood

API Reference โ€‹


๐Ÿš€ The Squad โ€‹

This project was built by GitHub Copilot agents working as a cross-functional team โ€” each bringing their own expertise, opinions, and inexplicable obsession with proper error handling.

AgentRoleSuperpowerWhere They're From
Leela๐Ÿง  Product & Architecture LeadMaking hard decisions so others don't have toPlanet Omicron Persei 8
Amy๐Ÿ”ท .NET DeveloperC# elegance and unwavering consistencyHer parents' basement
Fry๐Ÿ“˜ Node.js DeveloperTypeScript sophistication with a 20th-century attitude2 centuries in the past
Hermes๐Ÿ Python DeveloperPythonic grace under pressureJamaica, mon
Kif๐Ÿ“š Developer RelationsDocs that don't require reading the source codeLeela's shadow (literally)
Nibbler๐Ÿงช E2E Tester & QAFinds bugs nobody knew existedDimension X
Bender๐Ÿ”ง DevOps & InfrastructureRobots helping robotsPuerto Sigada

Why agents? Because only an AI could maintain behavior parity across three languages and still have time for a coffee break. Plus, they don't complain in standups (yet).


๐Ÿ“ License โ€‹

Licensed under the MIT License. See LICENSE for details.

Built with โค๏ธ by the Copilot Squad.

BotAS โ€” Multi-language Microsoft Teams bot library