Installation
Choose one installation method, then confirm aube --version works in your shell. Release archives include aube plus the aubr and aubx shortcuts. Node.js is needed to run JavaScript; aube can resolve a project-pinned Node version for you.
| Method | Use it when |
|---|---|
| mise | You want aube and Node managed together |
| Homebrew | You use Homebrew on macOS or Linux |
| npm | You want installation through an existing npm setup |
| Cargo | You have a Rust toolchain and want to compile the release |
| Ubuntu PPA / Fedora COPR | You prefer system packages on a supported distribution |
| Source | You want to build a checkout |
Recommended: mise
Install aube globally with mise:
mise use -g aubeThis installs aube on your PATH and lets mise manage future upgrades.
TIP
We recommend mise because it can manage aube and your Node.js runtime from the same toolchain. If your projects already pin Node through package.json (devEngines.runtime) or files such as .nvmrc and .node-version, opt mise into reading those idiomatic version files:
mise settings add idiomatic_version_file_enable_tools nodeFrom crates.io
If you already have a Rust toolchain installed, you can install the latest released aube from crates.io:
cargo install aube --lockedINFO
--locked makes cargo honor the committed Cargo.lock so you get the same dependency versions CI built against. The compiled binary lands in ~/.cargo/bin/aube.
From Homebrew
aube is published from the jdx tap until it lands in homebrew-core:
brew install jdx/tap/aubeThe tap provides the formula and shell completions.
From npm
aube is also published on npm as @endevco/aube:
npm install -g --ignore-scripts=false @endevco/aube
npx --ignore-scripts=false @endevco/aube --versionWARNING
The npm package relies on its preinstall script to fetch the platform-specific native binary and wire up the aube, aubr, and aubx commands. That native binary is what gives aube its startup and install performance; without the script, npm can leave the package installed without working commands. The npm commands above pass --ignore-scripts=false so it still works for users with ignore-scripts=true in their npm config.
We recommend installing with mise if you want the native binary without npm lifecycle-script behavior.
Ubuntu (PPA)
Supported: Ubuntu 26.04 (resolute).
aube publishes signed .deb packages to the Launchpad PPA ppa:jdxcode/aube:
sudo apt install -y software-properties-common # if add-apt-repository isn't already available
sudo add-apt-repository -y ppa:jdxcode/aube
sudo apt install aubeFuture upgrades go through apt:
sudo apt update && sudo apt install --only-upgrade aubeFedora / RHEL (COPR)
Supported: Fedora 43, Fedora 44, Fedora Rawhide, EPEL 10 (RHEL / Rocky / Alma 10), both x86_64 and aarch64.
aube publishes RPMs to the COPR project jdxcode/aube:
sudo dnf copr enable jdxcode/aube
sudo dnf install aubeThe dnf copr subcommand ships with dnf-plugins-core — install that first on EPEL and anywhere else the plugin isn't already pulled in. Future upgrades go through the package manager:
sudo dnf upgrade aubeFrom source
If you want to build the current checkout yourself, use the standard source build flow:
git clone https://github.com/aubepkg/aube
cd aube
cargo install --path crates/aubeThis installs the aube binary into ~/.cargo/bin.
GitHub Actions
Use jdx/aube-action to install the native binary and optionally Node.js. See CI and containers for a complete workflow and advice on frozen installs and caches.
Verify
aube --versionShell completions
Completions are powered by usage, so install that first:
mise use -g usageInstall completion files for your shell:
aube completion bash --install
aube completion zsh --install
aube completion fish --installRun the command for the shell you use. It installs completion files for aube, aubr, and aubx and prints any shell-specific setup still needed. It does not edit your shell startup file. Omit --install to print the completion script instead. See aube completion for PowerShell and per-binary options.
aube run <TAB> and aubr <TAB> complete the scripts declared in the package.json nearest your current directory, with each script's command shown as the description. A -C earlier on the line isn't taken into account — the scripts offered are always the current directory's.
Next step
Run your first project script, or choose a migration guide from the documentation map.