Ekso.Cli 2.2.0

dotnet tool install --global Ekso.Cli --version 2.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Ekso.Cli --version 2.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Ekso.Cli&version=2.2.0
                    
nuke :add-package Ekso.Cli --version 2.2.0
                    

Ekso.Cli — ekso

NuGet

Official command-line interface for the Ekso API. Wraps Ekso.Sdk so every command is a thin shell over the same SDK call you'd write yourself.

The CLI has two surfaces:

  • Curated commands under top-level branches (ekso auth, ekso item, ekso board, ekso mcp) — friendly flags, opinionated UX
  • Raw API under ekso api … — auto-generated wrapper for every endpoint in the SDK surface (200+ commands across 30 sub-branches). --data @body.json for the body, exit codes mapped from HTTP status.

Install

dotnet tool install -g Ekso.Cli

Quick start

# Sign in once
ekso auth login --tenant acme
# → Open https://acme.ekso.app/auth/device and enter code: ABCD-1234
# → Waiting for approval...
# → ✓ Authenticated to tenant acme

# Use it
ekso item list --tenant acme
ekso board list --tenant acme --format table

# The magic moment: connect Ekso as an MCP server in Claude Code
ekso mcp connect --for claude-code --tenant acme
# →   claude mcp add ekso --transport http https://acme.ekso.app/mcp/ \
# →     --header "Authorization: Bearer ekso_at_..."

Auth

Two modes:

Device flow (interactive — recommended for local use):

ekso auth login --tenant acme
ekso auth whoami --tenant acme
ekso auth logout --tenant acme

Tokens persist to ~/.config/ekso/credentials.json (Linux/macOS) or %APPDATA%\Ekso\credentials.json (Windows). Refresh tokens rotate transparently on expiry — no need to re-login until the refresh token itself expires (~30 days).

API key (non-interactive — for CI, agents, scripts):

EKSO_API_KEY=ek_live_... EKSO_TENANT=acme ekso item list

API keys are issued from the admin surface. Pass via --api-key or EKSO_API_KEY.

Output formats

Default is JSON (agent-friendly). Override with --format:

ekso board list --format json     # default — pretty JSON
ekso board list --format jsonl    # one JSON object per line, pipe-friendly
ekso board list --format yaml     # YAML
ekso board list --format table    # human-readable table

--quiet suppresses non-essential output. On create commands it prints just the new id:

NEW_ID=$(ekso item create --container-id container_x --quiet)
echo "Created $NEW_ID"

Global options

Available on every command:

Flag Env var Purpose
--tenant <SUBDOMAIN> EKSO_TENANT Which tenant. Required.
--api-key <KEY> EKSO_API_KEY Non-interactive auth.
--format <FORMAT> EKSO_FORMAT json (default), jsonl, yaml, table.
-q, --quiet Suppress non-essential output.
-v, --verbose EKSO_VERBOSE=1 Verbose logging.
--no-color NO_COLOR Disable ANSI colors.
--timeout <S> EKSO_TIMEOUT HTTP timeout. Default 30.

Curated commands

Hand-polished for the most common flows. Friendly flags, opinionated defaults.

Command What it does
ekso auth login OAuth device flow — prints URL + code, polls until approved.
ekso auth logout Clear stored credentials.
ekso auth whoami Show signed-in user + token expiry.
ekso item create Create an item. --container-id + --data @body.json.
ekso item get <id> Fetch an item by id.
ekso item list List items. Optional filter via --data.
ekso item update <id> Update an item via --data @body.json.
ekso item delete <id> Delete an item.
ekso board list List boards.
ekso mcp connect --for <agent> Print the agent setup snippet. --for claude-code (default), cursor, windsurf, claude-desktop, or raw.

Raw API surface — ekso api …

The full Ekso REST surface is reachable via auto-generated commands under ekso api. Each [EksoSdk]-tagged operation in the openapi spec gets one command:

ekso api --help                   # ~30 sub-branches
ekso api annotation --help        # operations on /api/annotation/*
ekso api annotation list-supported --tenant acme
ekso api clock list --tenant acme
ekso api rule create --tenant acme --data @rule.json

Path parameters become positional args; query parameters become flags. Request bodies pass via --data <json> or --data @file.json. Response is rendered through the same --format flag the curated commands use.

Generated commands run on every dotnet build Ekso.Cli from tools/Ekso.CliGenerator — they stay in sync with the backend openapi spec automatically.

Exit codes

Per the standard CLI convention:

Code Meaning
0 Success
1 Generic error
2 Usage error (bad flags)
3 Authentication failure
4 Authorization failure
5 Not found
6 Validation error
7 Rate limited
8 Network/timeout
9 Server error (5xx)

License

MIT.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
2.2.0 103 5/10/2026
2.1.0 100 5/9/2026
2.0.0 103 5/7/2026
1.2.1 98 4/30/2026
1.2.0 89 4/30/2026
1.1.0 119 4/29/2026
1.0.0 113 4/28/2026
0.7.0 110 4/28/2026
0.6.0 105 4/28/2026
0.5.0 112 4/27/2026
0.2.0 110 4/27/2026
0.1.0-preview 101 4/27/2026