🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Skill

by @thomyg

CLI for Microsoft 365 - Manage Microsoft 365 tenant, SharePoint Online, Teams, OneDrive, and more. Official PnP (Patterns and Practices) CLI.

Versionv1.0.1
Downloads1,103
Installs4
TERMINAL
clawhub install m365-pnp-cli

πŸ“– About This Skill


name: m365-pnp-cli description: CLI for Microsoft 365 - Manage Microsoft 365 tenant, SharePoint Online, Teams, OneDrive, and more. Official PnP (Patterns and Practices) CLI. metadata: { "openclaw": { "requires": { "bins": ["m365"], "node": ">=20.0.0", "npmPackages": ["@pnp/cli-microsoft365"] }, "install": [ { "id": "node", "kind": "node", "package": "@pnp/cli-microsoft365", "label": "Install m365 CLI (npm)", "description": "Install the CLI for Microsoft 365 globally: npm install -g @pnp/cli-microsoft365" } ], "homepage": "https://pnp.github.io/cli-microsoft365", "repository": "https://github.com/pnp/cli-microsoft365", "author": "Microsoft PnP (Patterns and Practices)", "keywords": ["microsoft365", "m365", "sharepoint", "teams", "onenote", "outlook", "cli", "microsoft", "pnp"], "npmPackage": "@pnp/cli-microsoft365" } }

m365-pnp-cli Skill

This skill provides access to the CLI for Microsoft 365 – the official PnP (Patterns and Practices) tool for Microsoft 365 management.

⚠️ IMPORTANT FOR AGENTS

When in doubt, ALWAYS call m365 --help first to see all possibilities!

# Always call help when unsure!
m365 --help

For specific commands:

m365 login --help m365 spo --help m365 teams --help

Installation

The CLI must be installed:

npm install -g @pnp/cli-microsoft365

Or use npx (sandbox):

npx @pnp/cli-microsoft365 --help

Source & Verification

  • NPM Package: https://www.npmjs.com/package/@pnp/cli-microsoft365
  • GitHub Repo: https://github.com/pnp/cli-microsoft365
  • Documentation: https://pnp.github.io/cli-microsoft365
  • Author: Microsoft PnP (Patterns and Practices Community)
  • What can the CLI do?

    Supported Workloads

  • Microsoft Teams
  • SharePoint Online
  • OneDrive
  • Outlook
  • Microsoft To Do
  • Microsoft Planner
  • Power Automate
  • Power Apps
  • Microsoft Entra ID
  • Microsoft Purview
  • Bookings
  • And more...
  • Authentication

  • Device Code (default)
  • Username/Password
  • Client Certificate
  • Client Secret
  • Azure Managed Identity
  • Federated Identity
  • Commands (Overview)

    Login/Logout

    m365 login                    # Device Code Login
    m365 logout                  # Logout
    m365 status                  # Check login status
    

    SharePoint Online (spo)

    m365 spo site list           # List all sites
    m365 spo site get --url   # Get site details
    m365 spo list list --webUrl   # Lists in a site
    m365 spo file list           # List files
    m365 spo folder add          # Create folder
    

    Teams

    m365 teams channel list       # List channels
    m365 teams channel get       # Get channel details
    m365 teams user list         # List team members
    m365 teams chat list         # List chats
    m365 teams meeting list      # List meetings
    

    OneDrive

    m365 onedrive drive list    # OneDrive Drives
    m365 onedrive file list     # List files
    m365 onedrive file get      # Get file content
    

    Outlook

    m365 outlook mail list       # List emails
    m365 outlook calendar list   # List calendar events
    

    Planner

    m365 planner task list       # Planner Tasks
    m365 planner plan get        # Get plan details
    

    Azure AD / Entra ID

    m365 entra user list         # List users
    m365 entra group list        # List groups
    m365 entra app list          # List apps
    

    Usage as Assistant - IMPORTANT

    ⚑ First Step: ALWAYS call help!

    # When in doubt - call help first!
    m365 --help

    For specific commands:

    m365 spo --help m365 teams --help m365 login --help

    Basic Usage

    # Login (Device Code Flow)
    m365 login

    Check status

    m365 status

    SharePoint: List sites

    m365 spo site list

    SharePoint: Get specific site

    m365 spo site get --url "https://contoso.sharepoint.com/sites/test"

    Teams: List channels

    m365 teams channel list --teamId

    OneDrive: Files

    m365 onedrive file list

    Outlook: Emails

    m365 outlook mail list --folder Inbox

    Planner: Tasks

    m365 planner task list

    Output Options

    # As JSON (default)
    m365 spo site list

    As text

    m365 spo site list --output text

    Filter with JMESPath

    m365 spo site list --query "[?Template==\GROUP#0\].{Title:Title, Url:Url}"

    Authentication

    The CLI uses Device Code Flow by default:

    m365 login
    

    β†’ You'll receive a code on another device

    β†’ Use that code to authenticate with Microsoft

    For automated scripts, you can also use:

  • Certificate (recommended for production)
  • Client Secret (less secure)
  • Username/Password (testing only)
  • Important

  • WHEN IN DOUBT: call m365 --help!
  • Login required for most commands
  • JSON output is easiest to parse
  • JMESPath for efficient filtering
  • CLI requires Node.js >= 20