Skip to main content
The @ekanos/cli is the Ekanos partner toolchain. It scaffolds, validates, tests, and publishes Ekanos integrations against the published @ekanos packages — from any Node project, with no bundler and no dependency on @ekanos/sdk at runtime.

Install

Inside a project, validate/dev/publish/test automatically delegate to that project’s own pinned @ekanos/cli devDependency whenever it differs from the globally invoked binary — the same wrapper pattern as Gradle’s ./gradlew or npx. A partner with several integrations on different @ekanos/sdk versions gets the right toolchain per project without juggling installs. Machine-level verbs (init, login, logout, whoami, sources, use, status, upgrade) never delegate — they always run on the binary you invoked. Set EKANOS_NO_DELEGATE=1 to opt out for one invocation.

Verbs at a glance

Global flags

Short flags are not supported — the parser rejects them rather than guessing.

JSON-first design

Every verb speaks JSON. JSON mode is inferred from:
  • Non-TTY stdout (piped output)
  • CLAUDECODE=1 environment variable
An explicit --json or --no-json overrides that inference. In JSON mode, stdout carries exactly one JSON object:
A success envelope has no error key. An error envelope carries error, plus data only when the verb has something to report (for example validate’s findings). Every progress line goes to stderr. Errors always carry an imperative hint telling you what to do:
The CLI never prompts — with one deliberate exception: publish asks for a y/N confirm at a real terminal when the publish target is ambiguous (implicit source + multiple developer seats). Every other verb, and publish itself in JSON/non-TTY mode or with an explicit --source, never prompts.

Toolchain updates

Three independent defenses against a stale toolchain:
  1. Schema-skew gate — validate and publish fail fast with precondition_failed (exit 9) if the project resolves a newer @ekanos/integration-schema than the CLI bundles.
  2. ekanos upgrade — Resolves a coherent version set, installs, verifies with validate + the test script, and rolls back automatically on failure.
  3. Update notice — validate, dev, publish, and status check (24h cache, 1.5s timeout) whether a newer CLI exists. Human mode gets a stderr line; JSON mode carries data.toolchain in the envelope. Set EKANOS_NO_UPDATE_CHECK=1 to disable it.
See Keeping the toolchain current for details.

What’s next