teams-for-linux is an unofficial, community-maintained Electron desktop client for Microsoft Teams, specifically targeting Linux desktop integration gaps. It wraps the Teams web SPA, adding native features like tray icons, system notifications, WebAuthn/FIDO2 hardware key support, MQTT home-automation integration, multi-account profile switching, custom themes/backgrounds, and an advanced configuration system with deprecation management. The architecture is modular, with a main process (Electron) coordinating IPC-secured preload scripts that inject browser tools into the Teams page. Key subsystems include a centralized config schema (single source of truth), a profile manager for isolated WebContentsView-based accounts, D-Bus and MQTT bridges for external control, and an extensive suite of unit and Playwright e2e tests. The project follows a rigorous ADR-driven decision process, automated release-please releases, and cross-distro Docker-based testing. While tightly coupled to the Teams web app's DOM and internal APIs, the codebase demonstrates high engineering craftsmanship with clear separation of concerns, security hardening (IPC allowlist, PII sanitization), and reusable patterns (secure dialogs, browser tool init pattern).
This repository contains the Microsoft 365 Agents SDK and samples for building conversational agents deployable to Microsoft 365 channels (Teams, Copilot Studio, web chat) and custom channels. The SDK is AI-service agnostic, allowing integration of any AI model or service. Samples demonstrate common agent patterns including welcome messages, tool usage (dice roller, inventory, weather lookup), streaming responses, authentication (OBO, auto sign-in), observability (OpenTelemetry), and integrations (Genesys, Slack, Semantic Kernel, LangChain). The architecture follows a consistent pattern across languages: initialize storage, connection manager, adapter, and authorization; instantiate AgentApplication; register event handlers; start server. Entry points vary by language (Program.cs for .NET, src/index.ts for Node.js, src/main.py for Python). External dependencies include Microsoft Graph, GitHub API, Azure OpenAI, and various agent frameworks.
python-o365 is a mature Python library that provides a comprehensive, object-oriented wrapper around the Microsoft Graph API. It enables developers to programmatically access and manage Microsoft 365 services including Outlook email and calendar, OneDrive and SharePoint files, Teams chats and presence, Planner tasks, directory users and groups, and more. The library abstracts OAuth2 authentication (supporting authorization code, public client, and client credentials flows) and handles token refresh, pagination, and API versioning internally. It is designed as a client-side SDK, not a server application, and can be embedded into scripts, web applications (e.g., Flask), or automation workflows.