Installation
One command
Section titled “One command”macOS and Linux
curl -fsSL https://lauriszz123.github.io/saule/install.sh | shWindows
irm https://lauriszz123.github.io/saule/install.ps1 | iexThen open a new terminal:
saule --versionThe 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.
Two channels
Section titled “Two channels”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
SAULE_CHANNEL=latest curl -fsSL https://lauriszz123.github.io/saule/install.sh | shWindows
$env:SAULE_CHANNEL='latest'; irm https://lauriszz123.github.io/saule/install.ps1 | iexYour 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.
Reading it first
Section titled “Reading it first”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:
curl -fsSL https://lauriszz123.github.io/saule/install.sh | lessOptions
Section titled “Options”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 |
SAULE_VERSION=26.7 curl -fsSL https://lauriszz123.github.io/saule/install.sh | shWhat gets installed
Section titled “What gets installed”| 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.
Installing by hand
Section titled “Installing by hand”Every release publishes a signed-checksum archive per platform on the releases page.
# Verify before unpacking — SHA256SUMS covers every archive in the release.shasum -a 256 -c SHA256SUMS --ignore-missing
tar xzf saule-<version>-<triple>.tar.gzmkdir -p ~/.saule/bincp 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 |
Building from source
Section titled “Building from source”Saule is written in Rust and needs a toolchain on edition 2024 — Rust 1.85 or newer.
git clone https://github.com/lauriszz123/saule.gitcd saulecargo build --release -p saule-cli -p saule-lspThat produces both binaries in target/release/. Copy them into
~/.saule/bin, or add target/release to your PATH.
Updating and uninstalling
Section titled “Updating and uninstalling”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.
Editor support
Section titled “Editor support”Each editor plugin has its own repository — saule-vscode, saule-nvim and saule-intellij. See Editor Support for per-editor setup.
Next steps
Section titled “Next steps”Write something: Your First Program.