Skip to content

Orb vs cURL

Orb is designed as a modern alternative to cURL with a familiar command-line interface. This page compares the two tools.

FeatureOrbcURL
HTTP/1.1
HTTP/2
HTTP/3 (QUIC)✓ (experimental)
WebSocket
JSON shorthand--jsonRequires -H + -d
Compressionzstd, br, gzip, deflategzip, deflate, br
Progress bar
Cookie jar
Multipart forms
Proxy supportHTTP, SOCKS5HTTP, SOCKS4/5
mTLS
Single binaryDepends on build
Terminal window
# cURL
curl https://api.example.com/users
# Orb
orb https://api.example.com/users
Terminal window
# cURL
curl -X POST \
-H "Content-Type: application/json" \
-d '{"name": "Alice"}' \
https://api.example.com/users
# Orb (simpler with --json)
orb -X POST --json '{"name": "Alice"}' https://api.example.com/users
Terminal window
# cURL
curl -H "Authorization: Bearer token" \
-H "Accept: application/json" \
https://api.example.com
# Orb (identical)
orb -H "Authorization: Bearer token" \
-H "Accept: application/json" \
https://api.example.com
Terminal window
# cURL
curl -u username:password https://api.example.com
# Orb (identical)
orb -u username:password https://api.example.com
Terminal window
# cURL
curl -H "Authorization: Bearer token123" https://api.example.com
# Orb (shorthand available)
orb --bearer token123 https://api.example.com
Terminal window
# cURL
curl -F "file=@photo.jpg" https://api.example.com/upload
# Orb (identical)
orb -F "file=@photo.jpg" https://api.example.com/upload
Terminal window
# cURL
curl -o file.zip https://example.com/file.zip
# Orb (identical)
orb -o file.zip https://example.com/file.zip
Terminal window
# cURL
curl -L https://short.url/abc
# Orb (identical)
orb -L https://short.url/abc
Terminal window
# cURL
curl -v https://example.com
# Orb (identical)
orb -v https://example.com
Terminal window
# cURL
curl -I https://example.com
# Orb (identical)
orb -I https://example.com
Terminal window
# cURL
curl -k https://self-signed.example.com
# Orb (identical)
orb -k https://self-signed.example.com
Terminal window
# cURL
curl --http2 https://example.com
# Orb (identical)
orb --http2 https://example.com
Terminal window
# cURL
curl --http3 https://example.com
# Orb (identical)
orb --http3 https://example.com
Terminal window
# cURL
curl --compressed https://example.com
# Orb (identical)
orb --compressed https://example.com
Terminal window
# cURL
curl --connect-timeout 5 -m 30 https://example.com
# Orb (identical)
orb --connect-timeout 5 -m 30 https://example.com
Terminal window
# cURL
curl -b cookies.txt -c cookies.txt https://example.com
# Orb (identical)
orb -b @cookies.txt -c cookies.txt https://example.com
Terminal window
# cURL
curl -x http://proxy:8080 https://example.com
# Orb (identical)
orb -x http://proxy:8080 https://example.com
Terminal window
# cURL
curl --connect-to example.com:443:localhost:8443 https://example.com
# Orb (identical)
orb --connect-to example.com:443:localhost:8443 https://example.com
Terminal window
# Connect and send message
orb wss://echo.websocket.org --ws-message "Hello!"
# Interactive mode
orb wss://echo.websocket.org

cURL does not support WebSocket connections.

Terminal window
# Orb
orb --bearer "your-token" https://api.example.com
# cURL equivalent
curl -H "Authorization: Bearer your-token" https://api.example.com
Terminal window
# Orb
orb --json '{"key": "value"}' https://api.example.com
# cURL equivalent
curl -H "Content-Type: application/json" -d '{"key": "value"}' https://api.example.com

Some cURL features not yet in orb:

  • FTP, SFTP, SCP protocols (Will not be supported)
  • TFTP, LDAP, DICT protocols (Will not be supported)
  • Globbing/URL patterns ([1-10], {a,b,c})
  • Config files (.curlrc)
  • --retry with automatic backoff
  • --limit-rate bandwidth throttling
  • HTTP_PROXY / HTTPS_PROXY environment variables
  1. Most options are identical - Start by trying your cURL command with orb instead
  2. Use --json for JSON APIs - Simpler than -H "Content-Type: ..." -d ...
  3. Use --bearer for tokens - Cleaner than -H "Authorization: ..."
  4. WebSocket support - Use ws:// or wss:// URLs directly
  • You need WebSocket support
  • You’re working with modern HTTP/2 and HTTP/3 APIs
  • You’re workin with modern compression formats like zstd
  • You prefer the --json and --bearer shortcuts
  • You need FTP or other non-HTTP protocols
  • You rely on URL globbing patterns
  • You need specific cURL-only features
  • Compatibility with existing scripts is critical