<!-- markdownlint-disable MD025 -->

UPI

Universal Package Installer. One command to install anything, anywhere.

5 OS Families
8 Package Managers
Zero Setup
Offline First

Quick Start GitHub
What is UPI?

UPI translates a generic package name into the correct native install command for your system. It is a translator and resolver over existing package managers, not a package manager itself.

upi install vim               # macOS:   brew install vim
upi --os debian install vim   # Debian:  apt install vim
upi --os arch install vim     # Arch:    pacman -S vim
upi --os windows install vim  # Windows: choco install vim

Works offline. Works everywhere.

Features

Cross Platform

One command for macOS, Debian, Fedora, Arch, and Windows. UPI knows the right package name and the right package manager for every OS.

Offline First

Built-in compressed SQLite seed database with 10,089 mappings across 531 packages. Works immediately after install with no network required.

Repology Powered

When the local database does not have a match, UPI queries Repology’s global package index for live resolution across 10,000+ projects.

Multi Source Pipeline

Resolution follows a priority chain: database (confidence=1), then Repology, then package manager fallback, then identity. Each source is weighted and transparent.

YAML Defined

OS behavior lives in YAML files under Build/platform/. Adding a new OS means dropping a YAML file with no Rust changes required.

Pure Rust

Built entirely in Rust. No runtime dependencies, no Node.js, no Python. Single binary with embedded assets.

Quick Example

Search
Install (dry-run)
Offline
upi search vim
 OS:       Macos
 Manager:  homebrew
 Query:    vim
 Results:
   vim                          <- database (confidence=1)
   neovim                       <- repology
   macvim                       <- repology
 Command:  brew install vim
upi --dry-run install python

Shows the command that would run without executing it. Works across any OS:

upi --os debian --dry-run install python   # -> sudo apt install -y python2.7
upi --os arch --dry-run install python     # -> sudo pacman -S --noconfirm python2
upi --os windows --dry-run install python  # -> sudo choco install -y python3
upi --offline --dry-run install vim

No network calls. Resolves entirely from the built-in seed database.

Installation

cargo install upi

Or download a pre-built binary from the releases page.

Next Steps