ohmyzsh/plugins/curl/README.md

4.9 KiB

curl plugin

This plugin provides a comprehensive set of aliases and functions to simplify working with curl command-line tool, making API testing and HTTP requests more convenient.

Installation

To use it, add curl to the plugins array in your zshrc file:

plugins=(... curl)

Requirements

  • curl: The plugin is built around the curl utility
  • jq: Recommended for JSON formatting functionality (some functions will fall back to plain output if jq is not installed)
  • xmllint: Optional for XML formatting
  • js-beautify: Optional for HTML formatting

Command Reference

Basic Aliases

Command Description Example Usage
cl curl with redirect following cl https://example.com
clh curl headers only with redirect following clh https://example.com
ch curl headers only ch https://example.com
cj curl with JSON content-type header cj https://api.example.com
cjson curl with JSON content-type and accept headers cjson https://api.example.com
cv curl with verbose output cv https://example.com
cs curl in silent mode cs https://example.com
csv curl in silent mode with verbose output csv https://example.com
ca curl with custom User-Agent ca "Mozilla/5.0" https://example.com
ct curl showing request time ct https://example.com

HTTP Method Aliases

Command Description Example Usage
cget curl with GET method cget https://api.example.com/users
cpost curl with POST method cpost https://api.example.com/users
cput curl with PUT method cput https://api.example.com/users/1
cpatch curl with PATCH method cpatch https://api.example.com/users/1
cdel curl with DELETE method cdel https://api.example.com/users/1
chead curl with HEAD method chead https://example.com
coptions curl with OPTIONS method coptions https://api.example.com

Output Formatting

Command Description Example Usage
cjp curl with JSON pretty-printing via jq cjp https://api.example.com/users
cjps curl in silent mode with JSON pretty-printing cjps https://api.example.com/users

File Operations

Command Description Example Usage
cof curl and save to specified file cof output.txt https://example.com
cOrf curl and save with original filename cOrf https://example.com/file.zip

Advanced Functions

Function Description Example Usage
curlpost Send JSON data via POST curlpost https://api.example.com/users '{"name":"John"}'
curlauth Make request with basic authentication curlauth https://api.example.com/users username password
curltoken Make request with bearer token curltoken https://api.example.com/users "your-token"
curlinfo Display comprehensive timing and header information curlinfo https://example.com
curlcompare Compare response times of multiple URLs curlcompare https://site1.com https://site2.com
curlmonitor Monitor website availability periodically curlmonitor https://example.com 30
curlallmethods Test all HTTP methods on a URL curlallmethods https://api.example.com/endpoint
curlformat Auto-detect content type and format accordingly curlformat https://api.example.com/users

Function Details

curlpost

Makes a POST request with JSON data and formats the response using jq.

curlpost https://api.example.com/users '{"name":"John","email":"john@example.com"}'

curlauth

Tests an API endpoint with basic authentication.

curlauth https://api.example.com/protected username password

curltoken

Makes a request with a bearer token for authorization.

curltoken https://api.example.com/me "eyJhbGciOiJIUzI1NiIsI..."

curlinfo

Displays detailed timing metrics and response headers for a URL.

curlinfo https://example.com

This will show:

  • DNS lookup time
  • Connection time
  • TLS setup time
  • Total time
  • Response size
  • All response headers

curlcompare

Compares response times of multiple URLs to benchmark performance.

curlcompare https://site1.com https://site2.com https://site3.com

curlmonitor

Continuously monitors a website's availability at specified intervals (default: 60 seconds).

curlmonitor https://example.com 30  # Check every 30 seconds

curlallmethods

Tests all standard HTTP methods (GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH) on a URL.

curlallmethods https://api.example.com/test

curlformat

Auto-detects the content type of the response and formats it accordingly (JSON, XML, HTML).

curlformat https://api.example.com/users