Install Echo
The public CLI is xo. Published builds are prereleases. The current tag is v0.0.1-alpha.9. Take a prebuilt when you only need to run programs. Build from source when you edit the compiler.
Prebuilt (recommended)
v0.0.1-alpha.9 ships xo-linux-x86_64.tar.gz and xo-macos-arm64.tar.gz. The script downloads xo, libecho_runtime.a, and std/ for that host, then links ~/.local/bin/xo.
from-release with no tag installs the newest published prerelease. Pass a tag to pin. GitHub /releases/latest only resolves a non-prerelease and 404s today. See the releases list.
xo-linux-x86_64.tar.gz · Linux x86_64xo-macos-arm64.tar.gz · macOS arm64
# Newest published prerelease for this machine (linux-x86_64 / macos-arm64)
curl -fsSL https://raw.githubusercontent.com/modoterra/echo/main/scripts/install.sh \
| bash -s -- from-release
# Pin this tag
# … | bash -s -- from-release v0.0.1-alpha.9
xo --help
xo doctor 2>/dev/null || true
Requirements
To run programs you need clang on PATH for AOT link. Building this repository also expects Rust (edition 2024), mold, and sccache. The workspace Cargo config selects those tools directly. Compiling the toolchain needs LLVM as well.
Build from source
Clone the repository and build the CLI package when you develop Echo itself.
git clone https://github.com/modoterra/echo.git
cd echo
cargo build -p xo
./target/debug/xo --help
Install to PATH (XDG)
From a checkout, install co-located xo and std under XDG data, link ~/.local/bin/xo, and create package cache and state dirs. Upgrade flips current without wiping packages. The checkout file docs/install.md records install layout details.
# From the checkout: release build + XDG install + ~/.local/bin/xo
./scripts/install.sh
./scripts/install.sh doctor
# Newest published prerelease, or pin a tag
./scripts/install.sh from-release
./scripts/install.sh from-release v0.0.1-alpha.9
# Upgrade (keeps prior toolchain dirs)
./scripts/install.sh upgrade
# Uninstall toolchain (add --purge to also clear $XO_HOME packages)
./scripts/uninstall.sh
Run an example
Point xo at a sample program from a checkout, or at any path after install.
# After from-release / install.sh, xo is on PATH
xo run examples/misc/hello.echo
# Or from a debug build in a checkout
./target/debug/xo run examples/misc/hello.echo
./target/debug/xo run examples/misc/sum_list.echo
From here
- 1. First program: the minimal shape and the same commands you just ran.
- 2. Reference: form sheets for leaders, Result, structs, and the rest of Echo 2026.
- 3. Language Spec: edition TOC that maps Reference pages to the suite.
Longer project shape and workflow notes live under Project setup.