Installation

Pick the channel that matches your environment. Every channel produces the same nexo binary; the differences are in how it gets onto your machine and which dependencies come bundled.

Channel matrix

ChannelWhen to pick itTime to first runBundled runtime tools
Docker (GHCR)Production, CI, "just works"~30 sChrome, Chromium, cloudflared, ffmpeg, tesseract, yt-dlp
Nix flakeNixOS, reproducible dev shell~3-5 min coldNone (system-level)
Native (no Docker)Bare-metal Linux / macOS, full control~10-15 minNone (apt / brew / pacman)
TermuxPhone-hosted personal agent~15-20 minNone (pkg install)
From sourceContributors~5 min after toolchainNone

Quickest path — Docker

docker pull ghcr.io/lordmacu/nexo-rs:latest
docker run --rm \
  -v $(pwd)/config:/app/config:ro \
  -v $(pwd)/data:/app/data \
  -p 8080:8080 -p 9090:9090 \
  ghcr.io/lordmacu/nexo-rs:latest --help

The image is multi-arch (linux/amd64 + linux/arm64), built fresh on every push to main and every v* tag, with SBOM and SLSA provenance attestations. Full guide: Docker.

Build from source

For contributors and operators who want to track main directly:

git clone https://github.com/lordmacu/nexo-rs
cd nexo-rs
cargo build --release --bin nexo
./target/release/nexo --help

The workspace compiles 22 crates and produces the nexo binary plus a few smoke-test bins (browser-test, integration-browser-check, llm_smoke). Toolchain is pinned to Rust 1.80 (MSRV) via rust-toolchain.toml — no manual channel selection needed.

Prerequisites

  • Rust 1.80+ (rustup recommended)
  • NATS running locally or reachable over the network — for development:
    docker run -p 4222:4222 nats:2.10-alpine
    
    Production setup: see broker.yaml.
  • Git (the memory subsystem uses per-agent workspace-git)
  • Chrome / Chromium (only if you plan to use the browser plugin)

Verification

./target/release/nexo --version
cargo test --workspace --lib

nexo --version prints the build provenance line (commit + build timestamp) so a bug report carries enough context to reproduce.

Bootstrap script

For native or Termux installs, ./scripts/bootstrap.sh automates the whole process — installs the system deps, downloads NATS if not present, scaffolds config/, and runs the setup wizard.

./scripts/bootstrap.sh           # interactive
./scripts/bootstrap.sh --yes     # accept all defaults

The script auto-detects Termux ($PREFIX set) and switches to pkg install + broker.type: local so you don't need root or NATS on a phone.

Next steps