Back to Unigetui

UniGetUI command-line interface

docs/CLI.md

2026.1.1016.3 KB
Original Source

UniGetUI command-line interface

This file documents the public command-line surface exposed by UniGetUI in the 2026 CLI redesign.

  • For the background IPC API that powers these commands, see IPC.md.
  • For developer-only Avalonia diagnostics toggles, see the project source and build props; they are intentionally not documented here as public CLI arguments.

Quick start

powershell
unigetui status
unigetui app status
unigetui package search --manager dotnet-tool --query dotnetsay
unigetui package install --manager dotnet-tool --id dotnetsay --version 2.1.4 --scope Global
unigetui operation wait --id 123 --timeout 300

Global transport options

These options select how the CLI connects to the local UniGetUI automation session.

OptionMeaning
--transport {named-pipe|tcp}Client-side transport override. Default is named-pipe.
--tcp-port <port>Client-side TCP port override. Used only with tcp.
--pipe-name <name-or-path>Client-side named-pipe override. On Windows this is a pipe name. On non-Windows a relative name resolves under /tmp, while an absolute path uses that exact Unix socket path.

Related environment variables:

VariableMeaning
UNIGETUI_IPC_API_TRANSPORTSame as --transport.
UNIGETUI_IPC_API_PORTSame as --tcp-port.
UNIGETUI_IPC_API_PIPE_NAMESame as --pipe-name.

Exit codes

CodeMeaning
0Success
1Command failed
2Invalid parameter
3IPC API unavailable
4Unknown automation command

Command grammar notes

  • Command nouns accept singular or plural forms: operation/operations, package/packages, manager/managers, and so on.
  • Compatibility aliases are accepted for some flags:
    • --id maps to --package-id or --operation-id where appropriate
    • --source maps to --package-source
  • Boolean options use explicit values such as --enabled true or --wait false.
  • --detach is shorthand for asynchronous package operations (--wait false).
  • --manager uses stable manager ids, not GUI labels. Current ids: apt, cargo, chocolatey, dnf, dotnet-tool, flatpak, homebrew, npm, pacman, pip, pwsh, scoop, snap, vcpkg, winget, and winps.

Command reference

Core

CommandRequired optionsOptional optionsNotes
statusNoneNoneReturns transport, endpoint, and build information for the selected automation session.
versionNoneNoneReturns the UniGetUI build number through the IPC API.

App

CommandRequired optionsOptional optionsNotes
app statusNoneNoneReturns app/session state such as headless mode, page, and supported UI actions.
app showNoneNoneShows and focuses the window when a GUI session exists.
app navigate--page <page>--manager <id>, --help-attachment <path>Valid pages include discover, updates, installed, bundles, settings, managers, own-log, manager-log, operation-history, help, release-notes, and about.
app quitNoneNoneGracefully shuts down the selected session, including headless daemons.

Operations

CommandRequired optionsOptional optionsNotes
operation listNoneNoneLists tracked live and completed operations.
operation get--id <operation-id>NoneReturns the full tracked payload for one operation.
operation output--id <operation-id>--tail <n>Reads captured output lines for one operation.
operation wait--id <operation-id>--timeout <seconds>, --delay <seconds>Polls until the operation reaches a terminal state.
operation cancel--id <operation-id>NoneCancels a queued or running operation.
operation retry--id <operation-id>--mode <mode>Retry modes are defined by the operation payload.
operation reorder--id <operation-id>, --action <run-now|run-next|run-last>NoneReorders a queued operation.
operation forget--id <operation-id>NoneRemoves a finished operation from the live tracked list.

Managers

CommandRequired optionsOptional optionsNotes
manager listNoneNoneLists managers and their automation-relevant capability flags.
manager maintenance--manager <id>NoneReturns maintenance metadata for one manager.
manager reload--manager <id>NoneReloads one manager.
manager set-executable--manager <id>, --path <path>NoneSets a custom executable override, then reloads the manager.
manager clear-executable--manager <id>NoneClears the custom executable override, then reloads the manager.
manager action--manager <id>, --action <action>--confirmRuns a manager-specific maintenance action.
manager enable--manager <id>NoneEnables the manager.
manager disable--manager <id>NoneDisables the manager.
manager notifications enable--manager <id>NoneEnables update notifications for the manager.
manager notifications disable--manager <id>NoneDisables update notifications for the manager.

Sources

CommandRequired optionsOptional optionsNotes
source listNone--manager <id>Lists sources, optionally filtered to one manager.
source add--manager <id>, --name <source-name>--url <source-url>Adds a source.
source remove--manager <id>, --name <source-name>--url <source-url>Removes a source.

Settings

CommandRequired optionsOptional optionsNotes
settings listNoneNoneLists non-secure settings.
settings get--key <key>NoneReads one non-secure setting.
settings set--key <key>--enabled true|false, --value <text>Sets either the boolean or string form of a setting.
settings clear--key <key>NoneClears a string-backed setting.
settings resetNoneNoneResets non-secure settings.
settings secure listNone--user <name>Lists secure settings for the current or specified user.
settings secure get--key <key>--user <name>Reads one secure setting.
settings secure set--key <key>, --enabled true|false--user <name>Enables or disables one secure setting.

Available keys live in:

Shortcuts

CommandRequired optionsOptional optionsNotes
shortcut listNoneNoneLists tracked desktop shortcuts and stored keep/delete verdicts.
shortcut set--path <path>, --status <keep|delete>NoneMarks a shortcut to keep or delete.
shortcut reset--path <path>NoneClears the stored verdict for one shortcut.
shortcut reset-allNoneNoneClears all stored shortcut verdicts.

Logs

CommandRequired optionsOptional optionsNotes
log appNone--level <n>Returns structured application log entries.
log operationsNoneNoneReturns persisted operation history.
log managerNone--manager <id>, --verboseReturns manager task logs.

Backups

CommandRequired optionsOptional optionsNotes
backup statusNoneNoneReturns backup settings and cloud-auth state.
backup local createNoneNoneCreates a local backup bundle.
backup github login startNone--launch-browserStarts the GitHub device flow.
backup github login completeNoneNoneCompletes the pending device flow.
backup github logoutNoneNoneClears the stored GitHub auth token.
backup cloud listNoneNoneLists cloud backups in the authenticated GitHub backup store.
backup cloud createNoneNoneUploads the current backup to cloud storage.
backup cloud download--key <name>NoneDownloads one cloud backup as bundle content.
backup cloud restore--key <name>--appendImports one cloud backup into the current in-memory bundle.

Bundles

CommandRequired optionsOptional optionsNotes
bundle getNoneNoneReturns the current in-memory bundle.
bundle resetNoneNoneClears the current in-memory bundle.
bundle importNone--path <path>, --content <text>, --format <ubundle|json|yaml|xml>, --appendImports bundle content from a file or raw content.
bundle exportNone--path <path>Exports the current bundle, optionally to disk.
bundle add--id <package-id>--manager <id>, --source <source>, --version <version>, --scope <scope>, --pre-release, --selection <search|installed|updates|auto>Resolves a package and adds it to the bundle.
bundle remove--id <package-id>--manager <id>, --source <source>, --version <version>, --scope <scope>, --pre-release, --selection <mode>Removes matching package entries from the bundle.
bundle installNone--include-installed true|false, --elevated true|false, --interactive true|false, --skip-hash true|falseInstalls the bundle through UniGetUI’s shared operation pipeline.

Packages

CommandRequired optionsOptional optionsNotes
package search--query <text>--manager <id>, --max-results <n>Searches packages.
package details--id <package-id>--manager <id>, --source <source>Returns the package details payload.
package versions--id <package-id>--manager <id>, --source <source>Returns installable versions when supported by the manager.
package installedNone--manager <id>Lists installed packages.
package updatesNone--manager <id>Lists available updates.
package install--id <package-id>--manager <id>, --source <source>, --version <version>, --scope <scope>, --pre-release, --elevated true|false, --interactive true|false, --skip-hash true|false, --architecture <value>, --location <path>, --wait true|false, --detachInstalls a package. Async mode returns an operation id immediately.
package download--id <package-id>--manager <id>, --source <source>, --version <version>, --scope <scope>, --wait true|false, --detach, --output <path>Downloads a package artifact.
package reinstall--id <package-id>Same options as package installRe-runs installation for an installed package.
package repair--id <package-id>Same options as package install, plus --remove-data true|falseUninstalls then reinstalls the package.
package update--id <package-id>Same options as package installUpdates one package.
package uninstall--id <package-id>--manager <id>, --source <source>, --scope <scope>, --remove-data true|false, --elevated true|false, --interactive true|false, --wait true|false, --detachUninstalls a package.
package show--id <package-id>, --source <source>NoneOpens the package details UI flow.
package ignored listNoneNoneLists ignored-update rules tracked by UniGetUI.
package ignored add--id <package-id>--manager <id>, --version <version>, --source <source>Adds an ignored-update rule.
package ignored remove--id <package-id>--manager <id>, --version <version>, --source <source>Removes an ignored-update rule.
package update-allNoneNoneQueues updates for all currently upgradable packages.
package update-manager--manager <id>NoneQueues updates for all upgradable packages handled by one manager.

Headless behavior

When UniGetUI is started with --headless, it exposes the same automation API without opening a window.

CommandHeadless behavior
status, app status, app quitFully supported.
app showFails with “the current UniGetUI session is running headless and has no window to show.”
app navigateFails with “the current UniGetUI session is running headless and cannot navigate UI pages.”
package showUI-oriented; may fail or be meaningless in pure headless sessions.
package update-all, package update-managerRequire GUI-side upgrade handlers. Headless sessions may return “cannot update all packages” or “cannot update manager packages.”

Headless IPC options

When UniGetUI is started with --headless, these options control the IPC listener:

OptionMeaning
--ipc-api-transport {named-pipe|tcp}Selects the server-side IPC transport. Default is named-pipe.
--ipc-api-port <port>Overrides the TCP port when TCP transport is selected.
--ipc-api-pipe-name <name-or-path>Overrides the server-side pipe name or Unix socket path.

Other application startup parameters

These parameters are accepted by the app executables in addition to the automation verb tree.

ParameterMeaningNotes
--daemonStarts UniGetUI minimized to the notification area.Requires the corresponding startup setting.
--welcomeOpens the setup wizard.Historical compatibility flag.
--updateappsForces automatic installation of available updates.Historical compatibility flag.
--report-all-errorsOpens the error report page for any crash while loading.Troubleshooting flag.
--uninstall-unigetuiUnregisters UniGetUI from the notification panel and quits.Historical; only valid for specific old versions.
--migrate-wingetui-to-unigetuiMigrates legacy WingetUI data and shortcuts, then quits.Migration helper.
--help / -hPrints CLI help.For the direct verb-based CLI.
--import-settings <file>Imports settings from a JSON file.Existing settings are replaced.
--export-settings <file>Exports settings to a JSON file.Creates or overwrites the file.
--enable-setting <key> / --disable-setting <key>Toggles one boolean setting.Legacy setting flags.
--set-setting-value <key> <value>Sets one string-backed setting.Legacy setting flag.
--no-corrupt-dialogShows the verbose crash report instead of the simplified dialog.Troubleshooting flag.
--enable-secure-setting <key> / --disable-secure-setting <key>Toggles one secure setting for the current user.May require elevation.
--enable-secure-setting-for-user <user> <key> / --disable-secure-setting-for-user <user> <key>Toggles one secure setting for a specified user.May require elevation.
<bundle-file>Loads a valid bundle file into the Package Bundles page.Supported extensions include .ubundle, .json, .yaml, and .xml.

UniGetUI also accepts the following unigetui:// links:

Deep linkMeaning
unigetui://showPackage?id={id}&managerName={manager}&sourceName={source}Opens package details for the specified package.
unigetui://showUniGetUIShows UniGetUI and brings the window to the front.
unigetui://showDiscoverPageOpens the Discover page.
unigetui://showUpdatesPageOpens the Updates page.
unigetui://showInstalledPageOpens the Installed page.

Installer parameters

The installer is Inno Setup based. It supports the standard Inno Setup command-line parameters plus these UniGetUI-specific switches:

ParameterMeaning
/NoAutoStartDo not launch UniGetUI after installation.
/NoRunOnStartupDo not register UniGetUI to start minimized at login.
/NoVCRedistSkip installation of the MSVC x64 runtime.
/NoEdgeWebViewSkip installation of the Microsoft Edge WebView runtime.
/NoChocolateyDeprecated no-op kept for compatibility.
/EnableSystemChocolateyDeprecated no-op kept for compatibility.
/NoWinGetDo not install WinGet and Microsoft.WinGet.Client if they are missing.