WARNING: wingetui•com and unigetui•com are fake websites hosted by a third-party. please do NOT trust them
Important
Major announcement: UniGetUI has entered its next chapter with Devolutions. Read the blog post and the official press release.
UniGetUI is a Windows-first, intuitive GUI for the most common CLI package managers on Windows 10 and 11. Cross-platform builds are also available for macOS and Linux, with support for package managers including WinGet, Scoop, Chocolatey, Homebrew, APT, DNF, Pacman, Flatpak, Snap, pip, npm, Bun, .NET Tool, PowerShell Gallery, and more.
With UniGetUI, you can discover, install, update, and uninstall software from multiple package managers through one interface.
View more screenshots here
Check out the Package Managers section for more details!
Disclaimer: UniGetUI is not affiliated with the package managers it integrates with. Packages are provided by third parties, so review sources and publishers before installation.
Caution
The official website for UniGetUI is https://devolutions.net/unigetui/.
The official source repository is https://github.com/Devolutions/UniGetUI.
Any other website should be considered unofficial, despite what they may say.
🔒 Found a security issue? Please report it via the Devolutions security page
UniGetUI was created by Martí Climent and is now maintained by Devolutions. The project remains free, open source, and MIT-licensed. Devolutions' stewardship brings long-term investment, structured governance, stronger security processes, and a roadmap for broader enterprise readiness while keeping UniGetUI standalone and community-driven.
Read more in the Devolutions announcement and the official press release.
- UniGetUI Homepage
- Table of contents
- Installation
- Update UniGetUI
- Project stewardship
- Features
- Package Managers
- Translations
- Contributions
- Screenshots
- Frequently Asked Questions
- CLI reference
- IPC reference
- Portable mode
There are multiple ways to install UniGetUI — choose whichever one you prefer!
UniGetUI is primarily built for Windows. The Microsoft Store is the recommended installation method, but direct installer and package-manager options are also available.
Use the installer for the best Windows experience.
UniGetUI.Installer.exe is the legacy/default x64 installer alias; use the explicit architecture downloads if needed.
The .zip is portable: it keeps settings and caches next to the executable rather than in your user profile. See docs/PORTABLE.md.
| Architecture | Installer | Portable .zip |
|---|---|---|
| x64 | UniGetUI.Installer.x64.exe (default x64 alias) | UniGetUI.x64.zip |
| arm64 | UniGetUI.Installer.arm64.exe | UniGetUI.arm64.zip |
winget install --exact --id Devolutions.UniGetUI --source wingetscoop bucket add extras
scoop install extras/unigetuichoco install unigetuiRelease packages are compiled with NativeAOT on all supported platforms (Windows, macOS, and Linux) for improved startup performance and a reduced attack surface. If you want to build the same configuration locally, the repository includes helper publish profiles and a script:
pwsh ./scripts/publish-nativeaot.ps1 -Platform x64 # or arm64This publishes src/UniGetUI.Avalonia/UniGetUI.Avalonia.csproj as a self-contained NativeAOT build into artifacts/nativeaot/win-<platform>/.
macOS builds are available from GitHub Releases. Use the .dmg for the standard installer experience, or the .tar.gz archive for a portable app bundle.
| Architecture | .dmg |
.tar.gz |
|---|---|---|
| Apple silicon (arm64) | UniGetUI.macos-arm64.dmg | UniGetUI.macos-arm64.tar.gz |
| Intel (x64) | UniGetUI.macos-x64.dmg | UniGetUI.macos-x64.tar.gz |
Linux builds are available from GitHub Releases. Use the .deb package for Debian/Ubuntu-based distributions, the .rpm package for Fedora/RHEL-based distributions, or the .tar.gz archive for a portable build.
The binaries require glibc 2.27 or newer (Ubuntu 18.04+, Debian 10+, RHEL 8+, Fedora 28+). On older distributions the app exits at startup with a version 'GLIBC_x.y' not found message.
| Architecture | .deb |
.rpm |
.tar.gz |
|---|---|---|---|
| x64 | Download | Download | Download |
| arm64 | Download | Download | Download |
Install the package that matches your distribution and architecture:
# Debian/Ubuntu-based distributions
sudo apt install ./UniGetUI.linux-x64.deb
# Fedora/RHEL-based distributions
sudo dnf install ./UniGetUI.linux-x64.rpm
# Portable archive
tar -xzf UniGetUI.linux-x64.tar.gz
./UniGetUIReplace x64 with arm64 in the file name when using the arm64 build.
The .zip and .tar.gz downloads are portable in the sense that they need no installer, but they still store settings in your user profile. To make UniGetUI keep its data alongside the executable — and for the Windows installer's portable installation type — see portable mode.
UniGetUI has a built-in autoupdater. On Windows, it can also be updated like any other package within UniGetUI when installed through WinGet, Scoop, or Chocolatey.
- Install, update, and remove software from your system easily at one click: UniGetUI combines packages from the most used package managers for your platform, including WinGet, Chocolatey, Scoop, Homebrew, APT, DNF, Pacman, Flatpak, Snap, Pip, npm, Bun, and .NET Tool.
- Discover new packages and filter them to easily find the package you want.
- View detailed metadata about any package before installing it. Get the direct download URL or the name of the publisher, as well as the size of the download.
- Easily bulk-install, update, or uninstall multiple packages at once selecting multiple packages before performing an operation
- Automatically update packages, or be notified when updates become available. Skip versions or completely ignore updates on a per-package basis, or restrict automatic updating to a hand-picked set of packages.
- Schedule maintenance, with the triggers each task supports: update checks on an interval or daily/weekly at a chosen time, update installation after every update check or daily/weekly, and local or cloud backups at app start or daily/weekly.
- The system tray icon will also show the available updates and installed packages where supported, to efficiently update a program or remove a package from your system.
- Easily customize how and where packages are installed. Select different installation options and switches for each package. Install an older version or force a specific architecture where supported. [But don't worry, those options will be saved for future updates for this package*]
- Share packages with your friends using generated package links.
- Export custom lists of packages to then import them to another machine and install those packages with previously specified, custom installation parameters. Setting up machines or configuring a specific software setup has never been easier.
- Backup your packages to a local file to easily recover your setup in a matter of seconds when migrating to a new machine*. By default, each backup overwrites the previous file; enable timestamped file names to keep separate backups, and optionally choose a retention limit to keep only the most recent ones.
- Sync those backups to a secret GitHub Gist, so a new machine can restore your package list after a single sign-in.
- Review the 1,000 most recent operations in the operation history, with up to 5,000 log lines per operation kept for troubleshooting.
- On Windows, decide which desktop and Start Menu shortcuts installers are allowed to create, and pin a package's shortcuts to a Start Menu folder of your choosing — both re-applied on every upgrade.
- Drive the whole application from the command line, or from scripts through its local automation API. See the CLI reference and the IPC reference.
- Run UniGetUI as a portable app that keeps its settings next to the executable. See the portable mode reference.
NOTE: All package managers do support basic install, update, and uninstall processes, as well as checking for updates, finding new packages, and retrieving details from a package.
UniGetUI loads package managers based on the current platform. Windows builds include WinGet, Scoop, Chocolatey, Windows PowerShell, PowerShell 7, npm, Bun, pip, Cargo, .NET Tool, and vcpkg. macOS and Linux builds include Homebrew, PowerShell 7, npm, Bun, pip, Cargo, .NET Tool, and vcpkg; Linux builds also include distro-aware support for APT, DNF, Pacman, Snap, and Flatpak where applicable.
Every platform also includes the optional Agent Skills extension. Enable it under Settings > Extensions > Agent Skills, then use its unified library page. Discover, Installed, Updates, and Sources combine skills and plugins, with Type and Tool filters for Claude Code, GitHub Copilot, Cursor, Codex, and other supported agents. Skills are folders containing a SKILL.md; plugins are complete bundles managed by their host. Like Git Repositories, the extension is off by default and turns on and off without restarting. These are not package managers and do not appear in the shared package lists, package bundles, TUI or package automation commands.
UniGetUI installs skills for the user, into the skills folder of each target agent, from sources you add: git repositories, websites that publish a well-known skills index, and Notion skills databases. The bundled Agent Skills library runs in process; git is only needed for repository sources and the Notion CLI for Notion sources (which UniGetUI can install and sign in from the extension settings). Run unigetui skills to use the bundled skills CLI without launching the GUI, even while the extension is off.
In Discover, choose Add skill source, paste a repository, website index, or npx skills add command, then Add and browse. This saves the source but does not install its skills. Select Plugins in the Type filter and a tool to browse its marketplaces; adding a marketplace does not install its plugins. The shared rows show each item's source, type, tool, installation state, and supported actions. Open an item's title for details; skill details include a read-only source preview of SKILL.md and files. Back restores the library context. Skill installation asks which agents to target. Install all N applies only to the shown uninstalled skills from one source and uses the same target confirmation. Sources manages skill sources and per-tool plugin marketplaces; removing a skill source keeps its installed skills but stops browsing/update checks for that source.
Update all N updates the known skill updates shown by the current filters, after confirming the count and names. It keeps existing installation targets. Successful items leave the update list; failures remain visible and are summarized in View activity. Cancellation stops further work but does not roll back completed updates; reload to verify the resulting state.
Plugin details and supported actions are tool-specific. Library rows group type, status, source and tool beneath the item name, with supported actions alongside; disabled plugins use a neutral status rather than an enabled indicator. Enable/disable actions use confirmed inventory state, not an optimistic change while confirmation or an agent command is pending. Each tool keeps its own marketplaces, inventory and supported actions. Installed plugins load separately from marketplace browsing. Select one marketplace to browse it; browse results are cached for seven days, reused across visits, and refreshed only when requested. Large results are paged, and filtering searches loaded results locally. Adding/removing marketplaces and changing plugin installations require confirmation: plugins may execute scripts, hooks or MCP servers. Plugin update operations are distinct from detected skill updates: Update all N runs the selected provider's update operation for manageable installed plugins when supported, confirms the scope once, and reports individual failures. It does not mean newer versions were detected. Codex does not expose a plugin update command, so no bulk-update action is shown there.
Claude Code plugins are shared by the Claude Code CLI and the Code tab in Claude Desktop, at user scope rather than the current checkout's project settings. Opening the library reads only the installed-plugin inventory; the full available catalog is requested only when browsing marketplaces. Both the plain-array and wrapped installed-inventory JSON formats are supported. UniGetUI runs claude from PATH, ~/.local/bin, /opt/homebrew or /usr/local on macOS and Linux, or WinGet links and a global npm install on Windows. When only Claude Desktop is installed, it uses the verified CLI copy that Claude Desktop downloads for its Code tab. Add Devolutions/ux-prototypes or paste /plugin marketplace add Devolutions/ux-prototypes, then select a plugin and Install. You can also paste /plugin install ux-design-agents@devolutions-ux or /plugin install ux-skills@devolutions-ux into Install plugin. Installed user plugins support Update, Enable, Disable and Uninstall. UniGetUI never automatically approves marketplace-supplied shell commands; complete any additional authorization in Claude Code itself. Restart active Claude Code sessions, including Claude Desktop's Code tab, after plugin changes. Cowork and organization-managed plugins are configured in the Claude app, not here.
Codex plugins are shared by the Codex CLI, the Codex app and the IDE extension through CODEX_HOME (by default ~/.codex). UniGetUI runs codex from CODEX_CLI_PATH, PATH, ~/.local/bin, /opt/homebrew or /usr/local on macOS and Linux, or WinGet links and the native binary inside a global npm install on Windows (never the shell-based npm launcher). When only the Codex app is installed, it uses the CLI bundled with the app. A recent Codex with native plugin commands is required. Add awakecoding/copilot-resources, then install copilot@copilot-resources. UniGetUI invokes Codex's own marketplace add/list/upgrade/remove and plugin add/remove commands from your home directory. Enable and Disable write the plugin's enabled setting through a short-lived codex app-server session, the same configuration API the Codex app uses, so Codex validates and saves the change; a managed or higher-priority configuration can still override it. Plugins provided by the Codex app itself can be turned on or off, but not uninstalled or updated, because the app restores them. Other built-in marketplaces can be browsed but are read-only here. Refresh a configured marketplace to fetch source updates, then restart active Codex sessions and the Codex app. Codex owns configuration, policy and authentication. No Claude flags are sent to Codex.
Cursor supports UniGetUI-managed local imports, not Cursor's hosted/team marketplace administration. Add awakecoding/copilot-resources, then install copilot@copilot-resources. Git fetches the repository over HTTPS; UniGetUI reads its .cursor-plugin/marketplace.json, .agents/plugins/marketplace.json, or .claude-plugin/marketplace.json (in that order), but imports only bundles with a .cursor-plugin/plugin.json or a portable Agent Plugins root plugin.json. This preserves cursor-skills, commands, scripts and other bundle files instead of copying the Claude/Codex variant as individual skills. Local-path entries within that repository are supported; remote plugin-source entries are shown as unavailable.
Managed Cursor bundles are copied into ~/.cursor/plugins/local/unigetui-<identity-hash>. Source snapshots and installation records live separately under UniGetUI's local application data. Existing local plugins with the same manifest name are not overwritten. Refresh marketplace fetches a new validated source snapshot; Update explicitly applies it to a managed installed plugin. Uninstall removes only that managed copy. Uninstall its managed plugins before removing a source. Restart Cursor or run Developer: Reload Window, then inspect Customize; the UI's imported state is not a claim that Cursor has activated it. Enterprise must allow local plugin imports, and an existing Cursor marketplace installation with the same name takes precedence. Manage component toggles and hosted/team marketplaces in Cursor. Git fetching is noninteractive with isolated configuration and HTTPS only; sources requiring interactive authentication must be handled outside this importer.
GitHub Copilot uses the installed native copilot executable for local installed inventory and marketplace-scoped browse; it can install, update, enable/disable and uninstall user-installed plugins. GitHub documents CLI installation of desktop-app extensions, and the local CLI inventory is the shared profile shown by the app. Repository settings and managed policy may affect effective enablement; active sessions may need to reload after CLI changes. Add a marketplace or use the built-in awesome-copilot catalog. Pasted copilot plugin install ... and /plugin install ... inputs are recognized; they are not executed as shell text. Built-in/external entries are read-only here, and the CLI enforces managed policy. The default marketplace can be refreshed but not removed. Marketplace removal never passes --force; uninstall its plugins first. Commands run from your home directory and respect COPILOT_HOME. Open in Copilot app beside marketplace/plugin inputs opens GitHub's official hosted confirmation flow; nothing changes until you confirm there. UniGetUI reads the local CLI profile and does not claim that an active session has loaded a change.
See the native Codex marketplace documentation and Cursor local-plugin documentation for host setup and policy requirements. Copilot Resources is a multi-host example; it also requires GitHub Copilot CLI and PowerShell 7, configured separately.
Refresh after changes outside UniGetUI and restart active agent sessions after plugin changes. Plugin updates are manual, separate from the skill update badge/notifications. Claude marketplace removal is destructive: removing its last declaration also uninstalls its plugins and deletes their saved data, options and secrets. The confirmation lists known user-installed plugins. Use Refresh marketplace, not removal/re-addition, to refresh without losing plugins. Individual plugin uninstall can also delete saved data.
Skills browse your configured sources by default. Repository and website listings are saved as metadata under UniGetUI's cache and reused across page visits and app restarts, without cloning again. Refresh explicitly fetches new listings; failed refreshes do not overwrite the last good cache. Removing a source also removes its saved listing. Notion listings are not persisted, and installs/previews still fetch their actual source content rather than trusting cached descriptions. Returning to Updates reuses a complete check for up to 15 minutes while installed metadata and configured sources are unchanged; Refresh always checks again. The search field filters loaded items locally. To search the public skills.sh catalog, enable Settings > Extensions > Agent Skills > Online discovery > Search skills.sh, then select Search the public skills.sh catalog in Discover and explicitly submit a query of at least two characters. The setting is off by default. Opening the page or typing in the local filter does not send a public query. Registry searches return up to 50 results and preserve skills.sh's ranking.
Registry results show their actual GitHub repository or HTTPS website index as the source and install through the bundled Agent Skills library, not an external skills.sh CLI. Git is required for repository installs. A successful install saves its source, so update checks keep working if skills.sh discovery is switched off. Failed installs do not add a source. Disabling discovery stops subsequent registry searches and prevents installing stale unconfigured results; it does not remove installed skills or saved sources. Review skills before installing them. Update checks continue to use only configured sources. Website indexes at different paths on the same host can be added separately. Configure Sources, Online discovery, Installation targets, Notifications, and optional Notion integration under Settings > Extensions > Agent Skills. Valid changes save immediately. While enabled, skill update checks also run when the application's scheduled package update checks finish; skill notifications respect both the global update-notification setting and the extension's notification preference. Background checks update the Updates count without replacing the active view's results or messages. Updates are applied explicitly from the library. Operation summaries stay visible; View activity exposes detailed output and errors.
Existing skill folders, library tracking files, configured sources, installation targets, Notion version pins and skills.sh discovery preferences are retained unchanged. The former package-manager enablement and agent-detection heuristic do not silently enable the extension: existing users explicitly opt in once. Turning the extension off cancels its in-flight work, not the installed skills or saved settings.
Installation targets default to Automatic: detected coding agents plus agents that read the shared .agents/skills folder. Choose agents saves an explicit selection, even when every displayed agent is selected; previously selected agents remain listed when no longer detected. At least one explicit target is required. Changes affect future installs only and never relocate existing skills.
Notion integration is optional for repository and website-index sources. Its expandable section shows connection status and installation/sign-in actions; it opens automatically when configured Notion sources need setup. Notion integration > Advanced options > Notion CLI version policy selects the latest available or a specific version for the next dependency installation, not an immediate replacement of an installed CLI. A specific version suppresses updates of both its WinGet and npm packages until Latest available is selected. Invalid version drafts leave the saved pin unchanged and block installation from this page until corrected.
✅: Supported on UniGetUI
☑️: Not directly supported but can be easily achieved
❌: Not supported by the Package Manager
UniGetUI translations are maintained directly in this repository. For the current language list, completion status, and per-language contributor attributions, see TRANSLATION.md. If you spot a translation issue or want to improve a locale, please open an issue or submit a pull request.
UniGetUI continues to grow thanks to its community of contributors. Devolutions is grateful to everyone who contributes code, translations, documentation, testing, and feedback to the project.
Q: I am unable to install or upgrade a specific Winget package! What should I do?
A: This is likely an issue with Winget rather than UniGetUI.
Please check if it's possible to install/upgrade the package through PowerShell or the Command Prompt by using the commands winget upgrade or winget install, depending on the situation (for example: winget upgrade --id Microsoft.PowerToys).
If this doesn't work, consider asking for help at Winget's project page.
Q: The name of a package is trimmed with ellipsis — how do I see its full name/id?
A: This is a known limitation of Winget.
For more details, see this issue: microsoft/winget-cli#2603.
Q: My antivirus is telling me that UniGetUI is a virus! / My browser is blocking the download of UniGetUI!
A: A common reason apps (i.e., executables) get blocked and/or detected as a virus — even when there's nothing malicious about them, like in the case of UniGetUI — is because a relatively large amount of people are not using them.
Combine that with the fact that you might be downloading something recently released, and blocking unknown apps is in many cases a good precaution to take to prevent actual malware.
Since UniGetUI is open source and safe to use, whitelist the app in the settings of your antivirus/browser.
Q: Are packages from third-party package managers safe?
A: UniGetUI and the package-manager maintainers aren't responsible for every package available for download. Packages are provided by third parties and can theoretically be compromised, regardless of whether they come from WinGet, Scoop, Chocolatey, Homebrew, APT, DNF, Pacman, Flatpak, Snap, or another source.
Some package managers and repositories implement checks to mitigate the risks of downloading malware. Even so, it's recommended that you only download software from trusted publishers.
Check out the CLI reference here and the IPC reference here.
For portable installations and where UniGetUI keeps its data, see the portable mode reference.








