Skip to content

LeoOfGit/OmniPack

Repository files navigation

OmniPack Hero Banner

OmniPack - Developer Package Manager

English | 简体中文

Python Node.js PySide6 License

The ultimate sandbox environment manager for modern developers.

OmniPack is a high-performance GUI wrapper for Python (uv/pip) and Node.js (npm). It helps you manage scattered virtualenvs, explore deep dependency trees, and handle local packages with unprecedented visual efficiency.


OmniPack Node.js View

💡 Why OmniPack?

There are already excellent global app stores like UniGetUI and powerful native CLI tools like pip and npm. What pain power does OmniPack solve?

If you're a seasoned 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.

OmniPack was born for this: It's not a system app store; it's your environment isolation micro-manager in a sea of engineering code.


✨ Core Features

🚀 High-Speed Engine: Native uv Power

It's not just fast; it’s fast even in a GUI! OmniPack natively integrates Astral sh's acclaimed uv engine. Enjoy order-of-magnitude faster downloads and resolution compared to traditional pip.

🌳 Crystal Clear: Hierarchical Dependency Tree

Break free from the command-line’s flat list black box.

  • Top-Level View: Filters out noise and reveals the dependency tree you actually manually installed.
  • Infinite Hierarchy: Who pulled in what? It’s clear at a glance.
  • Ghost Deps Capture: Automatically identifies libraries called in your code but never officially declared.

OmniPack Python View

🗂️ Zero-Friction Management: Batch Environment Import

We know you have dozens of projects. Just select those folders in [Everything] or File Explorer, Ctrl+C to copy paths, and Batch Paste them into OmniPack with one click. Its detection engine automatically strips away .venv noise to extract clean project names.

OmniPack Batch Import

🎯 Ultimate Node.js Version Control

More than just npm install. OmniPack dynamically pulls Dist-Tags from the cloud, allowing second-level switching and previewing between channels like latest, beta, or rc.

OmniPack Dependency Tree

🧭 Runtime Patch Awareness & Update

OmniPack distinguishes package updates from runtime updates:

  • Accurate runtime version display: cards display Python/Node runtime version per environment, and Python venv cards prioritize pyvenv.cfg metadata to avoid being confused by a newly patched system interpreter.
  • Patch update detection: for Python (3.14.x) and Node (25.x), OmniPack checks the latest patch in the same cycle and shows current -> latest directly on cards.
  • Dedicated runtime update action: runtime update uses a separate card action (Py / Nd), while remains package update only.

⛑️ Safe Update Intelligence: Constraint-Aware & Variant-Aware

OmniPack knows which updates are safe and which need a second look.

  • Constraint-Aware Auto-Selection: When "Outdated" is checked, packages whose latest version violates dependent version constraints (e.g., mpmath 1.4.1 breaks sympy's <1.4 rule) are not auto-selected. A visual indicator explains why.
  • Build Variant Detection: Automatically recognizes PEP 440 local version suffixes (+cu132, +cpu, +rocm5.6). If updating would switch your package between different hardware builds (CUDA → CPU), a 🔀 indicator warns you.
  • Confirmation dialogs: Clicking update on a flagged package triggers a detailed risk dialog. You can still proceed — but only after being fully informed.

OmniPack Version Limits

⚡ Compiler-Grade Performance: Smooth Native Experience

Built with PySide6 and support for Nuitka compilation into a C++ level native single executable (.exe / ELF binary). It doesn't just respond instantly; it also supports one-click mirror source switching.

OmniPack Settings Sources


🚀 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

  1. Ensure Python 3.10+ is installed.
  2. Clone the repository and install dependencies:
    git clone https://github.com/LeoOfGit/OmniPack.git
    cd OmniPack
    pip install -r requirements.txt
  3. Run:
    python OmniPack.pyw

📚 Detailed Documentation & Guides


🤝 Contributing

OmniPack aims to be the most elegant cross-language developer package management center. Thanks to the highly decoupled Panel <-> Manager architecture, even with minimal UI experience, you can quickly write a Backend to integrate Rust (Cargo), Go, Ruby (Gems), and more by reading the Architecture Guide!

Pull Requests and Issues are more than welcome!


📄 License

This project is licensed under the GPL v3.0 License.

About

A powerful GUI for Python (uv/pip) and Node.js (npm). Effortlessly manage scattered virtual environments, visualize dependency trees, and batch import projects. 一款专为 Python (uv/pip) 和 Node.js (npm) 设计的强大 GUI 工具。助您轻松管理分散的虚拟环境、可视化依赖树,并批量导入项目。

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages