| description | Information about installing PowerShell on macOS |
|---|---|
| ms.date | 10/23/2025 |
| title | Installing PowerShell on macOS |
PowerShell 7 or higher requires macOS 13 and higher. All packages are available on the GitHub
releases page for PowerShell. After the package is installed, run pwsh from a terminal.
Before installing, check the list of Supported versions.
Note
PowerShell 7.4 is an in-place upgrade that removes previous versions of PowerShell 7. You can install preview versions of PowerShell side-by-side with other versions of PowerShell. If you need to run PowerShell 7.4 side-by-side with a previous version, reinstall the previous version using the binary archive method.
[!INCLUDE Latest version]
There are several ways to install PowerShell on macOS. Choose one of the following methods:
- Install using Homebrew. Homebrew is the preferred package manager for macOS.
- Install via Direct Download.
- Install as a .NET Global tool.
- Install from binary archives.
If the brew command isn't found, you need to install Homebrew following their instructions.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Once brew is installed, install PowerShell.
The following command installs the latest stable release of PowerShell:
brew install --cask powershellVerify the installation is working correctly:
pwshWhen new versions of PowerShell are released, update Homebrew's formulae and upgrade PowerShell:
brew update
brew upgrade powershellNote
You can call the previous commands from within a PowerShell (pwsh) session, but then you must
restart the PowerShell session to complete the upgrade and refresh the values shown in
$PSVersionTable.
The following command installs the latest preview release of PowerShell:
brew install powershell/tap/powershell-previewRun the following command to start the preview version of PowerShell:
pwsh-previewWhen new preview versions of PowerShell are released, update Homebrew's formulae and upgrade to the latest preview version of PowerShell:
brew update
brew upgrade powershell-previewNote
You can call the previous commands from within a PowerShell (pwsh) session, but then you must
restart the PowerShell session to complete the upgrade and refresh the values shown in
$PSVersionTable.
The following command installs the latest LTS release of PowerShell:
brew install powershell/tap/powershell-ltsVerify your installation:
pwsh-ltsWhen new LTS versions of PowerShell are released, run the following commands to update Homebrew's formulae and upgrade to the latest LTS version of PowerShell:
brew update
brew upgrade powershell-ltsNote
When updating to a newer version of PowerShell, use the same method, cask or the tap, that you used to perform the initial install. If you use a different method, opening a new pwsh session continues to use the older version of PowerShell.
If you decide to use different methods, there are ways to correct the issue using the Homebrew link method.
Starting with version 7.2, PowerShell supports the Apple M-series Arm-based processors. Download the install package from the releases page onto your Mac. The links to the current versions are:
-
PowerShell 7.5
- Arm64 processors - powershell-7.5.4-arm64.pkg
- x64 processors - powershell-7.5.4-osx-x64.pkg
-
PowerShell 7.4
- Arm64 processors - powershell-7.4.13-osx-arm64.pkg
- x64 processors - powershell-7.4.13-osx-x64.pkg
There are two ways to install PowerShell using the Direct Download method.
Install PowerShell using Finder:
-
Open Finder
-
Locate the downloaded package
-
Double-click the file
You will receive the following error message when installing the package:
"powershell-7.5.4-osx-arm64.pkg" Not Opened
Apple could not verify "powershell-7.5.4-osx-arm64.pkg" is free from malware that may harm your Mac or compromise your privacy.
-
Select the Done button to close the prompt.
This error message comes from the Gatekeeper feature of macOS. For more information, see Safely open apps on your Mac - Apple Support.
After you've tried to open the package, follow these steps:
- Open System Settings.
- Select Privacy & Security and scroll down to the Security section.
- Select the Open Anyway button to confirm your intent to install PowerShell.
- When the warning prompt reappears, select Open Anyway.
- Enter username and password to allow the installation to proceed.
To install the PowerShell package from the command line, you must bypass the Gatekeeper checks. Use one of the following methods to install the package:
-
Run the
installercommand with the allowUntrusted flag:sudo installer -allowUntrusted -pkg ./Downloads/powershell-7.5.4-osx-arm64.pkg -target /
-
Or install the package as you normally would after running one of the following commands:
- Run
sudo xattr -rd com.apple.quarantine ./Downloads/powershell-7.5.4-osx-arm64.pkg. - Use the
Unblock-Filecmdlet if you're using PowerShell. Include the full path to the.pkgfile.
- Run
If you already have the .NET Core SDK installed, it's easy to install PowerShell as a .NET Global tool.
dotnet tool install --global PowerShellThe dotnet tool installer adds ~/.dotnet/tools to your PATH environment variable. However, the
currently running shell doesn't have the updated PATH. Start PowerShell from a new shell by typing
pwsh.
PowerShell binary tar.gz archives are provided for the macOS platform to enable advanced
deployment scenarios. When you install using this method, you must also manually install any
dependencies.
Note
You can use this method to install any version of PowerShell including the latest:
- Stable release: https://aka.ms/powershell-release?tag=stable
- LTS release: https://aka.ms/powershell-release?tag=lts
- Preview release: https://aka.ms/powershell-release?tag=preview
Download the install package from the releases page onto your Mac. The links to the current versions are:
-
PowerShell 7.5-preview
- Arm64 processors - powershell-7.5.4-osx-arm64.tar.gz
- x64 processors - powershell-7.5.4-osx-x64.tar.gz
-
PowerShell 7.4 (LTS)
- Arm64 processors - powershell-7.4.13-osx-arm64.tar.gz
- x64 processors - powershell-7.4.13-osx-x64.tar.gz
Use the following commands to install PowerShell from the binary archive. Change the download URL to match the version you want to install.
# Download the powershell '.tar.gz' archive
curl -L -o /tmp/powershell.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/powershell-7.5.4-osx-arm64.tar.gz
# Create the target folder where powershell is placed
sudo mkdir -p /usr/local/microsoft/powershell/7
# Expand powershell to the target folder
sudo tar zxf /tmp/powershell.tar.gz -C /usr/local/microsoft/powershell/7
# Set execute permissions
sudo chmod +x /usr/local/microsoft/powershell/7/pwsh
# Create the symbolic link that points to pwsh
sudo ln -s /usr/local/microsoft/powershell/7/pwsh /usr/local/bin/pwshIf you installed PowerShell with Homebrew, use the following command to uninstall:
brew uninstall --cask powershellIf you installed PowerShell via direct download, PowerShell must be removed manually:
sudo rm -rf /usr/local/bin/pwsh /usr/local/microsoft/powershellTo remove the extra PowerShell paths, refer to the paths section in this document and remove
the paths using sudo rm.
Note
This process isn't necessary if you installed with Homebrew.
$PSHOMEis/usr/local/microsoft/powershell/7- The macOS install package creates a symbolic link,
/usr/local/bin/pwshthat points topwshin the$PSHOMElocation.
- The macOS install package creates a symbolic link,
- User profiles are read from
~/.config/powershell/profile.ps1 - Default profiles are read from
$PSHOME/profile.ps1 - User modules are read from
~/.local/share/powershell/Modules - Shared modules are read from
/usr/local/share/powershell/Modules - Default modules are read from
$PSHOME/Modules - PSReadLine history is recorded to
~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt
PowerShell respects the XDG Base Directory Specification on macOS.
[!INCLUDE macOS support]
Microsoft supports the installation methods in this document. There might be other methods of installation available from other sources. While those tools and methods might work, Microsoft can't support those methods.