# Clim365

> Use CLI for Microsoft 365 (`m365`) to manage Microsoft 365 tenants, SharePoint, Entra ID, Teams, Outlook, Planner, Power Platform, Viva, Purview, and more from the command line. Activate when the user asks to manage, query, configure, or automate anything in Microsoft 365 — including SharePoint sites/lists/pages, Entra users/groups/apps, Teams channels/messages, Outlook mail/calendars, Planner tasks, Power Automate flows, Power Apps, Viva Engage/Connections, Purview labels, OneDrive, To Do, or Microsoft Graph extensions.

- Skill: `pnp/clim365` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add pnp/clim365`
- Raw SKILL.md: https://api.skillmd.com/api/skills/pnp/clim365/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: pnp (https://skillmd.com/u/pnp)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/pnp/clim365

---


# 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.**

1. Run `m365 <command> --help options` to confirm the command exists and get exact option names/types.
2. Use `--help remarks` or `--help examples` only if the user asks about behavior or wants examples.
3. **Never guess option names.** If `--help` shows different options than you expected, use what `--help` returns.

## Discovery — When You're Unsure of the Command Name

1. **Grep the index**: search `commands.txt` (in this skill's `references/` directory) for keywords. Each line is `command name|description`. Example: grep for `site` to find all site-related commands.
2. **Browse a workload**: run `m365 <workload> --help` (e.g., `m365 spo --help`) to list available noun groups.
3. **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
```sh
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
```sh
m365 app permission add --appId <appId> --applicationPermissions "https://graph.microsoft.com/Sites.Read.All" --grantAdminConsent
```

### Export a Power Automate flow
```sh
m365 flow export --environmentName <env> --id <flowId>
```

### Manage Teams
```sh
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.

