Skip to content

OmniPackage documentation

Reference and guides for OmniPackage, a CLI for building and publishing signed RPM, DEB, and pacman packages to many Linux distributions from one YAML config. For the project overview, see omnipackage.org.

Where to start

30-second example

omnipackage init .
echo "GPG_KEY=$(omnipackage gpg generate --name 'Your Name' --email you@example.com --format base64)" >> .env
# edit .omnipackage/config.yml — point repositories: at your bucket
omnipackage release .

Full walkthrough: Getting started.

Real-world projects

  • olegantonyan/mpz — Qt desktop music player. 36 build targets, Qt5/Qt6 split via YAML anchors, per-distro CMake flags, R2 with Cloudflare cache purges.
  • omnipackage/omnipackage-rs — OmniPackage built with itself. before_build_script installs a current Rust toolchain on older distros; newer ones use distro-packaged Rust. Dual GHCR caches cover org and contributor-fork workflows.
  • omnipackage/examples — minimal one-per-language templates (C, C++, CMake, Rust, Go, Python, Ruby, Crystal, Electron, Tauri).

See Examples for details.