OmniGet is a unified command-line tool designed to simplify package management across WinGet and Scoop. It provides a consistent interface for installing, updating, searching, and managing software packages without requiring users to remember different syntax or commands for each underlying package manager.
Key Features:
Unified CLI support for install, update, search, and manage operations.
Automatic detection of installed package managers (WinGet and Scoop).
Cascading fallbacks that attempt installations across package managers if an app is unavailable in one.
Custom flag passthrough to the underlying tools.
Ability to force commands to specific package managers or disable cascading behavior.
Audience & Benefit:
Ideal for IT professionals, developers, and systems administrators who manage software on Windows environments. OmniGet streamlines workflows by reducing complexity, saving time, and ensuring seamless package management across multiple tools.
README
OmniGet 📦
A sleek, universal PowerShell wrapper and environment orchestrator for Windows. OmniGet brings WinGet, Chocolatey, and Scoop under a single, unified CLI interface, alongside advanced tools to manage environment variables, PATH settings, shell aliases, and declarative package synchronizations.
✨ Features
🚀 Parallel Execution Engine: Read-only queries (search, list, outdated) execute concurrently across active package managers using PowerShell Runspaces, completing operations 2-3x faster.
🌐 Live Environment Variable Manager (omniget env): Create, list, or delete environment variables. Set operations instantly broadcast WM_SETTINGCHANGE globally, updating active shells and system processes without requiring a reboot.
🛣️ Intelligent PATH Manager (omniget path): List, append, or prepend folders to your environment PATH with built-in duplicate prevention.
🩺 Path & Environment Doctor (omniget doctor): Cleans dead paths (folders that no longer exist) and duplicate path entries. Audits User PATH by default; audits System PATH only when explicitly running omniget doctor --system.
🔄 Declarative Synchronization (omniget sync): Align your machine's package catalog with a state file. Installs missing tools and prunes extraneous tools automatically.
💾 Backup & Restore (omniget export / omniget import): Export installed catalog files to structured .json or raw .txt files and restore them on new environments.
🎭 Environment Profiles (omniget profile): Save current environment layouts and switch between them instantly (e.g. toggling development toolchains).
👥 Persistent Alias Manager (omniget alias): Easily register persistent command shortcuts inside your PowerShell $PROFILE.
⚙️ Priority Cascade & Wizards: Route installs based on custom priorities. The wizard checks for missing managers and offers interactive console/GUI checks to bootstrap them on setup.
🛡️ UAC-Bypass User-Scope installs: Runs silent user-scope installs for WinGet non-elevated to bypass Windows admin prompts.
TUI (Terminal UI): Run omniget ui to manage your system via a keyboard-interactive ANSI menu, now with Batch Installs and Batch Upgrades via selection checkboxes.
🚀 Installation
Option 1: Via WinGet (Recommended)
You can install OmniGet natively through WinGet:
winget install -e --id Nexus.OmniGet
Option 2: Native Setup Installer
Download the OmniGetSetup.exe binary from the latest GitHub Release. The installer:
Automatically deploys the application files to %LOCALAPPDATA%\OmniGet.
Prompts to bootstrap missing package managers (Scoop, Chocolatey).
Configures your user environment PATH.
Launches the setup wizard to configure priority cascades and bypass options.
📚 Examples & Usage
📦 Package Management
# Cascade install across WinGet, Choco, Scoop
omniget install nodejs
# Update all outdated applications and print a color-coded summary table
omniget upgrade all
# Search all registries concurrently
omniget search python
# List all tracked packages concurrently
omniget list
⚙️ Environment Variables & PATH
# Display all environment variables
omniget env show
# Set user-level variable and broadcast globally (takes effect instantly)
omniget env set MY_API_KEY "secret_value"
# Add a folder safely to User PATH (prevents duplicates)
omniget path add "C:\MyCustomBin"
# Audit PATH issues, cleaning dead folders and duplicates on User PATH
omniget doctor
# Audit and prune System PATH specifically (requires Admin)
omniget doctor --system
💾 Backup, Sync & Profiles
# Backup package catalog to JSON or plain TXT
omniget export my_backup.json
# Restore from a backup catalog
omniget import my_backup.json
# Declaratively sync system state to match package list
omniget sync my_backup.json
# Save environment profile
omniget profile save node-dev
# Load environment profile
omniget profile switch python-dev
👥 Shell Customization
# Register persistent shortcut in PowerShell $PROFILE
omniget alias add g git
# List custom shortcuts
omniget alias list
⚙️ Configuration & Priority Cascade
OmniGet config is stored at ~/.omniget_config.json.
Show config: omniget config show
Reset wizard: omniget config reset (initiates configuration and lets you bootstrap missing managers).
🚩 Global Flags
Flag
Description
--dry-run
Safe Mode: Previews execution commands without making changes.
--pm
Targeted Mode: Forces routing through a specific manager (e.g. winget, choco, scoop, pip, npm, cargo, nuget).
--no-cascade
Strict Priority: Stops execution if the highest priority manager fails.
-v, --version
Displays version and underlying manager configurations.