A human-friendly HTTP client for your terminal β httpie alternative with zero dependencies
Stop wrestling with curl flags. httpit makes HTTP requests from the terminal feel natural, with automatic JSON formatting, syntax highlighting, and an intuitive syntax you'll remember.
- Zero hard dependencies β works with just Python 3.8+ stdlib
- Rich output β beautiful syntax highlighting when Rich is installed
- Intuitive syntax β
httpit post URL name=John age:=25just works - Pipe-friendly β
echo '{"key":"val"}' | httpit post URL - Config file β
.httpitrcfor default headers and base URL - Download with progress β
httpit get URL --download
# Install
pip install httpit
# Or just clone and use
git clone https://github.com/zehedisodef1-oss/httpit.git
cd httpit && pip install -e .# Simple GET
httpit get https://api.github.com/users/octocat
# POST with JSON body (automatic serialization)
httpit post https://api.example.com/data name=John age:=25 active:=true
# PUT request
httpit put https://api.example.com/item/1 title="Updated"
# DELETE
httpit delete https://api.example.com/item/1
# HEAD (headers only)
httpit head https://api.example.com/health
# With Basic Auth
httpit get https://api.example.com/me --auth user:password
# With Bearer Token
httpit get https://api.example.com/me --bearer eyJhbGciOi...
# Custom Headers
httpit get URL -H "X-Custom: value" -H "Accept: text/html"
# Verbose mode (show request details)
httpit get URL --verbose
# Download file with progress bar
httpit get https://example.com/file.zip --download
# Timeout
httpit get URL --timeout 10
# Pipe JSON from stdin
echo '{"key":"value"}' | httpit post https://api.example.com/data| Feature | httpit | httpie | curl |
|---|---|---|---|
| Zero dependencies | β | β (requests, rich...) | β (C binary) |
| JSON body shorthand | β
key:=value |
β
key:=value |
β manual -d |
| Syntax highlighting | β (optional Rich) | β (required Rich) | β |
| Config file | β
.httpitrc |
β
.config/httpie/ |
β |
| Download progress | β | β | |
| Pipe stdin support | β | β | β |
| Install size | ~20KB | ~5MB+ | varies |
| Auth flags | β
--auth --bearer |
β
--auth |
β -u -H |
| Custom headers | β
-H |
β
-H |
β
-H |
| Response stats | β time + size | β | β manual -w |
Create a .httpitrc (JSON) in your project root or home directory:
{
"base_url": "https://api.example.com",
"default_headers": {
"Accept": "application/json",
"X-Api-Version": "v1"
},
"timeout": 30,
"verify_ssl": true
}Check the examples/ directory for more:
| Example | Description |
|---|---|
01_basic_get.py |
Simple GET request |
02_post_json.py |
POST with JSON body |
03_auth.py |
Basic authentication |
httpitrc.example |
Config file template |
- Session support (cookie persistence)
-
.envfile integration - GraphQL support (
httpit graphql URL query='{ ... }') - WebSocket ping
- Load testing mode (
--bench N) - Export as cURL command (
--export-curl) - Plugin system for custom output formatters
MIT Β© zehedisodef1-oss