Get started

Release channels

Stable, rc and canary - what each channel is, how to install it, and what to expect from it.

vexillum ships through three channels. Most people want stable, which is what the default install gives you. The other two exist so you can try what is coming before it is released.

ChannelVersion looks likeWhat it isPromise
stablev0.1.1The official release, cut by hand.The one to rely on.
rcvX.Y.Z-rc.NA release candidate: the build that is about to become a stable release.Close to final, published to be tried.
canaryv0.1.1-canary.20261011.gad39bc6A build of the latest work, made automatically.None.

Stable is the only channel that reaches Homebrew. rc and canary builds are published as GitHub pre-releases, so they never replace the version brew install or the default install gives you.

Stable

Stable releases are cut by hand, when the work is ready. This is the default channel:

brew install isaias-alt/tap/vexillum

The install script never installs a pre-release on its own: without options it installs the latest stable release. See Install.

rc

An rc (release candidate) is published before a stable release so the release itself can be tried. It is a GitHub pre-release and is not offered through Homebrew or by the default install. To install a specific one, name its version:

curl -fsSL https://raw.githubusercontent.com/isaias-alt/vexillum/v0.1.1/scripts/install.sh | bash -s -- --version <rc-tag>

Replace <rc-tag> with a real rc tag, of the form vX.Y.Z-rc.N. No rc has been published yet; find the available versions on the GitHub releases page.

The first stable is v0.1.0 and rc builds appear later. Running the script without --version installs the latest stable, through Homebrew when brew is present, and never the rc. To test an rc, pass --version <rc-tag>: it is a direct download that skips Homebrew.

Canary

A canary is a build of the latest work. One is made every night, and only when there is something new since the previous one, so a quiet week produces no builds. A canary never turns into a stable release by itself, and it never reaches Homebrew.

The nightly run is opt-in. It only runs when the CANARY_NIGHTLY repository variable is set to true (Settings, Secrets and variables, Actions, Variables). If the variable is unset, or has any value other than true, the nightly job is skipped. A manual run of the Canary workflow always works, whatever the variable says. This matters if you fork the repository: nothing is published until you turn it on.

Install the latest canary with the --channel option:

curl -fsSL https://raw.githubusercontent.com/isaias-alt/vexillum/v0.1.1/scripts/install.sh | bash -s -- --channel canary

Canary installs are always a direct download, even when Homebrew is on your PATH. The script verifies the sha256 checksum of the archive, installs vx into /usr/local/bin (or ~/.local/bin when you cannot write there) and prints the exact build it installed:

vx --version

Canary has no stability promise

A canary can contain unfinished work, change behavior from one build to the next or break. Do not use it for work you cannot afford to interrupt. If something breaks, go back to stable.

Every canary is a separate build with its own version: the next patch after the latest stable, the build date and the commit it was built from, as in v0.1.1-canary.20261011.gad39bc6. It documents itself on GitHub: open the release for its version to see what changed in that build, and read the project as it was at that version. Old canary builds are cleaned up after a while, so pin a canary only for as long as you are testing it.

Go back to stable

Remove the canary vx from the directory the install message printed (for example /usr/local/bin) and install stable again:

rm /usr/local/bin/vx
curl -fsSL https://raw.githubusercontent.com/isaias-alt/vexillum/v0.1.1/scripts/install.sh | bash

If you installed with Homebrew before, make sure the vx that runs is the one you want: vx doctor warns when another vx earlier in your PATH shadows the one you just installed.

Install options

These options go after bash -s -- when you pipe the script:

OptionEffect
--channel stableThe default. Installs the latest stable release, through Homebrew when it is available. Never installs a pre-release.
--channel canaryInstalls the latest canary build by direct download.
--version <tag>Installs exactly that release by direct download, for example v0.1.0 or vX.Y.Z-rc.N for an rc. The leading v is optional.

--channel and --version cannot be combined: a version already names the exact release. --help prints the same list.

On this page