Skip to main content

OSO MS Teams CLI

A fast, single-binary Microsoft Teams CLI built in Rust. Every command is designed for automation: structured JSON output, deterministic exit codes, stderr logging, and predictable authentication behavior.

OSO MS Teams CLI uses delegated Microsoft Graph auth for normal user actions. By default, teams auth login and teams auth login --device-code use OSO's multi-tenant public client app with the organizations authority. Customer-owned Entra apps remain supported with --client-id, --tenant-id, and profile configuration.

Client credentials are supported only for Microsoft Graph operations that explicitly support application permissions. They are not the normal model for live Teams chat or channel message posting. For unattended service-identity posting, the product direction is a Teams app/bot mode, not app-only Graph message sends.

Choose Your Path

Quick Example

teams auth login --device-code
teams team list --output json
teams message send --team "$TEAM_ID" --channel "$CHANNEL_ID" --body "Deploy complete."

Agent Contract

Agents should branch on exit code first, then parse the JSON envelope. Successful output has success: true, data, and metadata. Errors have success: false, a stable error code, and a deterministic process exit code.

See JSON envelope, exit codes, and CLI reference.

Disclaimer

Not affiliated with Microsoft

OSO MS Teams CLI is an independent open-source project. It is not affiliated with, endorsed by, or sponsored by Microsoft Corporation. Microsoft, Microsoft Teams, and Microsoft Graph are trademarks of the Microsoft group of companies.

Enterprise help

Need approval paths, BYO app setup, audit logging, or support for a controlled rollout? Talk to OSO about enterprise onboarding.