CURLIE(1)

NAME
curlie - curl frontend with httpie-like interface and JSON formatting

SYNOPSIS
curlie [CURL_OPTIONS...] [METHOD] URL [ITEM [ITEM...]]

DESCRIPTION
curlie is a frontend to curl(1) that combines the power and ubiquity of curl with the ease of use and human-friendly interface of httpie(1). All curl options are exposed without compromise on features or performance, while adding syntax sugar and output formatting inspired by httpie.

When running interactively, curlie provides pretty-printed and colorized JSON output. Headers are written to stderr and the body to stdout, making it compatible with pipes and redirects. Output is not buffered — all formatting is done on the fly, allowing easy inspection of streamed data.

OPTIONS

  Authentication

--anyauth
    Pick any authentication method.

--aws-sigv4 provider1[:prvdr2[:reg[:srv]]]
    Use AWS V4 signature authentication.

--basic
    Use HTTP Basic Authentication.

--digest
    Use HTTP Digest Authentication.

--negotiate
    Use HTTP Negotiate (SPNEGO) authentication.

-n, --netrc
    Read username and password from .netrc.

--netrc-file filename
    Specify FILE for netrc.

--netrc-optional
    Use either .netrc or URL.

--ntlm
    Use HTTP NTLM authentication.

--oauth2-bearer token
    Specify OAuth 2 Bearer Token.

-u, --user user:password
    Set server user and password.

  TLS / SSL

--ca-native
    Load CA certs from the OS.

--cacert file
    CA certificate to verify peer against.

--capath dir
    CA directory to verify peer against.

-E, --cert certificate[:password]
    Client certificate file and password.

--cert-status
    Verify server certificate status via OCSP stapling.

--cert-type type
    Certificate type (DER/PEM/ENG/PROV/P12).

--ciphers list
    TLS 1.2 (and earlier) ciphers to use.

-k, --insecure
    Allow insecure server connections.

--key key
    Private key filename.

--key-type type
    Private key file type (DER/PEM/ENG).

--ssl
    Try enabling TLS.

--ssl-reqd
    Require SSL/TLS.

-1, --tlsv1
    Use TLSv1.0 or greater.

--tlsv1.0
    Use TLSv1.0 or greater.

--tlsv1.1
    Use TLSv1.1 or greater.

--tlsv1.2
    Use TLSv1.2 or greater.

--tlsv1.3
    Use TLSv1.3 or greater.

--tls-max VERSION
    Set the maximum allowed TLS version.

--tls13-ciphers list
    TLS 1.3 cipher suites to use.

  HTTP Request

-d, --data data
    Send HTTP POST data.

--data-ascii data
    Send HTTP POST ASCII data.

--data-binary data
    Send HTTP POST binary data.

--data-raw data
    Send HTTP POST data, '@' allowed.

--data-urlencode data
    Send HTTP POST data URL encoded.

-F, --form name=content
    Specify multipart MIME data.

--form-string name=string
    Specify multipart MIME data as string.

-G, --get
    Put post data in the URL and use GET.

-H, --header header/@file
    Pass custom header(s) to server.

-I, --head
    Show document info only (HEAD request).

--http1.0
    Use HTTP/1.0.

--http1.1
    Use HTTP/1.1.

--http2
    Use HTTP/2.

--http3
    Use HTTP/3.

--json data
    Send HTTP POST JSON data.

-X, --request method
    Specify the request method to use.

-A, --user-agent name
    Send User-Agent to server.

  HTTP Response

--compressed
    Request a compressed response.

-D, --dump-header filename
    Write the received headers to a file.

-f, --fail
    Fail fast with no output on HTTP errors.

--fail-with-body
    Fail on HTTP errors but save the body.

-L, --location
    Follow redirects.

--max-redirs num
    Set the maximum number of redirects allowed.

-i, --show-headers
    Show response headers in output.

  Output

--curl
    Print the underlying curl command being executed.

-o, --output file
    Write output to file instead of stdout.

--output-dir dir
    Directory to save files in.

--pretty
    Force pretty-printed output.

-#, --progress-bar
    Display transfer progress as a bar.

-s, --silent
    Silent mode.

-v, --verbose
    Make the operation more talkative.

-w, --write-out format
    Output FORMAT after completion.

  Connection

--connect-timeout seconds
    Maximum time allowed to connect.

--connect-to HOST1:PORT1:HOST2:PORT2
    Connect to host2 instead of host1.

--dns-servers addresses
    DNS server addresses to use.

--doh-url URL
    Resolve hostnames over DNS-over-HTTPS.

-4, --ipv4
    Resolve names to IPv4 addresses only.

-6, --ipv6
    Resolve names to IPv6 addresses only.

-m, --max-time seconds
    Maximum time allowed for the transfer.

--no-keepalive
    Disable TCP keepalive on the connection.

--resolve [+]host:port:addr[,addr]...
    Resolve host+port to a specific address.

--retry num
    Retry request if transient problems occur.

--tcp-fastopen
    Use TCP Fast Open.

--unix-socket path
    Connect through this Unix domain socket.

  Proxy

-x, --proxy [protocol://]host[:port]
    Use this proxy.

-U, --proxy-user user:password
    Set proxy user and password.

-p, --proxytunnel
    Use HTTP proxy tunnel (via CONNECT).

--socks4 host[:port]
    Use SOCKS4 proxy on given host and port.

--socks5 host[:port]
    Use SOCKS5 proxy on given host and port.

  Transfer

-C, --continue-at offset
    Resume transfer at given offset.

--limit-rate speed
    Limit transfer speed to RATE.

-O, --remote-name
    Write output to file named as remote file.

-T, --upload-file file
    Transfer local FILE to destination.

-Z, --parallel
    Perform transfers in parallel.

--parallel-max num
    Maximum concurrency for parallel transfers.

  Cookies

-b, --cookie data|filename
    Send cookies from string or load from file.

-c, --cookie-jar filename
    Save cookies to file after operation.

-j, --junk-session-cookies
    Ignore session cookies read from file.

  Miscellaneous

-K, --config file
    Read configuration from a file.

-q, --disable
    Disable .curlrc.

-h, --help subject
    Get help for commands.

-M, --manual
    Display the full manual.

-V, --version
    Show version number and quit.

EXAMPLES

Simple GET request with pretty-printed JSON response:

    curlie https://httpbin.org/get

POST request with JSON data using key=value syntax:

    curlie POST https://httpbin.org/post name=debian version=1

PUT request with a custom header and JSON body:

    curlie PUT https://httpbin.org/put X-Token:secret name=curlie

Send raw JSON data:

    curlie POST https://httpbin.org/post --json '{"key":"value"}'

HEAD request to inspect response headers only:

    curlie -I https://httpbin.org/get

Follow redirects and show response headers:

    curlie -L -i https://httpbin.org/redirect/1

Use Basic Authentication:

    curlie --basic -u user:password https://httpbin.org/basic-auth/user/password

Print the underlying curl command without executing:

    curlie --curl POST https://httpbin.org/post name=test

Download a file saving it with the remote filename:

    curlie -O https://example.com/file.tar.gz

Send a request through a SOCKS5 proxy:

    curlie --socks5 localhost:1080 https://httpbin.org/get

SEE ALSO
curl(1), httpie(1), wget(1)

AUTHOR
Olivier Poitrey <rs@dailymotion.com>

This manual page was written for the Debian project by Josenilson Ferreira da Silva <nilsonfsilva@hotmail.com>.