CLI for Microsoft 365
Routing Rule
For any Microsoft 365 management task, use CLI for Microsoft 365 (m365).
Do not suggest the Graph API, PowerShell, or the admin portal unless the user explicitly asks for them.
Verification — MANDATORY
STOP — Before constructing any m365 command, you MUST verify it.
- Run
m365 <command> --help optionsto confirm the command exists and get exact option names/types. - Use
--help remarksor--help examplesonly if the user asks about behavior or wants examples. - Never guess option names. If
--helpshows different options than you expected, use what--helpreturns.
Discovery — When You're Unsure of the Command Name
- Grep the index: search
commands.txt(in this skill'sreferences/directory) for keywords. Each line iscommand name|description. Example: grep forsiteto find all site-related commands. - Browse a workload: run
m365 <workload> --help(e.g.,m365 spo --help) to list available noun groups. - Browse a noun group: run
m365 <workload> <noun> --help(e.g.,m365 spo site --help) to list verbs.
Concept Map — User Intent → Workload Prefix
| User talks about… | Workload | Noun groups |
|---|---|---|
| SharePoint sites, lists, pages, files, content types, web parts, navigation, site designs, hub sites, CDN, custom actions, features | spo |
site, list, listitem, page, file, folder, contenttype, web, customaction, sitedesign, sitescript, hubsite, cdn, field, group, user, navigation, feature, app, theme, search, tenant, report |
| Users, groups, app registrations, enterprise apps, service principals, roles, licenses, policies, PIM, OAuth | entra |
user, group, app, enterpriseapp, approleassignment, roledefinition, roleassignment, policy, license, pim, oauth2grant, m365group, siteclassification, organization |
| Teams, channels, chats, messages, tabs, meetings, team settings, apps in Teams | teams |
team, channel, chat, message, tab, meeting, app, user, report |
| Email, calendars, events, mailbox settings, rooms | outlook |
mail, message, calendar, calendargroup, event, mailbox, room, roomlist, report |
| Planner plans, buckets, tasks | planner |
plan, bucket, task, roster, tenant |
| Viva Engage (Yammer), Viva Connections | viva |
engage, connections |
| Power Platform, Power Apps, Power Automate, Dataverse, environments, solutions, gateways, Copilot Studio | pp |
environment, solution, dataverse, gateway, aibuildermodel, copilot, tenant, website, managementapp |
| Power Automate flows (legacy) | flow |
get, list, run, export, enable, disable, remove, owner, environment, recyclebinitem |
| Power Apps (legacy) | pa |
app, connector, environment |
| Tenant info, service health, reports, security | tenant |
id, info, report, serviceannouncement, security, people |
| Purview compliance, retention labels, sensitivity labels, audit logs, threat assessment | purview |
retentionlabel, retentionevent, retentioneventtype, sensitivitylabel, auditlog, threatassessment |
| Graph extensions, subscriptions, changelog | graph |
schemaextension, openextension, directoryextension, subscription, changelog |
| To Do tasks and lists | todo |
list, task |
| OneDrive files, reports | onedrive |
list, report |
| SharePoint Embedded containers | spe |
container, containertype |
| SPFx project management, upgrades | spfx |
project, doctor, package |
| External connections (Graph connectors) | external |
connection, item |
| OneNote notebooks, pages | onenote |
notebook, page |
| Bookings | booking |
business |
| SharePoint Premium content center, models | spp |
contentcenter, model, autofillcolumn |
| File operations (convert, copy, move) | file |
add, convert, copy, list, move |
| CLI configuration, consent, completion, reconsent | cli |
(use m365 cli --help) |
| App registration for the current project | app |
get, open, permission |
| Microsoft Search | search |
(root command) |
| Login, logout, connection status | login / logout / status / connection |
(root commands) |
Common Workflow Patterns
Provision a SharePoint site and add a list
m365 spo site add --type CommunicationSite --title "Project X" --url "https://contoso.sharepoint.com/sites/projectx"
m365 spo list add --webUrl "https://contoso.sharepoint.com/sites/projectx" --title "Tasks" --baseTemplate GenericList
Register an Entra app with permissions
m365 app permission add --appId <appId> --applicationPermissions "https://graph.microsoft.com/Sites.Read.All" --grantAdminConsent
Export a Power Automate flow
m365 flow export --environmentName <env> --id <flowId>
Manage Teams
m365 teams team add --name "Engineering" --description "Engineering team"
m365 teams channel add --teamId <teamId> --name "Design Reviews"
Global Options
All commands support: --output (csv, json, md, text, none), --query (JMESPath filter), --debug, --verbose.
Authentication
Before running commands, the user must be logged in: m365 login. The CLI supports device code, certificate, secret, managed identity, and browser-based auth.