OmniPack - Developer Package Manager
English | 简体中文

The ultimate sandbox environment & system package manager for modern developers.
OmniPack is a high-performance GUI wrapper for Python (uv/pip), Node.js (npm/pnpm), and Windows Package Manager (WinGet). It helps you manage scattered virtualenvs, explore deep dependency trees, handle local packages, and seamlessly control system-wide applications with unprecedented visual efficiency.

💡 Why OmniPack?
There are already excellent global app stores like UniGetUI and powerful native CLI tools like pip, npm, pnpm, and winget. What pain point does OmniPack solve?
If you’re an active developer, your disk is likely scattered with dozens of legacy project folders containing .venv or node_modules.
- Every time you want to check or update dependencies for a project, you have to: find the path -> open terminal ->
cd -> activate -> type long commands…
- When facing a hundred-line flat
pip list error, you have no easy way to know which top-level dependency introduced that conflicting version.
- When uninstalling certain user-level packages in an administrative terminal, operations are often blocked by system scope restrictions.
OmniPack was born for this: It’s not a generic system app store; it’s your environment isolation micro-manager in a sea of engineering code.
✨ Core Features
🖥️ Built-in Interactive PTY Terminal & Adaptive Task Monitor
Say goodbye to the “blind” read-only simulated console! OmniPack features a full-fledged Pseudo-Terminal (PTY) engine integrated directly into the UI:
- True PTY Integration: Uses
pywinpty on Windows and native pty/os.fork() on macOS/Linux to run real interactive shells with 0 MB size overhead.
- Rich ANSI Capabilities: Streamed output is parsed by the lightweight
pyte library, supporting full ANSI color palette mapping and dynamic progress bars (e.g. uv / pip / pnpm downloads).
- Silent Synchronization & Marker Interceptor: Changing environments or working directories on the left instantly and silently switches directories (
cd) or activates virtualenvs in the terminal. When performing package actions, OmniPack writes CLI commands to the terminal and monitors operation success via a unique UUID marker, triggering an incremental Fast Refresh on completion.
- Adaptive Task Monitor Panel (TaskMonitorWidget): Sits conveniently between console and terminal, dynamically toggling between 34px compact mode and 72px expanded view. Tracks 4-stage pipeline execution (Fetch Release -> Download Pkg -> Verify Signature -> System Install) with live download speeds, downloaded/total bytes, ETA, and direct release escape buttons.
- Highly Customizable: Choose your preferred default shell (
cmd.exe, powershell.exe, pwsh.exe, or custom shell binaries) and switch console modes instantly between Simulated and Real Terminal.
🐍 Python Virtual Environments & Dependency Inspector (uv / pip)
Break free from command-line flat lists and take total control over every Python environment:
- Native
uv Engine Integration: Seamlessly leverages Astral sh’s blazing-fast uv engine for order-of-magnitude faster resolution and downloads, with automated background installation.
- Hierarchical Dependency Tree & Ghost Deps: Top-Level view filters noise and reveals the actual dependency tree you manually installed. Automatically detects “Ghost Dependencies” imported in code but omitted from configuration manifests.
- Constraint-Aware Auto-Selection & Safe Intermediates: Recommends the highest compatible intermediate version (blue
🔒 badge) when the latest version violates constraints. Shows orange ⚠ when no safe path exists. Automatically identifies hardware build variants (e.g. CUDA switching to CPU with 🔀).
- User-Site & System Dual-Path Isolation: Supports dual-path parallel scanning for user site-packages, with non-admin fallback via
--target to avoid system pollution.
- Virtual Environment Repair Wizard (EnvRepairDialog): Flags broken environments with a prominent red
⚠️ Damaged indicator and provides 3-way remediation: re-installing missing Python versions, rewriting virtualenv links to an existing interpreter, or outputting manual CLI repair scripts.
- Self-Hosting Environment Guard: Detects when a virtual environment is currently hosting the running OmniPack process in source mode, displaying a
[当前宿主] badge and intercepting modifications to locked libraries (e.g. PySide6) or the active interpreter to prevent Windows file lock crashes (WinError 32 / WinError 5).
- Wheel Batch Downloader & URL Exporter: Downloads
.whl binaries for outdated packages to a local folder in batch, or exports shareable platform-compatible wheel download URLs.

📦 Node.js Modern Package Management (npm / pnpm)
Embraces modern frontend package ecosystems with granular version and dependency control:
- Native pnpm Backend Support: Toggle pnpm as the primary package manager engine for rapid, disk-efficient symlink installations, with automatic binary discovery across PATH and local app directories.
- Hybrid Global Scanning & Precise Routing: Merges npm and pnpm global installations into a single cohesive list. Global pnpm tools display an orange
[pnpm] badge, and commands are dispatched to the corresponding manager automatically.
- SemVer 2.0.0 Compliance & 10-Channel Detection: Implements strict SemVer 2.0.0 comparison rules (
1.2.3 > 1.2.3-alpha.1) supporting both hyphenated and dotted notations. Automatically recognizes 10 prerelease channels: alpha, beta, rc, canary, next, nightly, preview, dev, insiders, and experimental.
- High-Speed HTTP Dist-Tags: Queries npm registry dist-tags directly via HTTP in sub-seconds. Package configuration dialogs support one-click channel switching with instant recalculation of updates.
- Deep Project Root Tracing: Point to any nested directory, and OmniPack automatically resolves the true project root containing
package.json.
- Node.js Runtime Patch Upgrades: Displays Node runtime versions and enables one-click upgrades via a dedicated
Nd button.
🪟 Windows Native WinGet Deep Integration (Windows Only)
No need to launch complex CLIs or cluttered third-party app stores. OmniPack natively manages the built-in Windows Package Manager WinGet:
- Unified App Management & Scope Tagging: Merges all installed desktop applications into a single environment, dynamically displaying
[sys] (system) and [user] (user) badges directly on package cards (or both when co-existing).
- Dual-Tier De-elevation & Native Uninstaller Pipeline:
- Tier 1 (ARP Registry Uninstaller Dispatch): Inspects HKLM and HKCU uninstall registries to invoke official vendor uninstallers natively (MsiExec
/X conversion, /SILENT, /S, /qb switches) wrapped in start "" /wait to completely purge program files, shortcuts, and registry entries without leftovers.
- Tier 2 (Windows Token De-elevation
de_elevate.py): For portable and registry-less applications, duplicates the standard user (Medium Integrity) token from TokenLinkedToken to execute winget uninstall in a non-elevated security context, bypassing WinGet 1.29+ elevated 0x8A15007D errors.
- Staged UWP/MSIX App Detection & Local Re-registration: Scans the registry and
AppxManifest.xml manifests offline to detect system-provisioned (Staged) but unregistered UWP applications, listing them as missing with a [Staged] tag and providing one-click background registration (Add-AppxPackage) or removal.
- Concurrent Pre-Download Pipeline: Uses
ThreadPoolExecutor to pull packages and manifests concurrently before batch upgrades, running offline installations via --manifest to eliminate network timeouts.
- Non-Removable Safeguards & Win32 ARP Deduplication: Automatically locks uninstall actions for critical protected system apps (like App Installer, Microsoft Store, and Edge) and uses GUID validations alongside name/version hashing to eliminate duplicate Win32 entries from overlapping registry paths.
- Fixed-Width Column Slicing Console Parser: Built with an East-Asian character-rendering width-padding calculation engine, making the table parser completely immune to column merging, empty values, or language-specific localized formatting.
- Ignore Updates with Blocking Pin: Integrated with native
winget pin to toggle Blocking Pins on specific apps via a ⚙ button, showing a [Pinned] badge and automatically skipping them in the global “Outdated” filter.
- Intelligent Scope Fallback: If an install or upgrade fails due to write permissions, locked folders, or path mismatch, OmniPack automatically attempts fallback installation with
--scope user.

OmniPack handles runtime environment bootstrap across Windows, macOS, and Linux:
- Contextual Setup Prompts (RuntimeSetupWidget): Displays a styled setup card at the bottom of the scroll view when Pip, Npm, or WinGet panels have zero loaded environments, allowing users to trigger installation pipelines instantly.
- System-Wide WinGet Setup (Windows): Automatically downloads and installs WinGet along with its required dependencies (VCLibs and UI.Xaml) on Windows using a background PowerShell worker, featuring full proxy support.
- macOS & Linux Support: Seamlessly download and bootstrap Python and Node.js runtimes. Linux supports automated installation via
uv (for Python) or tarball decompression and automatic path symlinking (for Node.js). macOS supports downloading official .pkg packages and running GUI installers interactively.
- Automated Backend Bootstrapping: Detects and silently installs missing
uv and pnpm engines in the background upon launch.
🛠️ Developer Experience & UI Polish
- Drag-and-Drop Reordering & Quick Management: Drag environment cards to reorder with visual indicators and persistent layout saving; right-click headers to rename, delete, or jump directly to the settings panel.
- Batch Paste Intake: Click “➕ Add Environment” and paste multiple paths directly from File Explorer or Everything to bulk-import virtual environments with automatic deduplication.
- Copyable Dialog Labels & Package Details: Injected a global event filter making QMessageBox and QDialog text copyable. Package configuration dialogs support one-click copy of name, ID, source, version, and location.
- Async System Source Detection: Performs system source profile probing in a dedicated thread to ensure zero UI freezing when opening the settings dialog.
- Compiler-Grade Performance: Supports compilation via Nuitka into a native, standalone single-file executable.
🚀 Quick Start
Method 1: Download Portable Version (Recommended)
Go to the GitHub Releases area to get the latest pre-built single-file package (supports Windows/Linux/macOS). Double-click to run; all configuration and operation data will be recorded locally.
Method 2: Run from Source
- Ensure Python 3.10+ is installed.
- Clone the repository and install dependencies:
git clone https://github.com/LeoOfGit/OmniPack.git
cd OmniPack
pip install -r requirements.txt
- Run:
python OmniPack.py
📚 Detailed Documentation & Guides
OmniPack - The modern environment isolation & system package management tool for developers.
评论