Upstream
Upstream is a rootless package manager for installing software directly from upstream release sources.
It installs binaries, archives, AppImages, and other release artifacts from sources like GitHub, GitLab, Gitea, direct URLs, and scraped download pages. It can also build from source when prebuilt artifacts are unavailable.
Features
- Install packages without root
- Automatically select assets for your OS and architecture
- Upgrade, remove, reinstall, and roll back packages
- Build from source using Rust, .NET, Go, Zig, or CMake
- Track
stable,preview, ornightlychannels - Pin packages to prevent upgrades
- Create desktop entries for GUI apps
- Import/export package manifests and full snapshots
- Optional checksum and signature verification
- Shell integration hooks and diagnostics
Installation
Recommended
# Linux
|
# macOS
|
# Windows PowerShell
|
Cargo
Cargo installs do not support upstream upgrade self-updates.
Manual
Download a release from:
https://github.com/what386/upstream-rs/releases/latest
Then make it executable:
Quick Start
Initialize shell integration:
Install a package:
Install a specific asset kind:
Preview an install without changing anything:
Search for repositories:
Inspect releases before installing:
Upgrade installed packages:
Check for available updates:
List installed packages:
Remove a package:
Run diagnostics:
Common Workflows
Install from a release source
Examples:
Use --match and --exclude to guide asset selection:
Build from source
Examples:
Supported build profiles:
rust
dotnet
go
zig
cmake
Upgrade packages
Manage packages
Import and export
Command Overview
| Command | Purpose |
|---|---|
install |
Install from a release source |
build |
Build and install from source |
upgrade |
Upgrade packages |
remove |
Remove packages |
reinstall |
Reinstall using stored metadata |
rollback |
Restore rollback artifacts |
list |
Show installed packages |
changelog |
Show upstream release notes |
search |
Search provider repositories |
probe |
Inspect releases without installing |
config |
Manage configuration |
package |
Pin, unpin, or rename packages |
hooks |
Manage shell integration |
import |
Import keys, manifests, or snapshots |
export |
Export manifests or snapshots |
doctor |
Check installation health |
Use -y or --yes to accept confirmation prompts automatically.
Documentation
Detailed documentation is available in docs/:
- Documentation index
- Installation and paths
- Command reference
- Package lifecycle
- Building from source
- Configuration
- Trust and verification
- Backup, import, and export
- Troubleshooting
Notes
Upstream installs packages in user space and does not manage dependencies.
License
MIT OR Apache-2.0