#!/usr/bin/env bash # eximagent installer — picks the right binary for your platform. # Usage: # curl -fsSL https://raw.githubusercontent.com/EximAgent/cli/main/install.sh | sh # curl -fsSL https://raw.githubusercontent.com/EximAgent/cli/main/install.sh | EXIMAGENT_VERSION=v0.0.36 sh set -euo pipefail INSTALL_DIR="${EXIMAGENT_INSTALL_DIR:-${HOME}/.eximagent/bin}" SYMLINK_DIR="${EXIMAGENT_SYMLINK_DIR:-/usr/local/bin}" GITHUB_REPO="EximAgent/cli" os="" case "$(uname -s)" in Darwin) os="darwin" ;; Linux) os="linux" ;; MINGW*|MSYS*|CYGWIN*) echo "[eximagent] Windows detected — bash installer is best-effort; the supported path is:" >&2 echo " irm https://install.eximagent.ai/install.ps1 | iex (PowerShell)" >&2 echo " npm i -g eximagent (Node 20+)" >&2 os="windows" ;; *) echo "[eximagent] unsupported OS: $(uname -s)" >&2; exit 1 ;; esac arch="" case "$(uname -m)" in arm64|aarch64) arch="arm64" ;; x86_64|amd64) arch="x64" ;; *) echo "[eximagent] unsupported arch: $(uname -m)" >&2; exit 1 ;; esac target="${os}-${arch}" [ "${os}" = "windows" ] && target="${target}.exe" if [ -z "${EXIMAGENT_VERSION:-}" ]; then if command -v curl >/dev/null 2>&1; then tag=$(curl -fsSL "https://api.github.com/repos/${GITHUB_REPO}/releases/latest" | sed -n 's/.*"tag_name":[[:space:]]*"\([^"]*\)".*/\1/p' | head -1) else tag=$(wget -qO- "https://api.github.com/repos/${GITHUB_REPO}/releases/latest" | sed -n 's/.*"tag_name":[[:space:]]*"\([^"]*\)".*/\1/p' | head -1) fi [ -z "${tag}" ] && { echo "[eximagent] could not resolve latest release tag" >&2; exit 1; } else tag="${EXIMAGENT_VERSION}" fi url="https://github.com/${GITHUB_REPO}/releases/download/${tag}/eximagent-${target}" mkdir -p "${INSTALL_DIR}" dest="${INSTALL_DIR}/eximagent-${target}" echo "[eximagent] fetching ${target} from ${tag}..." >&2 if command -v curl >/dev/null 2>&1; then curl -fsSL "${url}" -o "${dest}" elif command -v wget >/dev/null 2>&1; then wget -qO "${dest}" "${url}" else echo "[eximagent] need curl or wget" >&2; exit 1 fi chmod +x "${dest}" shim="${INSTALL_DIR}/eximagent" ln -sf "${dest}" "${shim}" if [ -w "${SYMLINK_DIR}" ]; then ln -sf "${shim}" "${SYMLINK_DIR}/eximagent" echo "[eximagent] installed → ${SYMLINK_DIR}/eximagent" >&2 else echo "[eximagent] installed → ${shim}" >&2 echo "[eximagent] add ${INSTALL_DIR} to PATH, or run: sudo ln -sf ${shim} ${SYMLINK_DIR}/eximagent" >&2 fi echo "[eximagent] try: eximagent --version && eximagent login" >&2