CLI
The Echopoint CLI manages webhooks, flows, and collections from the terminal and runs flows ephemerally in CI. Its source is public on GitHub at github.com/nanostack-dev/echopoint-cli.
Install
Section titled “Install”macOS and Linux — checksum-verified, installs to ~/.local/bin, no sudo:
curl -fsSL https://raw.githubusercontent.com/nanostack-dev/echopoint-cli/main/install.sh | shWindows (PowerShell):
irm https://raw.githubusercontent.com/nanostack-dev/echopoint-cli/main/install.ps1 | iexPrebuilt binaries are also published on GitHub Releases. Once installed, the CLI updates itself:
echopoint update # self-update to the latest releaseechopoint version # print the installed versionAuthentication
Section titled “Authentication”Four methods, in order of typical use:
| Method | How | Use for |
|---|---|---|
| Browser login | echopoint auth login (OAuth via Clerk) | Local development |
| Token flag | echopoint auth login --token <token> | Non-interactive login |
| Token env var | ECHOPOINT_TOKEN | Scripted sessions |
| API key pair | ECHOPOINT_API_KEY + ECHOPOINT_ORGANIZATION_ID | CI pipelines |
# CI: no login step needed — the CLI picks up the env pair directlyexport ECHOPOINT_API_KEY=<key>export ECHOPOINT_ORGANIZATION_ID=<org id>echopoint auth statusCreate CI keys with the ci preset — see API keys & permissions.
Configuration and profiles
Section titled “Configuration and profiles”Settings live in ~/.echopoint/config.yaml. Profiles point the CLI at alternate API
URLs and switch between them:
echopoint profile add staging --api-url https://api.echopoint.devechopoint profile use stagingechopoint profile listEvery command supports table, JSON, or YAML output:
echopoint flows list -o jsonCommand tour
Section titled “Command tour”| Group | Commands | Purpose |
|---|---|---|
auth | login logout status | Sign in and inspect the active session |
flows | list get create create-interactive update delete launch run validate show export | Manage and execute flows |
flows node | add update remove | Edit nodes — types request, delay, module |
flows node output | add remove | Output extractors (jsonPath, xmlPath, statusCode, header, body) |
flows node assertion | add remove | Assertions on node responses |
flows edge | add remove | Connect nodes with --type success|error |
flows env | get set unset delete | Flow-level environment variables |
flows tag | --add / --remove, --query, --match-tag, --match-mode any|all | Tag flows and search by tag |
flows execution | get list | Inspect run history and per-node results |
collections | list get create update delete import | Manage collections; import --file takes an OpenAPI spec |
org env | get set unset delete, -e <name>, environments list|delete | Org defaults and named overlays |
profile / config | — | Profiles and local configuration |
version / update | — | Version info and self-update |
Frequently used examples:
echopoint flows validate <flow-id>echopoint flows export <flow-id> -o jsonechopoint flows tag --add smoke <flow-id>echopoint flows execution list <flow-id>echopoint collections import --file openapi.yamlechopoint org env set BASE_URL https://staging.example.com -e stagingflows run: ephemeral CI execution
Section titled “flows run: ephemeral CI execution”echopoint flows run executes flows ephemerally: the flow snapshot and resolved
inputs are delivered to the CLI process, the flow runs there, and results are
published back. Resolved environment values go only to the launched execution and
are never logged.
# Run specific flows by IDechopoint flows run <flow-id> <another-flow-id>
# Run a tag suite against staging, three flows at a timeechopoint flows run --tag smoke --environment staging --parallel 3
# Pin a published version and dedupe retried pipelinesechopoint flows run <flow-id> --version-id <version-id> --idempotency-key "$CI_RUN_ID"| Flag | Behavior |
|---|---|
--tag | Select flows by tag; repeatable; --match-mode any|all; cap 50 flows |
--environment <key> | Resolve org/flow variables for that environment |
--version-id | Run a pinned published version |
--parallel N | Run up to N flows concurrently |
--poll-timeout | Max wait for completion (default 30m) |
--idempotency-key | Deduplicate launches across pipeline retries |
-o json | Machine-readable results |
--verbose | Live node-by-node status while running |
Exit codes gate pipelines directly: 0 all flows passed, 1 a flow failed,
3 contract or API error.
Next steps
Section titled “Next steps”- GitHub Action — the same run as a one-step workflow
- API keys & permissions — scopes a CI key needs
- Tags & search — build tag-based suites
- Runners — cloud, self-hosted, and ephemeral execution