Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
Meta Package Manager has been maintained for 10+ years, and is free to use. You can help if you 🤝 purchase business support or 🫶 sponsor the project.
Meta Package Manager
Light Logo Dark Logo
  • Installation
  • Package managers
    • AppImage Manager
    • Antidote
    • Zsh Antigen
    • Alpine apk
    • Atom apm
    • Debian apt
    • apt-cyg
    • Linux Mint apt
    • aptitude
    • asdf
    • Arch Linux aura
    • Basalt
    • bin
    • bob
    • bpkg
    • Homebrew Formulae
    • Bun
    • Rust cargo
    • Homebrew Cask
    • cave
    • Chocolatey
    • Nim choosenim
    • Chromebrew
    • Claude Code plugins
    • clib
    • PHP Composer
    • Conda
    • Perl CPAN
    • deb-get
    • devkitPro pacman
    • Fedora DNF
    • Fedora DNF5
    • dotnet tool
    • Lean elan
    • GNU Emacs packages
    • Gentoo emerge
    • Solus eopkg
    • Fink
    • Fish fisher
    • Flatpak
    • Linux fwupd
    • Google Cloud CLI
    • RubyGems
    • getnf
    • GNOME Shell extensions
    • GitHub CLI extensions
    • Haskell ghcup
    • Go
    • GNU Guix
    • gup
    • Haxe haxelib
    • Hyprland hyprpm
    • Image Packaging System
    • jpm
    • Julia Pkg
    • Julia juliaup
    • kubectl krew
    • Neovim lazy-nvim
    • LuaRocks
    • LURE
    • MacPorts
    • Mamba
    • Mac App Store
    • Neovim mason-nvim
    • micro editor
    • Micromamba
    • MiKTeX
    • mise
    • Nala
    • Nimble
    • Nix
    • Node npm
    • Fish Oh My Fish
    • Ollama
    • OCaml opam
    • opkg
    • Arch Linux pacaur
    • Arch Linux pacman
    • Pacstall
    • Manjaro pamac
    • Arch Linux paru
    • PEAR
    • Pearl
    • Pi extensions
    • Arch Linux pikaur
    • Python pip
    • Python pipx
    • pipxu
    • pixi
    • PackageKit
    • FreeBSD pkg
    • OpenBSD pkg tools
    • Pkgin
    • pkgit
    • pkgm
    • PlatformIO Core
    • Node pnpm
    • FreeBSD Ports Collection
    • CRUX prt-get
    • PowerShell Gallery
    • Python pyenv
    • raco
    • Roswell
    • Rust rustup
    • Scoop
    • SDKMAN
    • Scoop sfsu
    • Sheldon
    • Shelly
    • Agent Skills
    • slapt-get
    • Snap
    • Soar
    • Sorcery
    • Spack
    • Valve SteamCMD
    • stew
    • Solaris SVR4 package tools
    • Clear Linux Software Updater
    • TazPkg
    • TeX Live Manager
    • Topgrade
    • Arch Linux trizen
    • urpmi
    • Python uv
    • Python uvx
    • Vagrant
    • vcpkg
    • Neovim vim-pack
    • Volta
    • Visual Studio Code
    • VSCodium
    • WinGet
    • Void XBPS
    • Xcode xcodes
    • Yarn Classic
    • Yarn Berry
    • Arch Linux yay
    • Yazi ya
    • Fedora YUM
    • Zef
    • zerobrew
    • Zero Install
    • Zsh Zim
    • Zinit
    • Zsh zplug
    • zvm
    • openSUSE Zypper

Package operations

  • Cross-manager operations
  • Manager augmentations
  • Cooldown

Exports and reports

  • JSON & CSV exports
  • Snapshot and export
  • SBOM: Software Bill of Materials

Configuration

  • Configuration
  • Per-manager overrides

Execution model

  • Concurrency
  • Privilege escalation and sudo
  • Security model

Interfaces

  • CLI parameters
  • Man pages
  • Desktop menus
    • SwiftBar & Xbar plugin
    • GNOME Shell extension

Comparisons

  • Benchmark
  • Unsupported managers
  • Falsehoods programmers believe about package managers

Contributing

  • Contribution guide
  • Add a new package manager
  • Add a packaging channel
  • Downstream packaging
  • Code of conduct

API reference

  • meta_package_manager package
    • meta_package_manager.managers package
      • meta_package_manager.managers.am module
      • meta_package_manager.managers.antidote module
      • meta_package_manager.managers.antigen module
      • meta_package_manager.managers.apk module
      • meta_package_manager.managers.apm module
      • meta_package_manager.managers.apt module
      • meta_package_manager.managers.aptitude module
      • meta_package_manager.managers.asdf module
      • meta_package_manager.managers.bin module
      • meta_package_manager.managers.composer module
      • meta_package_manager.managers.conda module
      • meta_package_manager.managers.deb_get module
      • meta_package_manager.managers.dnf module
      • meta_package_manager.managers.dotnet module
      • meta_package_manager.managers.emerge module
      • meta_package_manager.managers.eopkg module
      • meta_package_manager.managers.fisher module
      • meta_package_manager.managers.flatpak module
      • meta_package_manager.managers.fwupd module
      • meta_package_manager.managers.gem module
      • meta_package_manager.managers.gext module
      • meta_package_manager.managers.ghcup module
      • meta_package_manager.managers.go module
      • meta_package_manager.managers.guix module
      • meta_package_manager.managers.homebrew module
      • meta_package_manager.managers.ips module
      • meta_package_manager.managers.luarocks module
      • meta_package_manager.managers.lure module
      • meta_package_manager.managers.mamba module
      • meta_package_manager.managers.mas module
      • meta_package_manager.managers.miktex module
      • meta_package_manager.managers.mise module
      • meta_package_manager.managers.nala module
      • meta_package_manager.managers.neovim module
      • meta_package_manager.managers.nimble module
      • meta_package_manager.managers.nix module
      • meta_package_manager.managers.npm module
      • meta_package_manager.managers.oh_my_fish module
      • meta_package_manager.managers.pacman module
      • meta_package_manager.managers.pacstall module
      • meta_package_manager.managers.pear module
      • meta_package_manager.managers.pip module
      • meta_package_manager.managers.pipx module
      • meta_package_manager.managers.pixi module
      • meta_package_manager.managers.pkcon module
      • meta_package_manager.managers.pkg module
      • meta_package_manager.managers.pkgit module
      • meta_package_manager.managers.pnpm module
      • meta_package_manager.managers.prt_get module
      • meta_package_manager.managers.pwsh_gallery module
      • meta_package_manager.managers.roswell module
      • meta_package_manager.managers.scoop module
      • meta_package_manager.managers.sdkman module
      • meta_package_manager.managers.sfsu module
      • meta_package_manager.managers.sheldon module
      • meta_package_manager.managers.snap module
      • meta_package_manager.managers.spack module
      • meta_package_manager.managers.sun_tools module
      • meta_package_manager.managers.tazpkg module
      • meta_package_manager.managers.uv module
      • meta_package_manager.managers.vagrant module
      • meta_package_manager.managers.vcpkg module
      • meta_package_manager.managers.volta module
      • meta_package_manager.managers.winget module
      • meta_package_manager.managers.xbps module
      • meta_package_manager.managers.yarn module
      • meta_package_manager.managers.zef module
      • meta_package_manager.managers.zero_install module
      • meta_package_manager.managers.zim module
      • meta_package_manager.managers.zinit module
      • meta_package_manager.managers.zplug module
      • meta_package_manager.managers.zypper module
    • meta_package_manager.sbom package
      • meta_package_manager.sbom.base module
      • meta_package_manager.sbom.cyclonedx module
      • meta_package_manager.sbom.spdx module
      • meta_package_manager.sbom.vulnerabilities module
    • meta_package_manager.bar_plugin module
    • meta_package_manager.bar_plugin_renderer module
    • meta_package_manager.brewfile module
    • meta_package_manager.capabilities module
    • meta_package_manager.cli module
    • meta_package_manager.cli_explore module
    • meta_package_manager.cli_maintenance module
    • meta_package_manager.cli_sbom module
    • meta_package_manager.cli_snapshots module
    • meta_package_manager.config module
    • meta_package_manager.cooldown module
    • meta_package_manager.definitions module
    • meta_package_manager.dispatch module
    • meta_package_manager.docstring_corpus module
    • meta_package_manager.execution module
    • meta_package_manager.labels module
    • meta_package_manager.logo module
    • meta_package_manager.manager module
    • meta_package_manager.package module
    • meta_package_manager.platforms module
    • meta_package_manager.pool module
    • meta_package_manager.specifier module
    • meta_package_manager.sudo module
    • meta_package_manager.summary module
    • meta_package_manager.tables module
    • meta_package_manager.version module
  • tests package
    • tests.conftest module
    • tests.destructive_plan module
    • tests.fake_manager module
    • tests.test_bar_plugin module
    • tests.test_brewfile module
    • tests.test_cli module
    • tests.test_cli_backup module
    • tests.test_cli_dump module
    • tests.test_cli_install_remove module
    • tests.test_cli_installed module
    • tests.test_cli_managers module
    • tests.test_cli_orphans module
    • tests.test_cli_outdated module
    • tests.test_cli_restore module
    • tests.test_cli_sbom module
    • tests.test_cli_search module
    • tests.test_cli_upgrade module
    • tests.test_cli_which module
    • tests.test_cooldown module
    • tests.test_dispatch module
    • tests.test_docs module
    • tests.test_docstring_corpus module
    • tests.test_doctor module
    • tests.test_execution module
    • tests.test_gnome_extension module
    • tests.test_help module
    • tests.test_logo module
    • tests.test_manager_apt module
    • tests.test_manager_definition module
    • tests.test_manager_homebrew module
    • tests.test_manager_mas module
    • tests.test_manager_mise module
    • tests.test_manager_overrides module
    • tests.test_manager_pip module
    • tests.test_manager_pipx module
    • tests.test_manager_pwsh_gallery module
    • tests.test_manager_uv module
    • tests.test_manager_winget module
    • tests.test_managers module
    • tests.test_metadata module
    • tests.test_orphans module
    • tests.test_pool module
    • tests.test_sbom module
    • tests.test_sbom_vulnerabilities module
    • tests.test_specifier module
    • tests.test_sphinx_crossrefs module
    • tests.test_sudo module
    • tests.test_version module
  • Index
  • Module Index

Release and hosting

  • Binaries
  • Releasing
  • Infrastructure

Project

  • Changelog
  • History
  • Todo-list
  • Legal notices
  • GitHub repository
  • Funding
Back to top
View this page
Edit this page

PowerShell Gallery¶

ID

pwsh-gallery

Home page

https://www.powershellgallery.com

Upstream stars

⭐ 574

Last commit

2026-08-13

Version requirement

>= 7.4

Platforms

🐧 Linux · 🍎 macOS · 🪟 Windows

Operations

installed · outdated · search · install · upgrade · upgrade_all · remove

purl types

pkg:pwsh-gallery

CLI name

pwsh

Every call

pwsh -NoProfile -NonInteractive -Command <command>

Issues and PRs

📦 manager: pwsh-gallery

Source

meta_package_manager/managers/pwsh_gallery.py

PowerShell Gallery client, driven through the modern Microsoft.PowerShell.PSResourceGet module.

Note

Every operation is one PowerShell expression, run non-interactively with no user profile loaded. Reads emit ConvertTo-Json -AsArray and are parsed as JSON; outdated has no native cmdlet, so its installed-versus-gallery comparison runs inside that single pwsh call rather than as one round trip per installed module.

Note

Only pwsh (PowerShell 7+) is supported. Legacy Windows PowerShell 5.1 is intentionally excluded: it ships PowerShellGet v2, which depends on the NuGet provider and prompts to trust PSGallery on first install. PSResourceGet ships bundled with pwsh 7.4+ and supersedes the v2 cmdlets with cleaner, JSON-friendly objects.

Caution

All install and search operations target -Scope CurrentUser so that mpm does not require elevation. upgrade and remove are scope- agnostic and operate on whichever scope holds each module.

Caution

Install-PSResource is invoked with -TrustRepository so the confirmation prompt on the default PSGallery repository is bypassed. Only the default repository is consulted: third-party PSRepository registrations are out of scope.

What mpm adds to pwsh-gallery¶

Through mpm, pwsh-gallery gains --extended search, to match against package descriptions.

Bigger still, mpm reaches across every manager at once: mpm installed and mpm outdated cover pwsh-gallery alongside every other manager you run in one table, mpm upgrade --all updates them together, and mpm sbom exports the whole machine as one bill of materials.

Every mpm command also gains --dry-run and --plan previews, cross-scheme version comparison and purl identifiers. See manager augmentations for how each one is built.

Your pwsh-gallery commands, in mpm¶

You already know pwsh-gallery: each operation maps one-to-one onto mpm, in an interface shared by every manager.

To…

With pwsh-gallery

With mpm

List what’s installed

pwsh "Get-InstalledPSResource

mpm --pwsh-gallery installed

List outdated packages

pwsh "Get-InstalledPSResource

mpm --pwsh-gallery outdated

Search for a package

pwsh "Find-PSResource -Name '*readline*'

mpm --pwsh-gallery search <pkg>

Install a package

pwsh "Install-PSResource -Name 'PSReadLine' -Scope CurrentUser -TrustRepository -AcceptLicense"

mpm install pkg:pwsh-gallery/<pkg>

Upgrade one package

pwsh "Update-PSResource -Name 'PSReadLine' -TrustRepository -AcceptLicense"

mpm --pwsh-gallery upgrade PSReadLine

Upgrade everything

pwsh "Update-PSResource -TrustRepository -AcceptLicense"

mpm --pwsh-gallery upgrade --all

Remove a package

pwsh "Uninstall-PSResource -Name 'PSReadLine'"

mpm remove pkg:pwsh-gallery/PSReadLine

Prefix any command above with --dry-run to simulate the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.

Operations¶

Operation

Supported

Notes

installed

✓

outdated

✓

orphans

search

✓

extended search backfilled by mpm

install

✓

upgrade

✓

upgrade_all

✓

remove

✓

sync

cleanup

doctor

Selecting and configuring pwsh-gallery¶

Deselect pwsh-gallery for a single run with --no-pwsh-gallery, or persist the choice in your configuration:

[mpm]
pwsh-gallery = false

The arguments and environment variables listed in the box atop this page are forced on every pwsh-gallery call, so runs stay quiet, non-interactive and reproducible: the defaults you would set in CI anyway.

Keep it enabled but tune how mpm drives it with a per-manager override:

[mpm.overrides.pwsh-gallery]
timeout = 900

mpm config-template pwsh-gallery prints every overridable attribute as a ready-to-paste block.

Recipes¶

A few jobs you would otherwise script around pwsh-gallery, one mpm command each:

  • Snapshot and clone a machine: mpm --pwsh-gallery dump pwsh-gallery.toml, then mpm restore pwsh-gallery.toml on the next one.

  • Export a compliance SBOM: mpm --pwsh-gallery sbom (CycloneDX by default, --spdx for SPDX).

Privilege escalation¶

mpm runs this manager as the current user and never prepends sudo by default. Flip the policy for its privileged operations with --sudo or the per-manager sudo override.

See privilege escalation for the full policy.

Cooldown¶

State of PowerShell Gallery’s release-age gating, from the cooldown support table:

Status: ❌ None

A cooldown only pays off where a compromised release can be withdrawn while the clock runs, and can only be emulated where the registry dates its releases. From the retraction table:

  • Registry: PowerShell Gallery

  • Retraction: Yank under another name: the Gallery “does not support permanent deletion of packages”; an unlisted version leaves search and listings but “remains downloadable by specifying its exact version” (docs)

With --cooldown set, mpm skips this manager’s install and upgrade operations rather than run them unguarded (fail-closed); --cooldown best-effort opts back in.

Version probe¶

The version is probed by running:

$ pwsh --version
PowerShell 7.4.6

and extracted with:

r"PowerShell\s+(?P<version>\S+)"

Reference traces¶

Raw native outputs captured in the manager source: the reference mpm’s parsers were written against. If you know PowerShell Gallery well and a transcript below looks wrong, or a newer release changed its output format, report it.

$ pwsh -NoProfile -NonInteractive -Command \
    "Get-InstalledPSResource | \
     Select-Object Name, @{n='Version';e={$_.Version.ToString()}} | \
     ConvertTo-Json -AsArray -Depth 2 -Compress"
[{"Name":"PSReadLine","Version":"2.3.6"},
 {"Name":"Pester","Version":"5.5.0"}]
$ pwsh -NoProfile -NonInteractive -Command \
    "Get-InstalledPSResource | ForEach-Object { \
     $i = $_; \
     $l = Find-PSResource -Name $i.Name -ErrorAction SilentlyContinue \
     | Select-Object -First 1; \
     if ($l -and $l.Version -gt $i.Version) { \
     [PSCustomObject]@{ \
     Name = $i.Name; \
     Installed = $i.Version.ToString(); \
     Latest = $l.Version.ToString() \
     } } \
     } | ConvertTo-Json -AsArray -Depth 2 -Compress"
[{"Name":"PSReadLine","Installed":"2.3.4","Latest":"2.3.6"}]

Feed any of these through mpm and the raw output becomes one uniform table, the same shape for every manager: filter it, project columns, or export it (mpm --pwsh-gallery installed --output json, or csv, toml, yaml), each package carrying a purl and a version comparable across managers.

Upstream project¶

Metrics

PowerShell/PSResourceGet

Activity

commit activity open issues open pull requests

Popularity

forks watchers contributors

Metadata

latest tag license main language

Changelog¶

  • 8.0.0.dev0 (unreleased)

    • Correct the inventory and outdated commands shown on each manager’s page, which named fewer options than mpm actually runs.

  • 6.5.0 (2026-05-25)

    • Add PowerShell Gallery package manager with installed, outdated, search, install, upgrade, and remove support. Drives Microsoft.PowerShell.PSResourceGet (PowerShell 7.4+), installs to -Scope CurrentUser, cross-platform on Linux, macOS, and Windows. Closes #1760.

Next
Python pyenv
Previous
CRUX prt-get
Copyright © Kevin Deldycke and contributors
Made with Furo
Last updated on 2026-09-15
On this page
  • PowerShell Gallery
    • What mpm adds to pwsh-gallery
    • Your pwsh-gallery commands, in mpm
    • Operations
    • Selecting and configuring pwsh-gallery
    • Recipes
    • Privilege escalation
    • Cooldown
    • Version probe
    • Reference traces
    • Upstream project
    • Changelog