Installation
Install the prebuilt EKOS binary, or build from source on macOS, Linux and Windows.
EKOS ships prebuilt binaries for Linux, macOS and Windows. Installing one needs no Rust toolchain and no compiler. Building from source is still supported and documented below.
Install the binary
curl -fsSL https://raw.githubusercontent.com/alexeyban/EKOS/main/install.sh | sh
This puts a single ekos binary in ~/.local/bin. The script resolves the latest release,
verifies the download against that release's SHA256SUMS before unpacking it, and never uses
sudo. Set EKOS_INSTALL_DIR to install elsewhere, or EKOS_VERSION=v1.0.3 to pin a release.
Piping a script into a shell is a real supply-chain decision, so the script is short enough to read first:
curl -fsSL https://raw.githubusercontent.com/alexeyban/EKOS/main/install.sh -o install.sh
less install.sh && sh install.sh
Download it by hand
Every release is a plain archive on the releases page.
| Your machine | Asset |
|---|---|
| Linux, Intel/AMD 64-bit | ekos-<version>-x86_64-unknown-linux-gnu.tar.gz |
| Linux, Intel/AMD, older distro | ekos-<version>-x86_64-unknown-linux-musl.tar.gz |
| Linux, ARM 64-bit | ekos-<version>-aarch64-unknown-linux-gnu.tar.gz |
| macOS, Apple Silicon | ekos-<version>-aarch64-apple-darwin.tar.gz |
| macOS, Intel | ekos-<version>-x86_64-apple-darwin.tar.gz |
| Windows, 64-bit | ekos-<version>-x86_64-pc-windows-msvc.zip |
uname -sm tells you which row you are on. Take the gnu build first; if it refuses to start with
version 'GLIBC_2.x' not found, your distribution is older than the machine the release was built
on — use the musl build, which is fully static. (install.sh falls back on its own.)
VERSION=v1.0.3
TARGET=x86_64-unknown-linux-gnu
ASSET="ekos-${VERSION#v}-$TARGET.tar.gz"
BASE="https://github.com/alexeyban/EKOS/releases/download/$VERSION"
curl -fsSLO "$BASE/$ASSET"
curl -fsSLO "$BASE/SHA256SUMS"
# Verify before unpacking. One line keeps it quiet about the assets you did not
# download, and works with GNU sha256sum and macOS shasum alike.
grep "$ASSET" SHA256SUMS | sha256sum -c - # macOS: shasum -a 256 -c -
tar xzf "$ASSET"
mkdir -p ~/.local/bin # install(1) will not create it
install -m 755 "ekos-${VERSION#v}-$TARGET/ekos" ~/.local/bin/ekos
That prints <asset>: OK and exits 0. Anything else means do not unpack it.
Releases are checksummed but not signed — no Sigstore/cosign signature or SLSA provenance yet.
SHA256SUMS shows the archive arrived intact; it does not, by itself, prove who built it.
On Windows, download the .zip, check it with Get-FileHash -Algorithm SHA256, expand it, and put
ekos.exe on your PATH.
macOS only. These binaries are not signed or notarised, so a file downloaded through a browser is quarantined by Gatekeeper and refuses to run. Clear the flag:
xattr -d com.apple.quarantine ~/.local/bin/ekos
Downloading with curl, as above, does not set that flag — this applies only if you clicked the
link in a browser.
Upgrading and removing
Re-run the install command to replace the binary with the latest release. To remove EKOS, delete
the binary (rm ~/.local/bin/ekos); it keeps no files outside the .ekos/ directory inside each
workspace you compiled.
Build from source
Still fully supported, and what you want if you are contributing.
The Cargo workspace root is ekos/, not the repository root — there is no top-level Cargo.toml.
Prerequisites
- Rust, via rustup. The repository pins its toolchain in
rust-toolchain.toml, so rustup installs the right version automatically. - A C/C++ toolchain. The bundled SQLite (
rusqlite) andzstdcompile native C at build time. - Git, to clone.
macOS
xcode-select --install
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
git clone https://github.com/alexeyban/EKOS.git
cd EKOS/ekos
cargo build --release --workspace
cargo install --path crates/cli
Linux
Install a C toolchain (sudo apt install build-essential on Debian/Ubuntu), then follow the macOS steps from the rustup line.
Windows 11
WSL2 is the path of least friction: wsl --install, open the Ubuntu shell, and follow the Linux steps. Native Windows also works:
winget install Microsoft.VisualStudio.2022.BuildTools --override "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"
winget install Rustlang.Rustup
winget install Git.Git
git clone https://github.com/alexeyban/EKOS.git
cd EKOS\ekos
cargo build --release --workspace
cargo install --path crates\cli
Verify
ekos --version
ekos --help
ekos doctor # checks environment and configuration
ekos doctor reports the configured LLM provider and endpoint, and whether the API-key variable is set. Once a workspace has been compiled it also reports coverage — whether every input kind present actually produced objects — and fails if any produced none. ekos doctor --json emits the same checklist as one JSON object.