Skip to content
Saule
Docs

Installation

macOS and Linux

Terminal window
curl -fsSL https://lauriszz123.github.io/saule/install.sh | sh

Windows

Terminal window
irm https://lauriszz123.github.io/saule/install.ps1 | iex

Then open a new terminal:

Terminal window
saule --version

The installer picks the right build for your machine, verifies it against the release’s SHA256SUMS, installs both binaries into ~/.saule/bin (%USERPROFILE%\.saule\bin on Windows), and puts that directory on your PATH. Running it again upgrades in place.

That command installs the stable channel, which is the one to want unless you have a reason otherwise.

Channel What you get
stable The newest release that has been blessed as stable. Moves only when somebody decides it should. The default.
latest The newest release of any kind — whatever the last push to main built. New features arrive here first, and so do new bugs.

Both channels carry the same kind of version number: 26.7 is 26.7 on either one. Stability is a property of the release, not of the version, so there is no -stable suffix to parse and min_saule_version keeps working unchanged.

To take the latest channel:

macOS and Linux

Terminal window
SAULE_CHANNEL=latest curl -fsSL https://lauriszz123.github.io/saule/install.sh | sh

Windows

Terminal window
$env:SAULE_CHANNEL='latest'; irm https://lauriszz123.github.io/saule/install.ps1 | iex

Your choice is remembered in ~/.saule/channel, so re-running the installer upgrades you within the channel you picked rather than quietly moving you to the other one. To switch, set SAULE_CHANNEL again. To see which one you are on, read that file — and saule --version reports the version either way.

Piping a script into a shell is worth being suspicious of. Both scripts are short and are served from this site over HTTPS; read either before running it:

Terminal window
curl -fsSL https://lauriszz123.github.io/saule/install.sh | less

Both installers are configured by environment variables.

Variable Effect
SAULE_CHANNEL stable (the default) or latest — see Two channels
SAULE_VERSION Install one exact version, e.g. 26.7. Overrides SAULE_CHANNEL, and does not change the channel you are remembered as being on
SAULE_HOME Install root. Used verbatim — it is the directory, not a parent to append .saule to. Defaults to ~/.saule
SAULE_NO_MODIFY_PATH=1 Install the binaries but leave your shell profile and PATH alone
Terminal window
SAULE_VERSION=26.7 curl -fsSL https://lauriszz123.github.io/saule/install.sh | sh
Binary Purpose
saule The compiler and runtime, plus check, test, fmt, init and the package commands
saule-lsp The language server, used by every editor plugin

Both, always. The editor plugins find the language server on PATH or in ~/.saule/bin. Without saule-lsp installed you get syntax highlighting and indentation (which are client-side) but no formatting, hover, or diagnostics.

Every release publishes a signed-checksum archive per platform on the releases page.

Terminal window
# Verify before unpacking — SHA256SUMS covers every archive in the release.
shasum -a 256 -c SHA256SUMS --ignore-missing
tar xzf saule-<version>-<triple>.tar.gz
mkdir -p ~/.saule/bin
cp saule-<version>-<triple>/saule saule-<version>-<triple>/saule-lsp ~/.saule/bin/
export PATH="$HOME/.saule/bin:$PATH"

Supported triples:

Platform Triple
macOS, Apple Silicon aarch64-apple-darwin
macOS, Intel x86_64-apple-darwin
Linux x86-64, glibc x86_64-unknown-linux-gnu
Linux x86-64, musl (Alpine, or an older glibc than the build’s) x86_64-unknown-linux-musl
Linux ARM64 aarch64-unknown-linux-gnu
Windows x86-64 x86_64-pc-windows-msvc

Saule is written in Rust and needs a toolchain on edition 2024 — Rust 1.85 or newer.

Terminal window
git clone https://github.com/lauriszz123/saule.git
cd saule
cargo build --release -p saule-cli -p saule-lsp

That produces both binaries in target/release/. Copy them into ~/.saule/bin, or add target/release to your PATH.

To update, run the install command again.

To uninstall, delete ~/.saule (on Windows, %USERPROFILE%\\.saule), which also removes every installed package. Then remove the line the installer added to your shell profile, such as ~/.zshrc, or on Windows remove .saule\\bin from your user Path.

Each editor plugin has its own repository — saule-vscode, saule-nvim and saule-intellij. See Editor Support for per-editor setup.

Write something: Your First Program.