LinuxCommandLibrary

curlie

Send HTTP requests from the command line

TLDR

Send a GET request

$ curlie [httpbin.org/get]
copy

Send a POST request
$ curlie post [httpbin.org/post] [name=john] [age:=25]
copy

Send a GET request with query parameters (e.g. first_param=5&second_param=true)
$ curlie get [httpbin.org/get] [first_param==5] [second_param==true]
copy

Send a GET request with a custom header
$ curlie get [httpbin.org/get] [header-name:header-value]
copy

SYNOPSIS

curlie [options] [method] [headers] [data] url

PARAMETERS

-v, --verbose
    Increase verbosity, show headers and details

-q, --quiet
    Silence curlie output, show only response body

-s, --silent
    Silent mode, suppress progress meter

-f, --fail
    Fail silently on HTTP errors (4xx, 5xx)

-L, --location
    Follow HTTP redirects

-X, --request <method>
    Specify HTTP method (GET, POST, etc.)

-H, --header <header>
    Add custom header, e.g., "Authorization: token"

-d, --data <data>
    Send data (JSON, form, etc.), auto-detects type

-F, --form <name=content>
    Multipart form data upload

--data-binary <data>
    Binary data without newline stripping

--data-raw <data>
    Data without processing

--data-urlencode <data>
    URL-encode data

-u, --user <user:pass>
    Basic authentication

--cookie <data>
    Set cookies

--insecure
    Skip SSL certificate verification

-o, --output <file>
    Save response to file

-I, --head
    Send HEAD request only

DESCRIPTION

curlie is a user-friendly command-line HTTP client that provides a simpler, more intuitive syntax inspired by HTTPie, while leveraging the power and reliability of curl as its backend. Designed for humans, it allows you to make HTTP requests with minimal typing, automatically handling common tasks like JSON formatting, form data, headers, and authentication.

Key features include method specification via verbs like get, post, put, or patch before the URL; inline headers with Header:value; JSON data via -d or json; form uploads with -F; and support for most curl options. Output is prettified by default with colorized JSON and clean headers.

Ideal for API testing, debugging web services, and scripting, curlie reduces verbosity compared to raw curl. It detects content types automatically (e.g., -d '{json}' sends application/json). Download, upload, and streaming are streamlined. While not a full curl replacement, it excels in readability and speed for everyday HTTP tasks, making it popular among developers and sysadmins.

CAVEATS

Requires curl installed; not all advanced curl features supported; prettified output may not suit all scripts

EXAMPLES

curlie get https://api.github.com/users/octocat
curlie post https://api.example.com/users -d '{"name":"John"}'
curlie -H "Authorization: Bearer token" get https://api.example.com

INSTALLATION

Via Go: go install mvdan.cc/curlie@latest
Or package managers: brew install curlie (macOS), apt install curlie (some distros)

HISTORY

Developed by Thomas Martitz starting in 2020 as a modern HTTPie alternative using curl. Gained popularity via GitHub (mvdan/curlie), with active maintenance focusing on POSIX compliance and feature parity with HTTPie. Written in Go for portability.

SEE ALSO

curl(1), http(1), wget(1), httpie(1)

Copied to clipboard