A fast, modern, distro-independent package manager that just works.
Install static binaries, AppImages, and other portable formats (AppBundle, FlatImage, RunImage, onelf, and more) on any Linux distribution.
Soar installs packages; it does not build or host them. Repositories publish metadata in a standard format, and Soar reads that metadata to search, install, and update packages right under your home directory.
That split is the whole point. soarpkgs is the default repository, but Soar is not tied to it. Add a third-party one, or run your own.
It runs on any Linux distribution, with no superuser, no runtime dependencies, and no distribution packages touched. What you can install depends on the repository. soarpkgs publishes packages for x86_64, aarch64, and riscv64.
Soar is a single statically-linked binary. Grab it with the install script:
# curl
curl -fsSL "https://raw.githubusercontent.com/pkgforge/soar/main/install.sh" | sh
# wget
wget -qO- "https://raw.githubusercontent.com/pkgforge/soar/main/install.sh" | shNote
- Read and verify the script before piping it to a shell.
- It is also served from https://soar.qaidvoid.dev/install.sh.
- Prefer to do it yourself? Download a release
and drop the binary on your
PATH. - To customize the install, see the installation docs.
soar sync # fetch repository metadata
soar search ripgrep # find a package
soar install ripgrep # install it
soar run ripgrep # run it once, without installing
soar list # everything available
soar info # what you have installed
soar update # update everything
soar remove ripgrep # remove itA package can also come straight from a URL or a local file, and one installed from a GitHub or GitLab release keeps tracking that release:
soar install https://github.com/owner/repo/releases/download/v1/toolsoar --help lists the rest. Full documentation lives at
soar.qaidvoid.dev.
| Feature | Description |
|---|---|
| Universal | One statically-linked binary. No dependencies, no superuser, any Linux distribution. |
| Portable formats | Static binaries, AppImages, and other self-contained formats, installed the same way. |
| Install from anywhere | From a repository, a direct URL, or a local file. Releases installed from GitHub or GitLab stay up to date. |
| Delta updates | AppImages advertising a zsync feed update by fetching only the parts that changed. |
| System integration | Desktop entries, icons, man pages, and shell completions land where your system already looks. |
| Secure by default | Checksums and signatures are verified before anything is installed. |
| Fast | Parallel downloads and low-overhead package operations. |
Installing or updating from a release uses that forge's API, which is rate
limited. GitHub allows 60 requests an hour unauthenticated, which is easy to
reach, so set GITHUB_TOKEN or GH_TOKEN if you track several packages that
way. GitLab counts per minute and is rarely a problem, but honours
GITLAB_TOKEN and GL_TOKEN all the same.
Contributions are welcome. Fork the repository, open a pull request, and see CONTRIBUTING.md for the guidelines.
v1.88.0