curlie is a free, open source api development & testing project written in Go and released under MIT. It has 3,726 GitHub stars, 114 forks and 26 open issues, and was last pushed 9 months ago. On this registry it ranks #60 of 103 tracked projects in API Development & Testing, with 5 head-to-head comparisons available. It gained 7 stars over the last 3 tracked days.

What is curlie?

What it is

Curlie is a command-line HTTP client written in Go and licensed under the MIT License. It lives in the developer tools and API development and testing ecosystem, and it acts as a frontend to curl while borrowing request syntax and output presentation from HTTPie.

The concrete problem it addresses is the gap between curl and HTTPie. curl provides a broad option surface and strong performance, but its command syntax can feel less convenient for quick API work. HTTPie provides a simpler interface, but it does not expose the full curl option surface in the same way. Curlie combines those positions by exposing curl options through HTTPie-inspired syntax sugar and formatting.

Key capabilities

  • Curlie wraps curl and exposes curl options through HTTPie-inspired syntax sugar.
  • Its synopsis accepts curl options, an optional method, a URL, and optional item pairs for GET, PUT, and other methods.
  • Custom headers and JSON data can be passed as item arguments during terminal API request construction.
  • Interactive use pretty-prints JSON, and the pretty option can force that formatting.
  • Headers go to stderr instead of stdout, matching curl and differing from HTTPie.
  • Output is not buffered, so streamed data can be debugged while it arrives.
  • The curl option prints the executed curl command for inspection.

Who uses it and how

  • Terminal developers use it during API development and testing when they want curl options with a shorter request form.
  • Web developers send simple GET requests and construct custom requests with methods, headers, and JSON payloads from the command line.
  • Debugging users inspect streaming responses because formatting happens on the fly rather than after buffering.
  • Users comparing behavior with HTTPie keep header output separate from body output on stderr.

Getting started

Install Curlie through Homebrew, webi, eget, MacPorts, FreeBSD pkg, Go, Scoop, mise, or a released binary package, then run it with curl options, an optional method, a URL, and optional item pairs.

When to use it — and when not to

Use Curlie when you want a Go command-line frontend to curl that keeps curl options available while presenting requests and JSON output in an HTTPie-inspired terminal workflow. Avoid it when you need HTTPie's header placement on stdout or buffered output for pipelines that treat headers and body as one stream. The project is distributed as a local command-line tool, and the README mentions no hosted option, database, storage, or SMTP requirement.

project readme (upstream, from github) — read inline

Curlie

If you like the interface of HTTPie but miss the features of curl, curlie is what you are searching for. Curlie is a frontend to curl that adds the ease of use of httpie, without compromising on features and performance. All curl options are exposed with syntax sugar and output formatting inspired from httpie.

Install

Using homebrew:

brew install curlie

Using webi:

# macOS / Linux
curl -sS https://webinstall.dev/curlie | bash
# Windows
curl.exe -A "MS" https://webinstall.dev/curlie | powershell

Using eget:

# Ubuntu/Debian
eget rs/curlie -a deb --to=curlie.deb
sudo dpkg -i curlie.deb

Using macports:

sudo port install curlie

Using pkg:

pkg install curlie

Using go:

go install github.com/rs/curlie@latest

Using scoop:

scoop install curlie

Using mise:

mise use -g curlie@latest

Or download a binary package.

Usage

Synopsis:

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

Simple GET:

Simple GET request example

Custom method, headers and JSON data:

Custom PUT request with headers and JSON data example

When running interactively, curlie provides pretty-printed output for json. To force pretty-printed output, pass --pretty.

Build

Build with goreleaser to test that all platforms compile properly.

goreleaser build --clean --snapshot

Or for your current platform only.

goreleaser build --clean --snapshot --single-target

Differences with httpie

  • Like curl but unlike httpie, headers are written on stderr instead of stdout.
  • Output is not buffered, all the formatting is done on the fly so you can easily debug streamed data.
  • Use the --curl option to print executed curl command.

License

All source code is licensed under the MIT License.

Frequently asked questions

Is curlie free to use?

curlie is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does curlie do?

The power of curl, the ease of use of httpie.

What is curlie written in?

curlie is primarily written in Go. Its source is publicly available at https://github.com/rs/curlie, and it has 3,726 GitHub stars.