Awesome Open Source
Awesome Open Source

CLI for Microsoft 365
CLI for Microsoft 365

One CLI for Microsoft 365

GitHub Twitter

npm @pnp/cli-microsoft365@latest npm @pnp/cli-microsoft365@next

CLI for Microsoft 365 helps you manage your Microsoft 365 tenant and SharePoint Framework projects.

Website | Features | Install | Usage | Build | Contribute

Sharing is Caring | Code of Conduct | Disclaimer

CLI for Microsoft 365

Features

  • Run on any OS
    • Linux
    • MacOS
    • Windows
  • Run on any shell
    • Azure Cloud Shell
    • bash
    • cmder
    • PowerShell
    • zsh
  • Unified login
    • Access all your Microsoft 365 workloads
  • Supported workloads
    • Azure Active Directory
    • Microsoft Teams
    • Microsoft To Do
    • OneDrive
    • Outlook
    • Planner
    • Power Automate
    • Power Apps
    • Skype for Business
    • SharePoint Online
    • Yammer
  • Supported authentication methods
    • Azure Managed Identity
    • Certificate
    • Device Code
    • Username and Password
  • Manage your SharePoint Framework projects
    • Uprade your projects
    • Check your environment compatibility

Follow our Twitter account to keep yourself updated about new features, improvements, and bug fixes.

Install

To install this CLI, you will need node >= 8.0.0 installed.

npm install -g @pnp/cli-microsoft365
Install beta version β
npm install -g @pnp/[email protected]
Alternate package managers 🧶

yarn

yarn global add @pnp/cli-microsoft365

npx

npx @pnp/cli-microsoft365
Run CLI for Microsoft 365 in a Docker container 🐳
docker run --rm -it m365pnp/cli-microsoft365:latest

Checkout our guide to learn more about how to run CLI for Microsoft 365 using Docker

Usage

Use the login command to start the Device Code login flow to authenticate with your Microsoft 365 tenant.

m365 login

On your first login you will be asked to consent to several permissions that the PnP Management Shell multi-tenant app requires for the commands to work successfully against your tenant. If you want to create your own identity to use with the CLI, refer to the Using your own Azure AD Identity guide.

For alternative authentication methods and usage, refer to the login command documentation

List all commands using the global --help option.

m365 --help

Get command information and example usage using the global --help option.

m365 spo site get --help

Execute a command and output response as text.

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

Execute a command and output response as JSON using the global --output option.

m365 spo site get --url https://contoso.sharepoint.com --output json

Filter responses and return custom objects using JMESPath queries using the global --query option.

m365 spo site list --output json --query '[?Template==`GROUP#0`].{Title:Title, Url:Url}'

For more examples and usage, refer to the command and sample scripts documentation.

Build

To build and run this CLI locally, you will need node >= 14.0.0 installed.

# Clone this repository
$ git clone https://github.com/pnp/cli-microsoft365

# Go into the repository
$ cd cli-microsoft365

# Install dependencies
$ npm install

# Build the CLI
$ npm run build

# Symlink your local CLI build
$ npm link

When you execute any m365 command from the terminal, it will now use your local clone of the CLI.

Contribute

We love to accept contributions.

If you want to get involved with helping us grow the CLI, whether that is suggesting or adding a new command, extending an existing command or updating our documentation, we would love to hear from you.

Checkout our Wiki for guides on how to contribute to this project.

Sharing is Caring

This project is associated with the Microsoft 365 Patterns and Practices (PnP) organisation, which is a virtual team consisting of Microsoft employees and community members focused on helping the community make the best use of Microsoft products.

Disclaimer

THIS CODE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.

telemetry


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
typescript (12,046
hacktoberfest (4,276
cli (1,839
azure (383
microsoft (237
sharepoint (45
office365 (33
azure-active-directory (28
microsoft-teams (26
office-365 (16