You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 portable installations and where UniGetUI stores its data, see PORTABLE.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
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.
Option
Meaning
--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:
Variable
Meaning
UNIGETUI_IPC_API_TRANSPORT
Same as --transport.
UNIGETUI_IPC_API_PORT
Same as --tcp-port.
UNIGETUI_IPC_API_PIPE_NAME
Same as --pipe-name.
Exit codes
Code
Meaning
0
Success
1
Command failed
2
Invalid parameter
3
IPC API unavailable
4
Unknown automation command
Command grammar notes
Command nouns accept singular or plural forms: operation/operations, package/packages, manager/managers, source/sources, shortcut/shortcuts, log/logs, backup/backups, and bundle/bundles.
startmenu is accepted as a spelling of start-menu, and folders as a spelling of folder.
Compatibility aliases are accepted for some flags:
--id maps to --package-id or --operation-id where appropriate
--source maps to --package-source
--source-name and --source-url map to --name and --url on source add and source remove
--name maps to --key on backup cloud download and backup cloud restore
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, bun, cargo, chocolatey, dnf, dotnet-tool, flatpak, homebrew, npm, pacman, pip, pwsh, scoop, snap, vcpkg, winget, and winps.
Command reference
Core
Command
Required options
Optional options
Notes
status
None
None
Returns transport, endpoint, and build information for the selected automation session.
version
None
None
Returns the UniGetUI build number through the IPC API.
App
Command
Required options
Optional options
Notes
app status
None
None
Returns app/session state such as headless mode, page, and supported UI actions.
app show
None
None
Shows 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 quit
None
None
Gracefully shuts down the selected session, including headless daemons.
Operations
Command
Required options
Optional options
Notes
operation list
None
None
Lists tracked live and completed operations.
operation get
--id <operation-id>
None
Returns 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.
Lists tracked desktop shortcuts and stored keep/delete verdicts.
shortcut set
--path <path>, --status <keep|delete>
None
Marks a shortcut to keep or delete.
shortcut reset
--path <path>
None
Clears the stored verdict for one shortcut.
shortcut reset-all
None
None
Clears all stored shortcut verdicts.
Start Menu shortcuts
Windows only. Deletion verdicts are keyed by shortcut path and are re-applied whenever an upgrade recreates the shortcut. Paths outside a Start Menu Programs directory, and paths that are not a .lnk or .url shortcut, are rejected.
Command
Required options
Optional options
Notes
start-menu shortcut list
None
None
Lists tracked Start Menu shortcuts and stored keep/delete verdicts.
start-menu shortcut set
--path <path>, --status <keep|delete>
None
Marks a Start Menu shortcut to keep or delete.
start-menu shortcut reset
--path <path>
None
Clears the stored verdict for one shortcut.
start-menu shortcut reset-all
None
None
Clears every stored verdict. Folder rules and the relocations they recorded are left alone.
Start Menu folders
Windows only. A folder rule names the subfolder of the current user's Start Menu Programs directory where a package should keep its shortcuts. UniGetUI re-applies it after every install and upgrade, and deletes the relocated shortcuts when the package is uninstalled.
--package is the rule key, in manager\PackageId form, for example winget\Python.Python.3.13; the manager segment is lower-cased. Note that the key carries no source, unlike package equivalence elsewhere in UniGetUI, so two packages sharing a manager and an id but coming from different sources share a single rule and cannot be placed in different folders. --folder must be a subfolder of the Start Menu Programs directory, so an absolute path, a .. segment or the machine-wide directory is rejected.
Command
Required options
Optional options
Notes
start-menu folder list
None
None
Lists the stored folder rules, plus any package that only has pending shortcuts. The latter are reported with an empty folder, so a script that wants actual rules has to skip them.
start-menu folder set
--package <manager\id>, --folder <name>
--relocate-existing
Stores a folder rule. --relocate-existing also moves the shortcuts that already match the package.
start-menu folder remove
--package <manager\id>
None
Removes the folder rule for one package.
Logs
Command
Required options
Optional options
Notes
log app
None
--level <n>
Returns structured application log entries.
log operations
None
None
Returns persisted operation history.
log manager
None
--manager <id>, --verbose
Returns manager task logs.
Backups
Command
Required options
Optional options
Notes
backup status
None
None
Returns backup settings and cloud-auth state.
backup local create
None
None
Creates a local backup bundle.
backup github login start
None
--launch-browser
Starts the GitHub device flow.
backup github login complete
None
None
Completes the pending device flow.
backup github logout
None
None
Clears the stored GitHub auth token.
backup cloud list
None
None
Lists cloud backups in the authenticated GitHub backup store.
backup cloud create
None
None
Uploads the current backup to cloud storage.
backup cloud download
--key <name>
None
Downloads one cloud backup as bundle content.
backup cloud restore
--key <name>
--append
Imports one cloud backup into the current in-memory bundle.
Deletes desktop or Start Menu shortcuts, then quits.
Used by UniGetUI to remove shortcuts the current user is not allowed to delete; refuses any path that is not a .lnk or .url under a desktop or Start Menu folder.
<bundle-file>
Loads a valid bundle file into the Package Bundles page.
Supported extensions include .ubundle, .json, .yaml, and .xml.
Other environment variables
These are read by the application itself rather than by the CLI client.
Variable
Values
Meaning
UNIGETUI_WINGET_CLI
default, winget, pinget
Chooses which WinGet command-line tool the WinGet manager drives. Takes precedence over the WinGetCliToolPreference setting.
Forces the WinGet COM API on or off instead of letting UniGetUI decide. Takes precedence over the WinGetComApiPolicy setting.
UNIGETUI_FONT_FAMILY
A font family name
Windows only. Prepends a family to the UI font chain. Ignored when the "use the system UI font" setting is on, and an entry containing the Avalonia $Default family is discarded.
UNIGETUI_FORCE_NATIVE_LINUX_DECORATIONS
1/true/on/yes/enabled, 0/false/off/no/disabled
Linux only. Forces the window manager's own title bar on or off instead of auto-detecting. An unrecognized value is ignored with a warning.
UNIGETUI_GITHUB_TOKEN_NAMESPACE
Any string
Suffixes the credential-store entry holding the GitHub backup token, so several UniGetUI instances on one machine can hold separate logins.
WEBVIEW2_BROWSER_EXECUTABLE_FOLDER
A directory path
Windows only. Points the embedded web view at a fixed-version WebView2 runtime instead of the installed evergreen one.
Deep links
The Windows installer registers a unigetui:// protocol handler for regular installations; a portable install does not register it, see PORTABLE.md. It is used to route notification clicks back into a running instance, and accepts these actions:
Deep link
Meaning
unigetui://openUniGetUI
Shows UniGetUI and brings the window to the front.
unigetui://openUniGetUIOnUpdatesTab
Shows UniGetUI on the Software Updates page.
unigetui://updateAll
Starts an update for every available package update.
unigetui://releaseSelfUpdateLock
Allows a pending UniGetUI self-update to proceed.
Anything else after unigetui:// is ignored. The action is only dispatched when UniGetUI is already running: a link that cold-starts the app launches it normally and the action is dropped. To drive UniGetUI programmatically, use the verb commands above or the IPC API rather than deep links.
Do not register UniGetUI to start minimized at login.
/NoVCRedist
Skip installation of the MSVC x64 runtime.
/NoEdgeWebView
Skip installation of the Microsoft Edge WebView runtime.
/NoChocolatey
Deprecated no-op kept for compatibility.
/EnableSystemChocolatey
Deprecated no-op kept for compatibility.
/NoWinGet
Do not install WinGet and Microsoft.WinGet.Client if they are missing.
/MSStore
Microsoft Store install mode: skip the MSVC and WebView2 dependency installers, do not launch UniGetUI after installation, and disable startup at login. Use with /CURRENTUSER to select user-local scope.
The installation type is an Inno Setup task rather than a switch. Pass /TASKS="portableinstall" for a portable installation; the default is regularinstall, which additionally accepts regularinstall\startmenuicon and regularinstall\desktopicon. A portable install keeps its settings beside the executable and registers no protocol handler, file association, shortcuts or startup entry, see PORTABLE.md.