Skip to content

CLI

The Echopoint CLI manages flows and collections from the terminal and runs flows ephemerally in CI. It also provides MCP tools for AI clients. Its source is public on GitHub at github.com/nanostack-dev/echopoint-cli.

macOS and Linux — checksum-verified, installs to ~/.local/bin, no sudo:

Terminal window
curl -fsSL https://raw.githubusercontent.com/nanostack-dev/echopoint-cli/main/install.sh | sh

Windows (PowerShell):

Terminal window
irm https://raw.githubusercontent.com/nanostack-dev/echopoint-cli/main/install.ps1 | iex

Prebuilt binaries are also published on GitHub Releases. Once installed, the CLI updates itself:

Terminal window
echopoint update # self-update to the latest release
echopoint version # print the installed version

Common authentication options:

MethodHowUse for
Browser loginechopoint auth login (OAuth via Clerk)Local development
Token flagGlobal --token <token> on a commandA supplied session token
Token env varECHOPOINT_TOKENScripted sessions
API key pairECHOPOINT_API_KEY + ECHOPOINT_ORGANIZATION_IDCI pipelines
Terminal window
# CI: no login step needed — the CLI picks up the env pair directly
export ECHOPOINT_API_KEY=<key>
export ECHOPOINT_ORGANIZATION_ID=<org id>
echopoint auth status

Create CI keys with the ci preset — see API keys & permissions.

Settings live in ~/.echopoint/config.yaml; credentials are stored separately per profile. Profiles point the CLI at alternate API URLs and switch between them:

Terminal window
echopoint profile add staging --api-url https://api.echopoint.dev
echopoint profile use staging
echopoint profile list

Every command supports table, JSON, or YAML output:

Terminal window
echopoint flows list -o json

This guide targets CLI v2.0.2. The canonical resource names are flow and collection; flows and collections remain supported aliases. view is the current inspection command, with get and flow show retained as aliases. Interactive flow creation was removed in v2, and there is no dedicated flow export command. Create a flow from a definition file and use flow view -o json to inspect it. Local Specs document commands were also removed; the current spec commands work with workspace specs. Run echopoint spec --help for that separate command group.

GroupCommandsPurpose
authlogin logout statusSign in and inspect the active session
flowlist view create update delete launch run validateManage and execute flows
flows nodeadd update removeEdit nodes — types request, delay, module, webhook_wait
flows node outputadd removeCLI output extractors (json_path, status_code, header, body)
flows node assertionadd removeAssertions on node responses
flows edgeadd removeConnect nodes with --type success|failure
flows envget set unset deleteFlow-level environment variables
flows tag--add / --remove, --query, --match-tag, --match-mode any|allTag flows and search by tag
flows executionget listInspect run history and execution metadata
collectionslist get create update delete importManage collections; import --file takes an OpenAPI spec
org envget set unset delete, -e <name>, environments list|deleteOrg defaults and named overlays
profile / config—Profiles and local configuration
version / update—Version info and self-update

Frequently used examples:

Terminal window
echopoint flows validate <flow-id>
echopoint flow view <flow-id> -o json
echopoint flows tag --add smoke <flow-id>
echopoint flows execution list <flow-id>
echopoint collections import --file openapi.yaml
echopoint org env set -e staging --var BASE_URL=https://staging.example.com

echopoint flows run launches an ephemeral execution and claims its one-shot job. The claim delivers the flow and resolved inputs to the CLI, which runs its embedded engine locally. It reports progress, heartbeats, and completion with a per-job token. The API key needs flows:execute; add flows:read for tag selection.

The worker receives referenced environment secrets so it can make requests. Use a trusted worker and a dedicated key. The CLI does not log those resolved inputs.

Terminal window
# Run specific flows by ID
echopoint flows run <flow-id> <another-flow-id>
# Run a tag suite against staging, three flows at a time
echopoint flows run --tag smoke --environment staging --parallel 3
# Pin a published version and dedupe retried pipelines
echopoint flows run <flow-id> --version-id <version-id> --idempotency-key "$CI_RUN_ID"
FlagBehavior
--tagSelect flows by tag; repeatable; --match-mode any|all; cap 50 flows
--environment <key>Resolve org/flow variables for that environment
--version-idRun a pinned published version
--parallel NRun up to N flows concurrently
--poll-timeoutMax wait for completion (default 30m)
--idempotency-keyDeduplicate launches across pipeline retries
-o jsonMachine-readable results
--verboseLive node-by-node status while running

Exit codes gate pipelines directly: 0 all flows passed, 1 a flow failed, 2 cancelled, 3 contract or API error, 4 timeout.

Echopoint works with your own agent in two ways. Both require access to an Echopoint workspace and authentication; the hosted app is accepting waitlist requests. Your agent owns its reasoning and code changes. Echopoint supplies test operations and execution results.

Install the CLI and authenticate with echopoint auth login. Configure your MCP client to launch the CLI as a local stdio server:

{
"mcpServers": {
"echopoint": {
"command": "echopoint",
"args": ["mcp"]
}
}
}

The configuration format can vary by client. The executable must be on the client’s PATH; see the CLI MCP setup guide for details. Calls use your credentials and permissions. Connect a test workspace and review your client’s tool approvals before allowing it to write or execute.

The build_flow tool can create a flow with request or module steps, outputs, assertions, and edges. Inspect existing flows and choose a unique name: build_flow replaces an existing flow with the same name. An agent can call launch_flow, then inspect the execution with get_execution and get_execution_node_results. Launching is asynchronous; a launch response alone is not a passing test. Private targets still need a runner with access to their network.

A terminal-capable agent can use the same CLI as a developer. Once you have a flow and a staging environment, replace the placeholders with real IDs:

Terminal window
echopoint flows validate <flow-id>
echopoint flows run <flow-id> --environment staging -o json

The JSON output includes an execution ID, node results, and assertions with expected, actual, and passed fields. Inspect failures before changing your app or tests, then rerun to check the result. Use test data and a test environment: executing a flow sends real requests and may create or delete records according to the flow definition.

echopoint flows execution get <flow-id> <execution-id> -o json reads the stored execution metadata; it is not the detailed node assertion report. Use MCP get_execution_node_results for stored per-node results.

For authoring, use echopoint flows create --file flow.json or the node, output, assertion, and edge commands. The flow guide and assertion reference explain the model. Reuse the resulting flow in the GitHub Action once it checks the behavior you intend.