--- title: curlie homepage: https://github.com/rs/curlie tagline: | curlie wraps `curl` with modern defaults and `httpie`-like syntax highlighting --- To update or switch versions, run `webi curlie@stable` (or `@v1.6`, `@beta`, etc). ### Files These are the files / directories that are created and/or modified with this install: ```text ~/.config/envman/PATH.env ~/.local/bin/curlie ``` ## Cheat Sheet > 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. **Headers** (`:`) are recognized by being in the format `Key-Name:Value`. **JSON** (`=`) is the default encoding for `key=value` pairs. ### How to alias as `curl` Use [aliasman](/aliasman): ```sh aliasman curl 'curlie' alias curl='curlie' ``` This will affect the interactive shell, but not scripts. ### Simple GET ```sh curlie -v example.com ``` ### POST simple JSON with headers ```sh curlie -v POST httpbin.org/status/201 "Authorization: Bearer xxxx" "name=John Doe" ``` ### POST large JSON ```sh curlie -v POST httpbin.org/status/201 "Authorization: Bearer xxxx" -d ' [ { "name": "John Doe" } ] ' ``` ### Spoof Host and SNI The `--resolve` option is for when you need to test a local service as if it had a remote hostname and TLS SNI (or when you want to break things 😈). ```sh curlie https://foo.example.com:8443 "Host: foo.example.com" \ --resolve foo.example.com:8443:127.0.0.1 ```