Upstream
Upstream is a rootless package manager for installing software directly from release sources like GitHub, GitLab, and arbitrary download pages.
It fetches release assets, selects the best match for your system, and keeps them updated.
Features
- Install from GitHub, GitLab, Gitea, direct URLs, or scraped pages
- Automatic OS + architecture detection (Linux/macOS, x86_64/ARM)
- Supports binaries, archives, AppImages, and compressed files
- Rootless (user-level installs)
- Track update channels:
stable,preview,nightly - Flexible asset matching and filtering
Installation
Recommended (auto-install)
# Linux
|
# macOS
|
# Windows (PowerShell)
|
This installs the binary and enables self-updates.
Install with Cargo
Ensure Cargo bin is in PATH:
⚠️ Cargo installs do not support
upstream upgradeself-updates.
Manual install
- Download a release from https://github.com/what386/upstream/releases/latest
- Make it executable:
Optional: install upstream via itself:
Quick Start
Initialize
Install a package
Example:
Upgrade
Remove
List
Usage
Install
<name>→ local alias<source>→ repo (owner/repo) or URL
Options:
--kind→ asset type (auto,archive,binary, etc.)--provider→github,gitlab,gitea,direct,scraper--channel→stable,preview,nightly--tag→ specific version--match-pattern/--exclude-pattern--desktop→ create launcher entry
Examples:
# GitHub install
# Direct download
# Scrape a page
Upgrade
Remove
Config
Package management
Import / Export
Shell Completions
Download a completion file from releases or generate one.
Install
Bash
Fish
mkdir -p ~/.config/fish/completions
cp upstream.fish ~/.config/fish/completions/
Zsh
Add to .zshrc if needed:
fpath=(/.zfunc )
&&
Architecture Detection
Upstream automatically selects assets based on:
- OS: Linux, macOS
- Arch: x86_64, ARM64
Selection is based on filename patterns and extensions.
Notes
- Upstream installs packages in user space (no root required)
- It does not manage system dependencies
License
MIT OR Apache-2.0