Skip to content

Output & Progress

Orb provides several options for controlling how responses are displayed.

By default, the response body is printed to stdout:

Terminal window
orb https://api.example.com/users

Use -o or --output to save the response to a file:

Terminal window
orb https://example.com/file.zip -o downloaded.zip

Use -i or --include to print headers before the body:

Terminal window
orb -i https://example.com

Output:

HTTP/2 200 OK
content-type: text/html
date: Mon, 01 Jan 2024 12:00:00 GMT
content-length: 1234
<!DOCTYPE html>
...

Use -I or --head to show only headers (no body):

Terminal window
orb -I https://example.com

This is equivalent to a HEAD request, showing the response line and headers.

Use -v or --verbose for detailed request/response information:

Terminal window
orb -v https://example.com

Verbose output includes:

  • DNS resolution
  • TLS handshake details
  • Request headers (prefixed with >)
  • Response headers (prefixed with <)
* Resolving host: example.com
* Resolved example.com to 93.184.216.34 (12ms)
* TLS handshake completed
* TLS version: TLSv1.3
* Cipher: TLS_AES_256_GCM_SHA384
* ALPN: h2
* Server certificate:
* Subject: CN=example.com
* Issuer: CN=DigiCert Global Root CA
> GET / HTTP/2
> Host: example.com
> User-Agent: orb/0.1.0
> Accept: */*
>
< HTTP/2 200 OK
< content-type: text/html
< date: Mon, 01 Jan 2024 12:00:00 GMT
<

Use -w or --write-out to display timing and size statistics:

Terminal window
orb -w https://example.com

Output (to stderr):

http_code: 200
size_download: 1234
time_starttransfer: 0.234
time_total: 0.456
MetricDescription
http_codeHTTP status code
size_downloadResponse body size in bytes
time_starttransferTime to first byte (TTFB) in seconds
time_totalTotal request time in seconds

Use -# or --progress to show a download progress bar:

Terminal window
orb -# https://example.com/large-file.iso -o large-file.iso

Output:

[00:01:23] ████████████░░░░░░░░░ 45.2% • 450 MiB/1 GiB • 50 MiB/s • ETA 00:01:40

For downloads over 100 MiB, progress is shown automatically:

Terminal window
orb https://example.com/huge-file.iso -o huge.iso
# Progress bar appears automatically

Also, if the first byte takes more than 1 second, progress appears.

Use -s or --silent to suppress all output except the response body:

Terminal window
orb -s https://example.com

Silent mode suppresses:

  • Verbose output (-v)
  • Statistics (-w)
  • Progress bar (-#)
  • Error messages
Terminal window
# Verbose with headers and stats
orb -v -i -w https://example.com
# Download with progress, save to file
orb -# https://example.com/file.zip -o file.zip
# Headers only, verbose
orb -v -I https://example.com
# Silent mode for scripting
if orb -s https://api.example.com/health; then
echo "API is healthy"
fi
ContentDestinationFlag
Response bodystdout(default)
Response bodyfile-o
Response headersstdout-i
Verbose infostderr-v
Statisticsstderr-w
Progress barstderr-#
Errorsstderr(always)
Terminal window
orb -w https://api.example.com/users | jq .
Terminal window
orb -v https://api.example.com 2>&1 | less
Terminal window
orb -v -# -w https://example.com/file.zip -o file.zip
Terminal window
orb -w https://api.example.com/data 2>stats.txt | process-data