EKOSdocs
Docs / Getting Started Build

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) and zstd compile 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.