Skip to main content
The Ekso CLI is a single self-contained binary — no .NET runtime, no package manager, no setup. Download one file, run it. Releases live at github.com/EksoHQ/CLI/releases. One archive per platform, ~30 MB each.

Install

VERSION=$(curl -sS https://api.github.com/repos/EksoHQ/CLI/releases/latest | grep tag_name | cut -d'"' -f4 | sed 's/^v//')
curl -L "https://github.com/EksoHQ/CLI/releases/download/v$VERSION/ekso-$VERSION-osx-arm64.tar.gz" | tar xz
xattr -d com.apple.quarantine ./ekso   # one-time: clears Gatekeeper
sudo mv ./ekso /usr/local/bin/
ekso --version
That’s it.

Update

Re-run the install command in your platform’s tab — download the latest archive and overwrite the existing binary. If you installed via the .NET global tool (below), use dotnet tool update -g Ekso.Cli instead. Either way, you always end up on the latest release.

macOS Gatekeeper

Binaries aren’t yet signed with an Apple Developer ID, so Gatekeeper quarantines them on first download. The xattr -d com.apple.quarantine ./ekso line in the macOS install steps clears it. If you see “ekso cannot be opened because the developer cannot be verified”, run that command against the downloaded binary, or right-click → Open in Finder once. Code signing is on the roadmap.

Verify the download

Each release ships a SHA256SUMS file alongside the archives:
curl -LO "https://github.com/EksoHQ/CLI/releases/download/v$VERSION/SHA256SUMS"
shasum -a 256 -c SHA256SUMS --ignore-missing

Alternative: .NET global tool

Already have .NET 10 installed and prefer the dotnet-tool ecosystem? The CLI is also published to NuGet:
dotnet tool install -g Ekso.Cli
ekso --version
This is intended for .NET developers who manage CLIs through dotnet tool already. Everyone else: use the standalone binary above. Update with dotnet tool update -g Ekso.Cli. All versions, including pre-releases: nuget.org/packages/Ekso.Cli.

Shell completion

The ekso binary self-emits a completion script for your shell. There’s no extra file in the tarball — the binary is the install vector. Pick your shell, run the matching command once, and re-run after each upgrade so newly-added commands autocomplete.
mkdir -p ~/.zsh/completion
ekso completion zsh > ~/.zsh/completion/_ekso

# If your ~/.zshrc doesn't already source ~/.zsh/completion, add:
#   fpath=(~/.zsh/completion $fpath)
#   autoload -Uz compinit && compinit

# If completion doesn't kick in immediately, clear the compinit cache:
rm -f ~/.zcompdump*

Ephemeral install (current shell only)

For a quick try without writing to disk:
source <(ekso completion bash)   # bash
source <(ekso completion zsh)    # zsh

What completes

After installing, <TAB> completes:
  • Top-level branches — ekso <TAB>auth item board mcp migrate ...
  • Verbs within a branch — ekso item <TAB>create get list update delete
  • Nested branches — ekso docs folder <TAB>list get create update delete, ekso migrate jira <TAB>list-projects collect apply status
  • Global flags after -ekso item list --<TAB>--url --api-key --format ...
Per-flag value completion (item ids, etc.) is on the roadmap. For now, <TAB> completes commands and flag names; values you type yourself.

Re-run after upgrade

The completion script is a snapshot of the binary’s command surface at the moment you ran ekso completion <shell>. New commands added by a later release won’t autocomplete until you re-run the same command and overwrite the script.

Next steps

  • Authenticate — sign in to your install via device flow, or supply an API key.
  • Configure — set defaults via environment variables so you don’t repeat --url on every call.