Edit

Share via


What is Microsoft Power Platform CLI?

Microsoft Power Platform CLI is a simple, one-stop developer CLI that empowers developers and ISVs to perform various operations in Microsoft Power Platform related to:

Provide feedback

Use github.com/microsoft/powerplatform-build-tools/discussions to view and submit feedback for PAC CLI.

Install Microsoft Power Platform CLI

There are three ways to install the Power Platform CLI. You can use multiple installation methods on the same computer.

MethodOS SupportDescription
Install the Visual Studio Code extensionWindows, Linux, macOSEnables use of commands within a PowerShell terminal within Visual Studio Code on Windows 10, Windows 11, Linux, and macOS.

When you install using ONLY this method, by default PAC CLI will only be available within a Visual Studio Code terminal unless you enable PAC CLI in Command Prompt (CMD) and PowerShell terminals for Windows
Install with .NET ToolWindows, Linux, macOSEnables use of commands within a PowerShell, CMD, or Bash shell on Windows 10, Windows 11, Linux, and macOS.

This installation method doesn't enable use of pac data or certain pac package commands (deploy and show) that are only available for Windows.
Install with Windows MSIWindows onlyEnables use of commands within a PowerShell terminal within Visual Studio Code on Windows only. You can manage installed versions with this installation method.

Note

The following commands are only available on Windows:

To use these commands on Windows, install Power Platform CLI using either (or both) of these installation methods:

These commands aren't available on Windows if you only install using the .NET Tool.

Check whether Power Platform CLI is already installed

How to determine whether the Power Platform CLI is installed depends on your operating system.

  1. Open a PowerShell terminal:

    • If you ONLY installed the Visual Studio Code extension, open a Visual Studio Code Powershell terminal window.
    • If you installed using the .NET Tool, open a Visual Studio Code Powershell terminal OR a Powershell terminal.
  2. Type Get-Command pac | Format-List at the prompt, and press Enter.

The results should look something like this:

Name : pac.exe CommandType : Application Definition : C:\Users\you\.dotnet\tools\pac.exe Extension : .exe Path : C:\Users\you\.dotnet\tools\pac.exe FileVersionInfo : File: C:\Users\you\.dotnet\tools\pac.exe InternalName: pac.dll OriginalFilename: pac.dll FileVersion: 1.29.11 FileDescription: Microsoft Power Platform CLI Product: Microsoft Power Platform© ProductVersion: 1.29.11+g9e2b163 Debug: False Patched: False PreRelease: False PrivateBuild: False SpecialBuild: False Language: Language Neutral 

When Power Platform CLI isn't installed, you'll get this error:

Get-Command: The term 'pac' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 

Check which version of Power Platform CLI is installed

Open the command prompt (on Microsoft Windows), or a Terminal session (in Linux), type pac and press Enter.

You should see something like this where the version is on the second line.

Microsoft PowerPlatform CLI Version: 1.30.3+g0f0e0b9 

Manage auth profiles

Most PAC CLI commands require authenticated access to resources. You'll need to create and use auth profiles.

Note

With the Visual Studio Code extension, you can view and manage authentication profiles.

Connect to your tenant

Use the pac auth create command to connect to your tenant. Running pac auth create creates an authentication profile on your machine. You can have multiple authentication profiles available. Having multiple authentication profiles is interesting when you work with multiple tenants. For instance, when your company uses multiple tenants (for development, production, and test) or when you're a consultant that works for multiple customers.

The pac auth create command has a couple of helpful parameters:

  • The --environment parameter enables you to automatically connect to the right environment. If you omit the --environment parameter, you're connected to the default environment, but with the --environment parameter added to it, you can connect to a different one. You can use the environment ID, url, unique name, or partial name as the value.

  • In environments where you don't have the ability to use an interactive experience, adding the --deviceCode parameter makes sure you can still connect. For example, in GitHub Codespaces, the --deviceCode parameter automatically gets added when you run pac auth create.

Example

To connect to the HR-Dev environment, you can use the following example:

pac auth create --environment "HR-Dev" 

Switch to another authentication profile

When you have multiple authentication profiles, you can easily switch using the pac auth list and pac auth select commands.

The pac auth list command lists all authentication profiles on your machine. The pac auth select command selects a different command.

pac auth list Example

To list all authentication profiles, use the following example:

pac auth list 

Running the pac auth list command returns all authentication profiles:

Index Active Kind Name Friendly Name Url User Cloud Type [1] * UNIVERSAL Personal Productivity (Default) https://x.crm.dynamics.com/ user@contoso.onmicrosoft.com Public User 

Select a different authentication profile using the index value.

pac auth select --index 2 

Enable tab completion in PowerShell

Power Platform CLI has a pac complete command similar to the .NET CLI complete command.

When configured using the instructions below, you can type just the beginning of a command and then use the Tab key to complete the input entered.

To add tab completion to PowerShell for the PAC CLI, create or edit the profile stored in the variable $PROFILE. For more information, see How to create your profile and Profiles and execution policy.

Add the following code to your profile:

$scriptblock = { param($wordToComplete, $commandAst, $cursorPosition) &pac complete -s "$($commandAst.ToString())" | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } } Register-ArgumentCompleter -Native -CommandName pac -ScriptBlock $scriptblock 

Other Shells

You can also use this with bash, zsh, fish, and nushell. Instead of dotnet complete use pac complete

US Sovereign cloud availability

Microsoft Power Platform CLI is available for use in the GCC and GCC High (US Sovereign cloud) regions. See the --cloud parameter for the pac auth create command to find out about supported US Sovereign cloud environments.

Next steps

Learn about the commands. For the complete list of supported commands, run the pac help command or pac <subcommand> help - for example: pac solution help.

Or view the list of commands in the documentation:

See also

Microsoft Power Platform CLI release notes
Microsoft Power Platform CLI Command Groups
Power Apps component framework