CLI Guide

Everything you need to know about atra , the Atrahasis command-line tool for HTTP requests, load testing, and API flow automation.

Quick Start

Install atra and send your first request in under a minute.

curl -sSL https://cli.atrahasis.dev | sh

# Send your first GET request

atra https://api.example.com/users

Get Started

What Makes atra Different

atra is not a second product with its own file format. It runs the same flows and load test specs you build in the desktop app, from the same folder, so a scenario you designed by hand this morning can run unattended in CI tonight.

Runs what the app builds

Name a flow group and atra reads the same files the desktop app writes. No export step, no second format to keep in sync, and the environment you picked in the app is selectable by name. Leave off -f and every flow in the group runs.

atra run checkout-flows -f signup -e staging

Assertions that fail the build

Check the status, the body, a header, a JSON path or the response time straight from the command line. A failed assertion exits with code 1, so a pipeline step turns red without any wrapper script.

atra GET api.example.com/orders \
  -a "status eq 200" \
  -a "$.data.items[0].id exists" \
  -a "response_time lt 500"

Lifecycle scripts and reports

Before All and After All run headless exactly as they do in the app. Mint a token before the run, then post an HTML, PDF or OpenTelemetry report to your own endpoint when it finishes.

at.export.html()
await at.export.pdf()

Load testing, same binary

Load, stress, spike, soak and custom profiles run from the spec you already have. There is no separate load tool to install, learn, or keep at the same version.

atra run checkout-specs -s orders -t stress

Test data that is never stale

Twenty-two generators cover the values that usually break on a second run: identifiers, emails, names, addresses, phone numbers, dates and network values.

{{random.uuid}}  {{random.email}}
{{random.phone}}  {{random.datetime}}

See where the time went

One flag prints a waterfall across all eight request phases, from DNS lookup and TLS handshake to how long the server actually took to answer. Useful when a request is slow but nobody agrees on which part.

atra -t https://api.example.com/orders

About that first argument: it is the name of the flow group or spec group, not a file path. The commands above are what you type from outside the group. If your terminal is already inside it, leave the name out and atra uses the current directory: atra run -f signup. In both forms, dropping -f runs every flow in the group, and dropping -s runs every spec.

Also in the box: HTTP/3 support, named sessions that carry cookies and headers across requests, OAuth 2.0 and Vault authentication, retries with backoff, DNS overrides for testing staging behind a production hostname, and downloads with a progress bar.